conf: Add virNetworkXMLOption

Just a stub for now that is unused. Add init+cleanup plumbing and
demostrate it in bridge_driver.c

Reviewed-by: Laine Stump <laine@laine.org>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
This commit is contained in:
Cole Robinson 2019-07-14 12:11:06 -04:00
parent d51522eb57
commit dc2c4f8435
5 changed files with 57 additions and 0 deletions

View File

@ -73,6 +73,39 @@ VIR_ENUM_IMPL(virNetworkTaint,
"hook-script", "hook-script",
); );
static virClassPtr virNetworkXMLOptionClass;
static void
virNetworkXMLOptionDispose(void *obj ATTRIBUTE_UNUSED)
{
return;
}
static int
virNetworkXMLOnceInit(void)
{
if (!VIR_CLASS_NEW(virNetworkXMLOption, virClassForObject()))
return -1;
return 0;
}
VIR_ONCE_GLOBAL_INIT(virNetworkXML);
virNetworkXMLOptionPtr
virNetworkXMLOptionNew(void)
{
virNetworkXMLOptionPtr xmlopt;
if (virNetworkXMLInitialize() < 0)
return NULL;
if (!(xmlopt = virObjectNew(virNetworkXMLOptionClass)))
return NULL;
return xmlopt;
}
static void static void
virPortGroupDefClear(virPortGroupDefPtr def) virPortGroupDefClear(virPortGroupDefPtr def)
{ {

View File

@ -41,6 +41,14 @@
#include "virmacmap.h" #include "virmacmap.h"
#include "virenum.h" #include "virenum.h"
struct _virNetworkXMLOption {
virObject parent;
};
typedef struct _virNetworkXMLOption virNetworkXMLOption;
typedef virNetworkXMLOption *virNetworkXMLOptionPtr;
typedef enum { typedef enum {
VIR_NETWORK_FORWARD_NONE = 0, VIR_NETWORK_FORWARD_NONE = 0,
VIR_NETWORK_FORWARD_NAT, VIR_NETWORK_FORWARD_NAT,
@ -289,6 +297,9 @@ enum {
VIR_NETWORK_OBJ_LIST_ADD_CHECK_LIVE = (1 << 1), VIR_NETWORK_OBJ_LIST_ADD_CHECK_LIVE = (1 << 1),
}; };
virNetworkXMLOptionPtr
virNetworkXMLOptionNew(void);
virNetworkDefPtr virNetworkDefPtr
virNetworkDefCopy(virNetworkDefPtr def, unsigned int flags); virNetworkDefCopy(virNetworkDefPtr def, unsigned int flags);

View File

@ -730,6 +730,7 @@ virNetworkSaveConfig;
virNetworkSetBridgeMacAddr; virNetworkSetBridgeMacAddr;
virNetworkTaintTypeFromString; virNetworkTaintTypeFromString;
virNetworkTaintTypeToString; virNetworkTaintTypeToString;
virNetworkXMLOptionNew;
virPortGroupFindByName; virPortGroupFindByName;

View File

@ -136,6 +136,12 @@ networkDnsmasqCapsRefresh(virNetworkDriverStatePtr driver)
return 0; return 0;
} }
static virNetworkXMLOptionPtr
networkDnsmasqCreateXMLConf(void)
{
return virNetworkXMLOptionNew();
}
static int static int
networkStateCleanup(void); networkStateCleanup(void);
@ -605,6 +611,9 @@ networkStateInitialize(bool privileged,
network_driver->privileged = privileged; network_driver->privileged = privileged;
if (!(network_driver->xmlopt = networkDnsmasqCreateXMLConf()))
goto error;
/* configuration/state paths are one of /* configuration/state paths are one of
* ~/.config/libvirt/... (session/unprivileged) * ~/.config/libvirt/... (session/unprivileged)
* /etc/libvirt/... && /var/(run|lib)/libvirt/... (system/privileged). * /etc/libvirt/... && /var/(run|lib)/libvirt/... (system/privileged).
@ -766,6 +775,7 @@ networkStateCleanup(void)
return -1; return -1;
virObjectUnref(network_driver->networkEventState); virObjectUnref(network_driver->networkEventState);
virObjectUnref(network_driver->xmlopt);
/* free inactive networks */ /* free inactive networks */
virObjectUnref(network_driver->networks); virObjectUnref(network_driver->networks);

View File

@ -55,6 +55,8 @@ struct _virNetworkDriverState {
/* Immutable pointer, self-locking APIs */ /* Immutable pointer, self-locking APIs */
virObjectEventStatePtr networkEventState; virObjectEventStatePtr networkEventState;
virNetworkXMLOptionPtr xmlopt;
}; };
typedef struct _virNetworkDriverState virNetworkDriverState; typedef struct _virNetworkDriverState virNetworkDriverState;