const char *separator = NULL;
const char *mac = NULL;
- if (VIR_ALLOC(net) < 0)
+ if (!(net = virDomainNetDefNew(xmlopt)))
goto cleanup;
/* As we only support interface type='bridge' and cannot
if (!def)
return;
virDomainNetDefClear(def);
+ virObjectUnref(def->privateData);
VIR_FREE(def);
}
VIR_AUTOFREE(char *) trustGuestRxFilters = NULL;
VIR_AUTOFREE(char *) vhost_path = NULL;
- if (VIR_ALLOC(def) < 0)
+ if (!(def = virDomainNetDefNew(xmlopt)))
return NULL;
ctxt->node = node;
}
+virDomainNetDefPtr
+virDomainNetDefNew(virDomainXMLOptionPtr xmlopt)
+{
+ virDomainNetDefPtr def = NULL;
+
+ if (VIR_ALLOC(def) < 0)
+ return NULL;
+
+ if (xmlopt && xmlopt->privateData.networkNew &&
+ !(def->privateData = xmlopt->privateData.networkNew())) {
+ virDomainNetDefFree(def);
+ def = NULL;
+ }
+
+ return def;
+}
+
+
/* Parse the XML definition for a graphics device */
static virDomainGraphicsDefPtr
virDomainGraphicsDefParseXML(virDomainXMLOptionPtr xmlopt,
unsigned int mtu;
virNetDevCoalescePtr coalesce;
virDomainVirtioOptionsPtr virtio;
+ virObjectPtr privateData;
};
typedef enum {
virDomainXMLPrivateDataNewFunc chrSourceNew;
virDomainXMLPrivateDataNewFunc vsockNew;
virDomainXMLPrivateDataNewFunc graphicsNew;
+ virDomainXMLPrivateDataNewFunc networkNew;
virDomainXMLPrivateDataFormatFunc format;
virDomainXMLPrivateDataParseFunc parse;
/* following function shall return a pointer which will be used as the
virDomainGraphicsDefPtr
virDomainGraphicsDefNew(virDomainXMLOptionPtr xmlopt);
+
+virDomainNetDefPtr
+virDomainNetDefNew(virDomainXMLOptionPtr xmlopt);
+
virDomainDefPtr virDomainDefNew(void);
void virDomainObjAssignDef(virDomainObjPtr domain,
virDomainNetDefClear;
virDomainNetDefFormat;
virDomainNetDefFree;
+virDomainNetDefNew;
virDomainNetDefToNetworkPort;
virDomainNetFind;
virDomainNetFindByName;
key = nextkey;
}
- if (VIR_ALLOC(net) < 0)
+ if (!(net = virDomainNetDefNew(NULL)))
goto cleanup;
if (mac[0]) {
virDomainNetDefPtr net = NULL;
virMacAddr macAddr;
- if (VIR_ALLOC(net) < 0)
+ if (!(net = virDomainNetDefNew(NULL)))
goto error;
if (STREQ_NULLABLE(flag, "up"))
char *utf8 = NULL;
virDomainNetDefPtr net = NULL;
- if (VIR_ALLOC(net) < 0)
+ if (!(net = virDomainNetDefNew(data->xmlopt)))
return NULL;
gVBoxAPI.UINetworkAdapter.GetAttachmentType(adapter, &attachmentType);