提交 29031975 编写于 作者: M Marek Marczykowski-Górecki 提交者: Jim Fehlig

libxl: allow only 'ethernet' and 'bridge' interfaces, allow script there

Actually only those interface types are handled correctly so reject
others instead of ignoring settings (i.e. treating as bridge/ethernet
anyway).
Also allow <script/> in 'ethernet' (which should be the only
script-allowing type). Keep <script/> allowed in bridge to be compatible
with legacy 'xen' driver.
Signed-off-by: NMarek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
上级 07966f6a
......@@ -572,18 +572,20 @@ libxlMakeNic(virDomainNetDefPtr l_nic, libxl_device_nic *x_nic)
if (VIR_STRDUP(x_nic->ifname, l_nic->ifname) < 0)
return -1;
if (l_nic->type == VIR_DOMAIN_NET_TYPE_BRIDGE) {
if (VIR_STRDUP(x_nic->bridge, l_nic->data.bridge.brname) < 0)
return -1;
if (VIR_STRDUP(x_nic->script, l_nic->script) < 0)
return -1;
} else {
if (l_nic->script) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("scripts are not supported on interfaces of type %s"),
virDomainNetTypeToString(l_nic->type));
switch (l_nic->type) {
case VIR_DOMAIN_NET_TYPE_BRIDGE:
if (VIR_STRDUP(x_nic->bridge, l_nic->data.bridge.brname) < 0)
return -1;
/* fallthrough */
case VIR_DOMAIN_NET_TYPE_ETHERNET:
if (VIR_STRDUP(x_nic->script, l_nic->script) < 0)
return -1;
break;
default:
virReportError(VIR_ERR_INTERNAL_ERROR,
_("libxenlight does not support network device type %s"),
virDomainNetTypeToString(l_nic->type));
return -1;
}
}
return 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册