]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
conf: Add virNetworkXMLOption
authorCole Robinson <crobinso@redhat.com>
Sun, 14 Jul 2019 16:11:06 +0000 (12:11 -0400)
committerCole Robinson <crobinso@redhat.com>
Wed, 17 Jul 2019 21:18:55 +0000 (17:18 -0400)
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>
src/conf/network_conf.c
src/conf/network_conf.h
src/libvirt_private.syms
src/network/bridge_driver.c
src/network/bridge_driver_platform.h

index 09e379ae9ad92567c5af0fcd538ec6e1f2bb2e25..ca4b9986ad88947af1ec77f872e18393ec9a8f6e 100644 (file)
@@ -73,6 +73,39 @@ VIR_ENUM_IMPL(virNetworkTaint,
               "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
 virPortGroupDefClear(virPortGroupDefPtr def)
 {
index 424c4b0913ba4d97255aa1e68ae2852cbb7a15a7..edd9f51f447602be18f6e64786556c0119e6db60 100644 (file)
 #include "virmacmap.h"
 #include "virenum.h"
 
+
+struct _virNetworkXMLOption {
+    virObject parent;
+};
+typedef struct _virNetworkXMLOption virNetworkXMLOption;
+typedef virNetworkXMLOption *virNetworkXMLOptionPtr;
+
+
 typedef enum {
     VIR_NETWORK_FORWARD_NONE   = 0,
     VIR_NETWORK_FORWARD_NAT,
@@ -289,6 +297,9 @@ enum {
     VIR_NETWORK_OBJ_LIST_ADD_CHECK_LIVE = (1 << 1),
 };
 
+virNetworkXMLOptionPtr
+virNetworkXMLOptionNew(void);
+
 virNetworkDefPtr
 virNetworkDefCopy(virNetworkDefPtr def, unsigned int flags);
 
index 4e77cf53eade1ee8f21ae3b235900f35dc6a6097..9640e91eaa19c6ef8d5c54dc68445ba175d6c9f8 100644 (file)
@@ -730,6 +730,7 @@ virNetworkSaveConfig;
 virNetworkSetBridgeMacAddr;
 virNetworkTaintTypeFromString;
 virNetworkTaintTypeToString;
+virNetworkXMLOptionNew;
 virPortGroupFindByName;
 
 
index 6292e3b90a9e01aad15cc034328e68d2114239fd..5be6f1ba45aff918af8147b2834b34e595df330f 100644 (file)
@@ -136,6 +136,12 @@ networkDnsmasqCapsRefresh(virNetworkDriverStatePtr driver)
     return 0;
 }
 
+static virNetworkXMLOptionPtr
+networkDnsmasqCreateXMLConf(void)
+{
+    return virNetworkXMLOptionNew();
+}
+
 
 static int
 networkStateCleanup(void);
@@ -605,6 +611,9 @@ networkStateInitialize(bool privileged,
 
     network_driver->privileged = privileged;
 
+    if (!(network_driver->xmlopt = networkDnsmasqCreateXMLConf()))
+        goto error;
+
     /* configuration/state paths are one of
      * ~/.config/libvirt/... (session/unprivileged)
      * /etc/libvirt/... && /var/(run|lib)/libvirt/... (system/privileged).
@@ -766,6 +775,7 @@ networkStateCleanup(void)
         return -1;
 
     virObjectUnref(network_driver->networkEventState);
+    virObjectUnref(network_driver->xmlopt);
 
     /* free inactive networks */
     virObjectUnref(network_driver->networks);
index 95993c5e314fd74aa8065e64a61fa69723d6ae57..169417a6c057f38fed59423a83a4ed9de6e280fb 100644 (file)
@@ -55,6 +55,8 @@ struct _virNetworkDriverState {
 
     /* Immutable pointer, self-locking APIs */
     virObjectEventStatePtr networkEventState;
+
+    virNetworkXMLOptionPtr xmlopt;
 };
 
 typedef struct _virNetworkDriverState virNetworkDriverState;