domain-conf: add network def private data

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Marc-André Lureau 2019-08-08 18:55:01 +04:00 committed by Michal Privoznik
parent 2b0251af68
commit 1b336f4a0e
7 changed files with 31 additions and 5 deletions

View File

@ -501,7 +501,7 @@ bhyveParsePCINet(virDomainDefPtr def,
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

View File

@ -2455,6 +2455,7 @@ virDomainNetDefFree(virDomainNetDefPtr def)
if (!def)
return;
virDomainNetDefClear(def);
virObjectUnref(def->privateData);
VIR_FREE(def);
}
@ -11449,7 +11450,7 @@ virDomainNetDefParseXML(virDomainXMLOptionPtr xmlopt,
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;
@ -14345,6 +14346,24 @@ virDomainGraphicsDefNew(virDomainXMLOptionPtr xmlopt)
}
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,

View File

@ -1018,6 +1018,7 @@ struct _virDomainNetDef {
unsigned int mtu;
virNetDevCoalescePtr coalesce;
virDomainVirtioOptionsPtr virtio;
virObjectPtr privateData;
};
typedef enum {
@ -2713,6 +2714,7 @@ struct _virDomainXMLPrivateDataCallbacks {
virDomainXMLPrivateDataNewFunc chrSourceNew;
virDomainXMLPrivateDataNewFunc vsockNew;
virDomainXMLPrivateDataNewFunc graphicsNew;
virDomainXMLPrivateDataNewFunc networkNew;
virDomainXMLPrivateDataFormatFunc format;
virDomainXMLPrivateDataParseFunc parse;
/* following function shall return a pointer which will be used as the
@ -2897,6 +2899,10 @@ virDomainChrDefPtr virDomainChrDefNew(virDomainXMLOptionPtr xmlopt);
virDomainGraphicsDefPtr
virDomainGraphicsDefNew(virDomainXMLOptionPtr xmlopt);
virDomainNetDefPtr
virDomainNetDefNew(virDomainXMLOptionPtr xmlopt);
virDomainDefPtr virDomainDefNew(void);
void virDomainObjAssignDef(virDomainObjPtr domain,

View File

@ -478,6 +478,7 @@ virDomainNetDefActualToNetworkPort;
virDomainNetDefClear;
virDomainNetDefFormat;
virDomainNetDefFree;
virDomainNetDefNew;
virDomainNetDefToNetworkPort;
virDomainNetFind;
virDomainNetFindByName;

View File

@ -1234,7 +1234,7 @@ xenParseVif(char *entry, const char *vif_typename)
key = nextkey;
}
if (VIR_ALLOC(net) < 0)
if (!(net = virDomainNetDefNew(NULL)))
goto cleanup;
if (mac[0]) {

View File

@ -359,7 +359,7 @@ lxcCreateNetDef(const char *type,
virDomainNetDefPtr net = NULL;
virMacAddr macAddr;
if (VIR_ALLOC(net) < 0)
if (!(net = virDomainNetDefNew(NULL)))
goto error;
if (STREQ_NULLABLE(flag, "up"))

View File

@ -3692,7 +3692,7 @@ vboxDumpNetwork(vboxDriverPtr data, INetworkAdapter *adapter)
char *utf8 = NULL;
virDomainNetDefPtr net = NULL;
if (VIR_ALLOC(net) < 0)
if (!(net = virDomainNetDefNew(data->xmlopt)))
return NULL;
gVBoxAPI.UINetworkAdapter.GetAttachmentType(adapter, &attachmentType);