mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 11:22:23 +00:00
conf: add prefix in virDomainNetDefParseXML
And use the newly added caps->host.netprefix for free interface names that match the autogenerated target names. Signed-off-by: Joao Martins <joao.m.martins@oracle.com>
This commit is contained in:
parent
819d1d9438
commit
481e9bd0f6
@ -8434,6 +8434,7 @@ virDomainNetDefParseXML(virDomainXMLOptionPtr xmlopt,
|
||||
xmlNodePtr node,
|
||||
xmlXPathContextPtr ctxt,
|
||||
virHashTablePtr bootHash,
|
||||
char *prefix,
|
||||
unsigned int flags)
|
||||
{
|
||||
virDomainNetDefPtr def;
|
||||
@ -8600,7 +8601,8 @@ virDomainNetDefParseXML(virDomainXMLOptionPtr xmlopt,
|
||||
ifname = virXMLPropString(cur, "dev");
|
||||
if (ifname &&
|
||||
(flags & VIR_DOMAIN_DEF_PARSE_INACTIVE) &&
|
||||
STRPREFIX(ifname, VIR_NET_GENERATED_PREFIX)) {
|
||||
(STRPREFIX(ifname, VIR_NET_GENERATED_PREFIX) ||
|
||||
(prefix && STRPREFIX(ifname, prefix)))) {
|
||||
/* An auto-generated target name, blank it out */
|
||||
VIR_FREE(ifname);
|
||||
}
|
||||
@ -12556,6 +12558,7 @@ virDomainDeviceDefParse(const char *xmlStr,
|
||||
xmlNodePtr node;
|
||||
xmlXPathContextPtr ctxt = NULL;
|
||||
virDomainDeviceDefPtr dev = NULL;
|
||||
char *netprefix;
|
||||
|
||||
if (!(xml = virXMLParseStringCtxt(xmlStr, _("(device_definition)"), &ctxt)))
|
||||
goto error;
|
||||
@ -12598,8 +12601,9 @@ virDomainDeviceDefParse(const char *xmlStr,
|
||||
goto error;
|
||||
break;
|
||||
case VIR_DOMAIN_DEVICE_NET:
|
||||
netprefix = caps->host.netprefix;
|
||||
if (!(dev->data.net = virDomainNetDefParseXML(xmlopt, node, ctxt,
|
||||
NULL, flags)))
|
||||
NULL, netprefix, flags)))
|
||||
goto error;
|
||||
break;
|
||||
case VIR_DOMAIN_DEVICE_INPUT:
|
||||
@ -14747,6 +14751,7 @@ virDomainDefParseXML(xmlDocPtr xml,
|
||||
bool usb_other = false;
|
||||
bool usb_master = false;
|
||||
bool primaryVideo = false;
|
||||
char *netprefix = NULL;
|
||||
|
||||
if (flags & VIR_DOMAIN_DEF_PARSE_VALIDATE) {
|
||||
char *schema = virFileFindResource("domain.rng",
|
||||
@ -15932,11 +15937,13 @@ virDomainDefParseXML(xmlDocPtr xml,
|
||||
goto error;
|
||||
if (n && VIR_ALLOC_N(def->nets, n) < 0)
|
||||
goto error;
|
||||
netprefix = caps->host.netprefix;
|
||||
for (i = 0; i < n; i++) {
|
||||
virDomainNetDefPtr net = virDomainNetDefParseXML(xmlopt,
|
||||
nodes[i],
|
||||
ctxt,
|
||||
bootHash,
|
||||
netprefix,
|
||||
flags);
|
||||
if (!net)
|
||||
goto error;
|
||||
|
Loading…
x
Reference in New Issue
Block a user