xmlNodePtr node,
xmlXPathContextPtr ctxt,
virHashTablePtr bootHash,
+ char *prefix,
unsigned int flags)
{
virDomainNetDefPtr def;
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);
}
xmlNodePtr node;
xmlXPathContextPtr ctxt = NULL;
virDomainDeviceDefPtr dev = NULL;
+ char *netprefix;
if (!(xml = virXMLParseStringCtxt(xmlStr, _("(device_definition)"), &ctxt)))
goto error;
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:
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",
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;