From bc9868aaf2be2bb75c41f9192bf05de4bc90bdb4 Mon Sep 17 00:00:00 2001 From: John Ferlan Date: Aug 16 2017 18:17:57 +0000 Subject: network: Introduce virNetworkObjIsPersistent 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 --- diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c index e54fa8e..f5299d4 100644 --- a/src/conf/virnetworkobj.c +++ b/src/conf/virnetworkobj.c @@ -145,6 +145,13 @@ virNetworkObjSetActive(virNetworkObjPtr obj, bool +virNetworkObjIsPersistent(virNetworkObjPtr obj) +{ + return obj->persistent; +} + + +bool virNetworkObjIsAutostart(virNetworkObjPtr obj) { return obj->autostart; diff --git a/src/conf/virnetworkobj.h b/src/conf/virnetworkobj.h index a7ea025..0a8cc24 100644 --- a/src/conf/virnetworkobj.h +++ b/src/conf/virnetworkobj.h @@ -33,7 +33,7 @@ struct _virNetworkObj { pid_t radvdPid; bool active; bool autostart; - unsigned int persistent : 1; + bool persistent; virNetworkDefPtr def; /* The current definition */ virNetworkDefPtr newDef; /* New definition to activate at shutdown */ @@ -68,6 +68,9 @@ virNetworkObjSetActive(virNetworkObjPtr obj, bool active); bool +virNetworkObjIsPersistent(virNetworkObjPtr obj); + +bool virNetworkObjIsAutostart(virNetworkObjPtr obj); void diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 4cd5072..16d668b 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -952,6 +952,7 @@ virNetworkObjGetPersistentDef; virNetworkObjGetRadvdPid; virNetworkObjIsActive; virNetworkObjIsAutostart; +virNetworkObjIsPersistent; virNetworkObjListExport; virNetworkObjListForEach; virNetworkObjListGetNames; diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index a5b3c55..b59de78 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -3100,7 +3100,7 @@ networkIsPersistent(virNetworkPtr net) if (virNetworkIsPersistentEnsureACL(net->conn, virNetworkObjGetDef(obj)) < 0) goto cleanup; - ret = obj->persistent; + ret = virNetworkObjIsPersistent(obj); cleanup: virNetworkObjEndAPI(&obj); @@ -3598,7 +3598,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; @@ -3881,7 +3881,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; } @@ -3997,7 +3998,7 @@ networkSetAutostart(virNetworkPtr net, if (virNetworkSetAutostartEnsureACL(net->conn, def) < 0) goto cleanup; - if (!obj->persistent) { + if (!virNetworkObjIsPersistent(obj)) { virReportError(VIR_ERR_OPERATION_INVALID, "%s", _("cannot set autostart for transient network")); goto cleanup; diff --git a/src/test/test_driver.c b/src/test/test_driver.c index 4bc4dff..284d49e 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -3377,7 +3377,7 @@ testNetworkIsPersistent(virNetworkPtr net) if (!(obj = testNetworkObjFindByUUID(privconn, net->uuid))) goto cleanup; - ret = obj->persistent; + ret = virNetworkObjIsPersistent(obj); cleanup: virNetworkObjEndAPI(&obj); @@ -3576,7 +3576,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;