[libvirt] [PATCH 12/16] network: Introduce virNetworkObjIsPersistent

John Ferlan jferlan at redhat.com
Fri May 19 13:03:20 UTC 2017


In preparation to privatize the virNetworkObj - create an accessor function
to get the current @persistent value.  Also change the value to a bool rather
than an unsigned int (since that's how it's generated anyway).

Signed-off-by: John Ferlan <jferlan at redhat.com>
---
 src/conf/virnetworkobj.c    | 7 +++++++
 src/conf/virnetworkobj.h    | 5 ++++-
 src/libvirt_private.syms    | 1 +
 src/network/bridge_driver.c | 7 ++++---
 src/test/test_driver.c      | 4 ++--
 5 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c
index 5918bce..229375a 100644
--- a/src/conf/virnetworkobj.c
+++ b/src/conf/virnetworkobj.c
@@ -136,6 +136,13 @@ virNetworkObjSetActive(virNetworkObjPtr obj,
 }
 
 
+bool
+virNetworkObjIsPersistent(virNetworkObjPtr obj)
+{
+    return obj->persistent;
+}
+
+
 int
 virNetworkObjGetAutostart(virNetworkObjPtr obj)
 {
diff --git a/src/conf/virnetworkobj.h b/src/conf/virnetworkobj.h
index 60f0e0e..666c2a5 100644
--- a/src/conf/virnetworkobj.h
+++ b/src/conf/virnetworkobj.h
@@ -33,7 +33,7 @@ struct _virNetworkObj {
     pid_t radvdPid;
     bool active;
     int autostart;
-    unsigned int persistent : 1;
+    bool persistent;
 
     virNetworkDefPtr def; /* The current definition */
     virNetworkDefPtr newDef; /* New definition to activate at shutdown */
@@ -63,6 +63,9 @@ void
 virNetworkObjSetActive(virNetworkObjPtr obj,
                        bool active);
 
+bool
+virNetworkObjIsPersistent(virNetworkObjPtr obj);
+
 int
 virNetworkObjGetAutostart(virNetworkObjPtr obj);
 
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 85f4cbd..4af8f8a 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -941,6 +941,7 @@ virNetworkObjGetNewDef;
 virNetworkObjGetPersistentDef;
 virNetworkObjGetRadvdPid;
 virNetworkObjIsActive;
+virNetworkObjIsPersistent;
 virNetworkObjListExport;
 virNetworkObjListForEach;
 virNetworkObjListGetNames;
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index 8ac5c7b..e2e9d13 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -3099,7 +3099,7 @@ networkIsPersistent(virNetworkPtr net)
     if (virNetworkIsPersistentEnsureACL(net->conn, virNetworkObjGetDef(obj)) < 0)
         goto cleanup;
 
-    ret = obj->persistent;
+    ret = virNetworkObjIsPersistent(obj);
 
  cleanup:
     virNetworkObjEndAPI(&obj);
@@ -3597,7 +3597,7 @@ networkUndefine(virNetworkPtr net)
     if (virNetworkObjIsActive(obj))
         active = true;
 
-    if (!obj->persistent) {
+    if (!virNetworkObjIsPersistent(obj)) {
         virReportError(VIR_ERR_OPERATION_INVALID, "%s",
                        _("can't undefine transient network"));
         goto cleanup;
@@ -3875,7 +3875,8 @@ networkDestroy(virNetworkPtr net)
                                         VIR_NETWORK_EVENT_STOPPED,
                                         0);
 
-    if (!obj->persistent && networkRemoveInactive(driver, obj) < 0) {
+    if (!virNetworkObjIsPersistent(obj) &&
+        networkRemoveInactive(driver, obj) < 0) {
         ret = -1;
         goto cleanup;
     }
diff --git a/src/test/test_driver.c b/src/test/test_driver.c
index ff03d30..dd78b52 100644
--- a/src/test/test_driver.c
+++ b/src/test/test_driver.c
@@ -3374,7 +3374,7 @@ testNetworkIsPersistent(virNetworkPtr net)
     if (!(obj = testNetworkObjFindByUUID(privconn, net->uuid)))
         goto cleanup;
 
-    ret = obj->persistent;
+    ret = virNetworkObjIsPersistent(obj);
 
  cleanup:
     virNetworkObjEndAPI(&obj);
@@ -3573,7 +3573,7 @@ testNetworkDestroy(virNetworkPtr net)
     event = virNetworkEventLifecycleNew(def->name, def->uuid,
                                         VIR_NETWORK_EVENT_STOPPED,
                                         0);
-    if (!obj->persistent)
+    if (!virNetworkObjIsPersistent(obj))
         virNetworkObjRemoveInactive(privconn->networks, obj);
 
     ret = 0;
-- 
2.9.3




More information about the libvir-list mailing list