]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
network: Introduce virNetworkObj{Is|Set}Autostart
authorJohn Ferlan <jferlan@redhat.com>
Wed, 10 May 2017 11:12:27 +0000 (07:12 -0400)
committerJohn Ferlan <jferlan@redhat.com>
Wed, 16 Aug 2017 18:17:57 +0000 (14:17 -0400)
In preparation for privatizing the virNetworkObj structure, create
accessors for the obj->autostart.

Signed-off-by: John Ferlan <jferlan@redhat.com>
src/conf/virnetworkobj.c
src/conf/virnetworkobj.h
src/libvirt_private.syms
src/network/bridge_driver.c
src/test/test_driver.c

index fc470b1b88f26daf78cd5c0d0f392735a5fb8acf..81d4b32ad92b75a510faedeca931e956f3148968 100644 (file)
@@ -129,6 +129,21 @@ virNetworkObjGetNewDef(virNetworkObjPtr obj)
 }
 
 
+bool
+virNetworkObjIsAutostart(virNetworkObjPtr obj)
+{
+    return obj->autostart;
+}
+
+
+void
+virNetworkObjSetAutostart(virNetworkObjPtr obj,
+                          bool autostart)
+{
+    obj->autostart = autostart;
+}
+
+
 pid_t
 virNetworkObjGetDnsmasqPid(virNetworkObjPtr obj)
 {
@@ -973,7 +988,7 @@ virNetworkLoadConfig(virNetworkObjListPtr nets,
     if (!(net = virNetworkObjAssignDef(nets, def, 0)))
         goto error;
 
-    net->autostart = autostart;
+    net->autostart = (autostart == 1);
 
     VIR_FREE(configFile);
     VIR_FREE(autostartLink);
@@ -1064,7 +1079,7 @@ virNetworkObjDeleteConfig(const char *configDir,
 
     /* Not fatal if this doesn't work */
     unlink(autostartLink);
-    net->autostart = 0;
+    net->autostart = false;
 
     if (unlink(configFile) < 0) {
         virReportSystemError(errno,
index 5bb9ff83148783b35a44b12103f688b96390a29e..d95cf1ef375642a0c7aeec48a1f826be2c834d9f 100644 (file)
@@ -32,7 +32,7 @@ struct _virNetworkObj {
     pid_t dnsmasqPid;
     pid_t radvdPid;
     unsigned int active : 1;
-    unsigned int autostart : 1;
+    bool autostart;
     unsigned int persistent : 1;
 
     virNetworkDefPtr def; /* The current definition */
@@ -60,6 +60,13 @@ virNetworkObjSetDef(virNetworkObjPtr obj,
 virNetworkDefPtr
 virNetworkObjGetNewDef(virNetworkObjPtr obj);
 
+bool
+virNetworkObjIsAutostart(virNetworkObjPtr obj);
+
+void
+virNetworkObjSetAutostart(virNetworkObjPtr obj,
+                          bool autostart);
+
 virMacMapPtr
 virNetworkObjGetMacMap(virNetworkObjPtr obj);
 
index 635ba3afd7c0b4a9b9ae18fda9af4cd863130957..5752062c4c790e42abf8f3c8289fa683d5f6a859 100644 (file)
@@ -950,6 +950,7 @@ virNetworkObjGetMacMap;
 virNetworkObjGetNewDef;
 virNetworkObjGetPersistentDef;
 virNetworkObjGetRadvdPid;
+virNetworkObjIsAutostart;
 virNetworkObjListExport;
 virNetworkObjListForEach;
 virNetworkObjListGetNames;
@@ -964,6 +965,7 @@ virNetworkObjNew;
 virNetworkObjRemoveInactive;
 virNetworkObjReplacePersistentDef;
 virNetworkObjSaveStatus;
+virNetworkObjSetAutostart;
 virNetworkObjSetDef;
 virNetworkObjSetDefTransient;
 virNetworkObjSetDnsmasqPid;
index b0f2b10c17758a886f1799b07d4658d0666fa3c4..c714e0af40746c6b2763329096ac5af4ec427f18 100644 (file)
@@ -526,7 +526,7 @@ networkAutostartConfig(virNetworkObjPtr obj,
     int ret = -1;
 
     virObjectLock(obj);
-    if (obj->autostart &&
+    if (virNetworkObjIsAutostart(obj) &&
         !virNetworkObjIsActive(obj) &&
         networkStartNetwork(driver, obj) < 0)
         goto cleanup;
@@ -3969,7 +3969,7 @@ networkGetAutostart(virNetworkPtr net,
     if (virNetworkGetAutostartEnsureACL(net->conn, virNetworkObjGetDef(obj)) < 0)
         goto cleanup;
 
-    *autostart = obj->autostart;
+    *autostart = virNetworkObjIsAutostart(obj) ? 1 : 0;
     ret = 0;
 
  cleanup:
@@ -3986,6 +3986,8 @@ networkSetAutostart(virNetworkPtr net,
     virNetworkObjPtr obj;
     virNetworkDefPtr def;
     char *configFile = NULL, *autostartLink = NULL;
+    bool new_autostart;
+    bool cur_autostart;
     int ret = -1;
 
     if (!(obj = networkObjFromNetwork(net)))
@@ -4001,9 +4003,9 @@ networkSetAutostart(virNetworkPtr net,
         goto cleanup;
     }
 
-    autostart = (autostart != 0);
-
-    if (obj->autostart != autostart) {
+    new_autostart = (autostart != 0);
+    cur_autostart = virNetworkObjIsAutostart(obj);
+    if (cur_autostart != new_autostart) {
         if ((configFile = virNetworkConfigFile(driver->networkConfigDir,
                                                def->name)) == NULL)
             goto cleanup;
@@ -4011,7 +4013,7 @@ networkSetAutostart(virNetworkPtr net,
                                                   def->name)) == NULL)
             goto cleanup;
 
-        if (autostart) {
+        if (new_autostart) {
             if (virFileMakePath(driver->networkAutostartDir) < 0) {
                 virReportSystemError(errno,
                                      _("cannot create autostart directory '%s'"),
@@ -4034,8 +4036,9 @@ networkSetAutostart(virNetworkPtr net,
             }
         }
 
-        obj->autostart = autostart;
+        virNetworkObjSetAutostart(obj, new_autostart);
     }
+
     ret = 0;
 
  cleanup:
index 63574115892c2d7a5c7904bfbd22636c5abbe636..02b7f8cafd9e4a1ec66cc0ddbef76f28fd1bb575 100644 (file)
@@ -3647,7 +3647,7 @@ testNetworkGetAutostart(virNetworkPtr net,
     if (!(obj = testNetworkObjFindByName(privconn, net->name)))
         goto cleanup;
 
-    *autostart = obj->autostart;
+    *autostart = virNetworkObjIsAutostart(obj) ? 1 : 0;
     ret = 0;
 
  cleanup:
@@ -3662,12 +3662,14 @@ testNetworkSetAutostart(virNetworkPtr net,
 {
     testDriverPtr privconn = net->conn->privateData;
     virNetworkObjPtr obj;
+    bool new_autostart = (autostart != 0);
     int ret = -1;
 
     if (!(obj = testNetworkObjFindByName(privconn, net->name)))
         goto cleanup;
 
-    obj->autostart = autostart ? 1 : 0;
+    virNetworkObjSetAutostart(obj, new_autostart);
+
     ret = 0;
 
  cleanup: