From nobody Fri May 3 20:47:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1495199156430202.96605856108113; Fri, 19 May 2017 06:05:56 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id B4C48C0567B3; Fri, 19 May 2017 13:05:54 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 6E93F1868C; Fri, 19 May 2017 13:05:54 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 06ED34A48D; Fri, 19 May 2017 13:05:54 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v4JD3U7a003726 for ; Fri, 19 May 2017 09:03:30 -0400 Received: by smtp.corp.redhat.com (Postfix) id B671518C50; Fri, 19 May 2017 13:03:30 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-116-18.phx2.redhat.com [10.3.116.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id 735FB18871 for ; Fri, 19 May 2017 13:03:30 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com B4C48C0567B3 Authentication-Results: ext-mx08.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx08.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com B4C48C0567B3 From: John Ferlan To: libvir-list@redhat.com Date: Fri, 19 May 2017 09:03:09 -0400 Message-Id: <20170519130324.4624-2-jferlan@redhat.com> In-Reply-To: <20170519130324.4624-1-jferlan@redhat.com> References: <20170519130324.4624-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 01/16] test: Fix up formatting in network test API's X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.32]); Fri, 19 May 2017 13:05:55 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Fix some spacing/formatting in the network test driver code. Signed-off-by: John Ferlan --- src/test/test_driver.c | 87 +++++++++++++++++++++++++++++++++++++---------= ---- 1 file changed, 64 insertions(+), 23 deletions(-) diff --git a/src/test/test_driver.c b/src/test/test_driver.c index 2db3f7d..5f0a170 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -956,6 +956,7 @@ testParseDomains(testDriverPtr privconn, return ret; } =20 + static int testParseNetworks(testDriverPtr privconn, const char *file, @@ -995,6 +996,7 @@ testParseNetworks(testDriverPtr privconn, return ret; } =20 + static int testParseInterfaces(testDriverPtr privconn, const char *file, @@ -3222,8 +3224,9 @@ testNetworkObjFindByUUID(testDriverPtr privconn, } =20 =20 -static virNetworkPtr testNetworkLookupByUUID(virConnectPtr conn, - const unsigned char *uuid) +static virNetworkPtr +testNetworkLookupByUUID(virConnectPtr conn, + const unsigned char *uuid) { testDriverPtr privconn =3D conn->privateData; virNetworkObjPtr net; @@ -3255,8 +3258,9 @@ testNetworkObjFindByName(testDriverPtr privconn, } =20 =20 -static virNetworkPtr testNetworkLookupByName(virConnectPtr conn, - const char *name) +static virNetworkPtr +testNetworkLookupByName(virConnectPtr conn, + const char *name) { testDriverPtr privconn =3D conn->privateData; virNetworkObjPtr net; @@ -3273,7 +3277,8 @@ static virNetworkPtr testNetworkLookupByName(virConne= ctPtr conn, } =20 =20 -static int testConnectNumOfNetworks(virConnectPtr conn) +static int +testConnectNumOfNetworks(virConnectPtr conn) { testDriverPtr privconn =3D conn->privateData; int numActive; @@ -3283,7 +3288,12 @@ static int testConnectNumOfNetworks(virConnectPtr co= nn) return numActive; } =20 -static int testConnectListNetworks(virConnectPtr conn, char **const names,= int nnames) { + +static int +testConnectListNetworks(virConnectPtr conn, + char **const names, + int nnames) +{ testDriverPtr privconn =3D conn->privateData; int n; =20 @@ -3292,7 +3302,9 @@ static int testConnectListNetworks(virConnectPtr conn= , char **const names, int n return n; } =20 -static int testConnectNumOfDefinedNetworks(virConnectPtr conn) + +static int +testConnectNumOfDefinedNetworks(virConnectPtr conn) { testDriverPtr privconn =3D conn->privateData; int numInactive; @@ -3302,7 +3314,12 @@ static int testConnectNumOfDefinedNetworks(virConnec= tPtr conn) return numInactive; } =20 -static int testConnectListDefinedNetworks(virConnectPtr conn, char **const= names, int nnames) { + +static int +testConnectListDefinedNetworks(virConnectPtr conn, + char **const names, + int nnames) +{ testDriverPtr privconn =3D conn->privateData; int n; =20 @@ -3311,6 +3328,7 @@ static int testConnectListDefinedNetworks(virConnectP= tr conn, char **const names return n; } =20 + static int testConnectListAllNetworks(virConnectPtr conn, virNetworkPtr **nets, @@ -3323,7 +3341,9 @@ testConnectListAllNetworks(virConnectPtr conn, return virNetworkObjListExport(conn, privconn->networks, nets, NULL, f= lags); } =20 -static int testNetworkIsActive(virNetworkPtr net) + +static int +testNetworkIsActive(virNetworkPtr net) { testDriverPtr privconn =3D net->conn->privateData; virNetworkObjPtr obj; @@ -3339,7 +3359,9 @@ static int testNetworkIsActive(virNetworkPtr net) return ret; } =20 -static int testNetworkIsPersistent(virNetworkPtr net) + +static int +testNetworkIsPersistent(virNetworkPtr net) { testDriverPtr privconn =3D net->conn->privateData; virNetworkObjPtr obj; @@ -3356,7 +3378,8 @@ static int testNetworkIsPersistent(virNetworkPtr net) } =20 =20 -static virNetworkPtr testNetworkCreateXML(virConnectPtr conn, const char *= xml) +static virNetworkPtr +testNetworkCreateXML(virConnectPtr conn, const char *xml) { testDriverPtr privconn =3D conn->privateData; virNetworkDefPtr def; @@ -3387,8 +3410,10 @@ static virNetworkPtr testNetworkCreateXML(virConnect= Ptr conn, const char *xml) return ret; } =20 -static -virNetworkPtr testNetworkDefineXML(virConnectPtr conn, const char *xml) + +static virNetworkPtr +testNetworkDefineXML(virConnectPtr conn, + const char *xml) { testDriverPtr privconn =3D conn->privateData; virNetworkDefPtr def; @@ -3416,7 +3441,9 @@ virNetworkPtr testNetworkDefineXML(virConnectPtr conn= , const char *xml) return ret; } =20 -static int testNetworkUndefine(virNetworkPtr network) + +static int +testNetworkUndefine(virNetworkPtr network) { testDriverPtr privconn =3D network->conn->privateData; virNetworkObjPtr privnet; @@ -3445,6 +3472,7 @@ static int testNetworkUndefine(virNetworkPtr network) return ret; } =20 + static int testNetworkUpdate(virNetworkPtr net, unsigned int command, @@ -3487,7 +3515,9 @@ testNetworkUpdate(virNetworkPtr net, return ret; } =20 -static int testNetworkCreate(virNetworkPtr network) + +static int +testNetworkCreate(virNetworkPtr network) { testDriverPtr privconn =3D network->conn->privateData; virNetworkObjPtr privnet; @@ -3515,7 +3545,9 @@ static int testNetworkCreate(virNetworkPtr network) return ret; } =20 -static int testNetworkDestroy(virNetworkPtr network) + +static int +testNetworkDestroy(virNetworkPtr network) { testDriverPtr privconn =3D network->conn->privateData; virNetworkObjPtr privnet; @@ -3540,8 +3572,10 @@ static int testNetworkDestroy(virNetworkPtr network) return ret; } =20 -static char *testNetworkGetXMLDesc(virNetworkPtr network, - unsigned int flags) + +static char * +testNetworkGetXMLDesc(virNetworkPtr network, + unsigned int flags) { testDriverPtr privconn =3D network->conn->privateData; virNetworkObjPtr privnet; @@ -3559,7 +3593,10 @@ static char *testNetworkGetXMLDesc(virNetworkPtr net= work, return ret; } =20 -static char *testNetworkGetBridgeName(virNetworkPtr network) { + +static char * +testNetworkGetBridgeName(virNetworkPtr network) +{ testDriverPtr privconn =3D network->conn->privateData; char *bridge =3D NULL; virNetworkObjPtr privnet; @@ -3581,8 +3618,10 @@ static char *testNetworkGetBridgeName(virNetworkPtr = network) { return bridge; } =20 -static int testNetworkGetAutostart(virNetworkPtr network, - int *autostart) + +static int +testNetworkGetAutostart(virNetworkPtr network, + int *autostart) { testDriverPtr privconn =3D network->conn->privateData; virNetworkObjPtr privnet; @@ -3599,8 +3638,10 @@ static int testNetworkGetAutostart(virNetworkPtr net= work, return ret; } =20 -static int testNetworkSetAutostart(virNetworkPtr network, - int autostart) + +static int +testNetworkSetAutostart(virNetworkPtr network, + int autostart) { testDriverPtr privconn =3D network->conn->privateData; virNetworkObjPtr privnet; --=20 2.9.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri May 3 20:47:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1495199162735935.6922650683183; Fri, 19 May 2017 06:06:02 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 2DEC8883B1; Fri, 19 May 2017 13:05:59 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id F266B80E8F; Fri, 19 May 2017 13:05:58 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id B1762180BAF4; Fri, 19 May 2017 13:05:58 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v4JD3Xds003745 for ; Fri, 19 May 2017 09:03:33 -0400 Received: by smtp.corp.redhat.com (Postfix) id 35E2E18C5F; Fri, 19 May 2017 13:03:33 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-116-18.phx2.redhat.com [10.3.116.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id E73D618C5E for ; Fri, 19 May 2017 13:03:30 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 2DEC8883B1 Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 2DEC8883B1 From: John Ferlan To: libvir-list@redhat.com Date: Fri, 19 May 2017 09:03:10 -0400 Message-Id: <20170519130324.4624-3-jferlan@redhat.com> In-Reply-To: <20170519130324.4624-1-jferlan@redhat.com> References: <20170519130324.4624-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 02/16] test: Use consistent variable names for network test driver APIs X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Fri, 19 May 2017 13:05:59 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" A virNetworkObjPtr will be an 'obj'. A virNetworkPtr will be a 'net'. Signed-off-by: John Ferlan --- src/test/test_driver.c | 182 ++++++++++++++++++++++++---------------------= ---- 1 file changed, 91 insertions(+), 91 deletions(-) diff --git a/src/test/test_driver.c b/src/test/test_driver.c index 5f0a170..46f0a9a 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -3210,17 +3210,17 @@ static virNetworkObjPtr testNetworkObjFindByUUID(testDriverPtr privconn, const unsigned char *uuid) { - virNetworkObjPtr net; + virNetworkObjPtr obj; char uuidstr[VIR_UUID_STRING_BUFLEN]; =20 - if (!(net =3D virNetworkObjFindByUUID(privconn->networks, uuid))) { + if (!(obj =3D virNetworkObjFindByUUID(privconn->networks, uuid))) { virUUIDFormat(uuid, uuidstr); virReportError(VIR_ERR_NO_NETWORK, _("no network with matching uuid '%s'"), uuidstr); } =20 - return net; + return obj; } =20 =20 @@ -3229,17 +3229,17 @@ testNetworkLookupByUUID(virConnectPtr conn, const unsigned char *uuid) { testDriverPtr privconn =3D conn->privateData; - virNetworkObjPtr net; - virNetworkPtr ret =3D NULL; + virNetworkObjPtr obj; + virNetworkPtr net =3D NULL; =20 - if (!(net =3D testNetworkObjFindByUUID(privconn, uuid))) + if (!(obj =3D testNetworkObjFindByUUID(privconn, uuid))) goto cleanup; =20 - ret =3D virGetNetwork(conn, net->def->name, net->def->uuid); + net =3D virGetNetwork(conn, obj->def->name, obj->def->uuid); =20 cleanup: - virNetworkObjEndAPI(&net); - return ret; + virNetworkObjEndAPI(&obj); + return net; } =20 =20 @@ -3247,14 +3247,14 @@ static virNetworkObjPtr testNetworkObjFindByName(testDriverPtr privconn, const char *name) { - virNetworkObjPtr net; + virNetworkObjPtr obj; =20 - if (!(net =3D virNetworkObjFindByName(privconn->networks, name))) + if (!(obj =3D virNetworkObjFindByName(privconn->networks, name))) virReportError(VIR_ERR_NO_NETWORK, _("no network with matching name '%s'"), name); =20 - return net; + return obj; } =20 =20 @@ -3263,17 +3263,17 @@ testNetworkLookupByName(virConnectPtr conn, const char *name) { testDriverPtr privconn =3D conn->privateData; - virNetworkObjPtr net; - virNetworkPtr ret =3D NULL; + virNetworkObjPtr obj; + virNetworkPtr net =3D NULL; =20 - if (!(net =3D testNetworkObjFindByName(privconn, name))) + if (!(obj =3D testNetworkObjFindByName(privconn, name))) goto cleanup; =20 - ret =3D virGetNetwork(conn, net->def->name, net->def->uuid); + net =3D virGetNetwork(conn, obj->def->name, obj->def->uuid); =20 cleanup: - virNetworkObjEndAPI(&net); - return ret; + virNetworkObjEndAPI(&obj); + return net; } =20 =20 @@ -3383,31 +3383,31 @@ testNetworkCreateXML(virConnectPtr conn, const char= *xml) { testDriverPtr privconn =3D conn->privateData; virNetworkDefPtr def; - virNetworkObjPtr net =3D NULL; - virNetworkPtr ret =3D NULL; + virNetworkObjPtr obj =3D NULL; + virNetworkPtr net =3D NULL; virObjectEventPtr event =3D NULL; =20 if ((def =3D virNetworkDefParseString(xml)) =3D=3D NULL) goto cleanup; =20 - if (!(net =3D virNetworkObjAssignDef(privconn->networks, def, + if (!(obj =3D virNetworkObjAssignDef(privconn->networks, def, VIR_NETWORK_OBJ_LIST_ADD_LIVE | VIR_NETWORK_OBJ_LIST_ADD_CHECK_LIVE= ))) goto cleanup; def =3D NULL; - net->active =3D 1; + obj->active =3D 1; =20 - event =3D virNetworkEventLifecycleNew(net->def->name, net->def->uuid, + event =3D virNetworkEventLifecycleNew(obj->def->name, obj->def->uuid, VIR_NETWORK_EVENT_STARTED, 0); =20 - ret =3D virGetNetwork(conn, net->def->name, net->def->uuid); + net =3D virGetNetwork(conn, obj->def->name, obj->def->uuid); =20 cleanup: virNetworkDefFree(def); testObjectEventQueue(privconn, event); - virNetworkObjEndAPI(&net); - return ret; + virNetworkObjEndAPI(&obj); + return net; } =20 =20 @@ -3417,58 +3417,58 @@ testNetworkDefineXML(virConnectPtr conn, { testDriverPtr privconn =3D conn->privateData; virNetworkDefPtr def; - virNetworkObjPtr net =3D NULL; - virNetworkPtr ret =3D NULL; + virNetworkObjPtr obj =3D NULL; + virNetworkPtr net =3D NULL; virObjectEventPtr event =3D NULL; =20 if ((def =3D virNetworkDefParseString(xml)) =3D=3D NULL) goto cleanup; =20 - if (!(net =3D virNetworkObjAssignDef(privconn->networks, def, 0))) + if (!(obj =3D virNetworkObjAssignDef(privconn->networks, def, 0))) goto cleanup; def =3D NULL; =20 - event =3D virNetworkEventLifecycleNew(net->def->name, net->def->uuid, + event =3D virNetworkEventLifecycleNew(obj->def->name, obj->def->uuid, VIR_NETWORK_EVENT_DEFINED, 0); =20 - ret =3D virGetNetwork(conn, net->def->name, net->def->uuid); + net =3D virGetNetwork(conn, obj->def->name, obj->def->uuid); =20 cleanup: virNetworkDefFree(def); testObjectEventQueue(privconn, event); - virNetworkObjEndAPI(&net); - return ret; + virNetworkObjEndAPI(&obj); + return net; } =20 =20 static int -testNetworkUndefine(virNetworkPtr network) +testNetworkUndefine(virNetworkPtr net) { - testDriverPtr privconn =3D network->conn->privateData; - virNetworkObjPtr privnet; + testDriverPtr privconn =3D net->conn->privateData; + virNetworkObjPtr obj; int ret =3D -1; virObjectEventPtr event =3D NULL; =20 - if (!(privnet =3D testNetworkObjFindByName(privconn, network->name))) + if (!(obj =3D testNetworkObjFindByName(privconn, net->name))) goto cleanup; =20 - if (virNetworkObjIsActive(privnet)) { + if (virNetworkObjIsActive(obj)) { virReportError(VIR_ERR_OPERATION_INVALID, - _("Network '%s' is still running"), network->name); + _("Network '%s' is still running"), net->name); goto cleanup; } =20 - event =3D virNetworkEventLifecycleNew(network->name, network->uuid, + event =3D virNetworkEventLifecycleNew(net->name, net->uuid, VIR_NETWORK_EVENT_UNDEFINED, 0); =20 - virNetworkObjRemoveInactive(privconn->networks, privnet); + virNetworkObjRemoveInactive(privconn->networks, obj); ret =3D 0; =20 cleanup: testObjectEventQueue(privconn, event); - virNetworkObjEndAPI(&privnet); + virNetworkObjEndAPI(&obj); return ret; } =20 @@ -3482,20 +3482,20 @@ testNetworkUpdate(virNetworkPtr net, unsigned int flags) { testDriverPtr privconn =3D net->conn->privateData; - virNetworkObjPtr network =3D NULL; + virNetworkObjPtr obj =3D NULL; int isActive, ret =3D -1; =20 virCheckFlags(VIR_NETWORK_UPDATE_AFFECT_LIVE | VIR_NETWORK_UPDATE_AFFECT_CONFIG, -1); =20 - if (!(network =3D testNetworkObjFindByUUID(privconn, net->uuid))) + if (!(obj =3D testNetworkObjFindByUUID(privconn, net->uuid))) goto cleanup; =20 /* VIR_NETWORK_UPDATE_AFFECT_CURRENT means "change LIVE if network * is active, else change CONFIG */ - isActive =3D virNetworkObjIsActive(network); + isActive =3D virNetworkObjIsActive(obj); if ((flags & (VIR_NETWORK_UPDATE_AFFECT_LIVE | VIR_NETWORK_UPDATE_AFFECT_CONFIG)) =3D=3D VIR_NETWORK_UPDATE_AFFECT_CURRENT) { @@ -3506,155 +3506,155 @@ testNetworkUpdate(virNetworkPtr net, } =20 /* update the network config in memory/on disk */ - if (virNetworkObjUpdate(network, command, section, parentIndex, xml, f= lags) < 0) + if (virNetworkObjUpdate(obj, command, section, parentIndex, xml, flags= ) < 0) goto cleanup; =20 ret =3D 0; cleanup: - virNetworkObjEndAPI(&network); + virNetworkObjEndAPI(&obj); return ret; } =20 =20 static int -testNetworkCreate(virNetworkPtr network) +testNetworkCreate(virNetworkPtr net) { - testDriverPtr privconn =3D network->conn->privateData; - virNetworkObjPtr privnet; + testDriverPtr privconn =3D net->conn->privateData; + virNetworkObjPtr obj; int ret =3D -1; virObjectEventPtr event =3D NULL; =20 - if (!(privnet =3D testNetworkObjFindByName(privconn, network->name))) + if (!(obj =3D testNetworkObjFindByName(privconn, net->name))) goto cleanup; =20 - if (virNetworkObjIsActive(privnet)) { + if (virNetworkObjIsActive(obj)) { virReportError(VIR_ERR_OPERATION_INVALID, - _("Network '%s' is already running"), network->name= ); + _("Network '%s' is already running"), net->name); goto cleanup; } =20 - privnet->active =3D 1; - event =3D virNetworkEventLifecycleNew(privnet->def->name, privnet->def= ->uuid, + obj->active =3D 1; + event =3D virNetworkEventLifecycleNew(obj->def->name, obj->def->uuid, VIR_NETWORK_EVENT_STARTED, 0); ret =3D 0; =20 cleanup: testObjectEventQueue(privconn, event); - virNetworkObjEndAPI(&privnet); + virNetworkObjEndAPI(&obj); return ret; } =20 =20 static int -testNetworkDestroy(virNetworkPtr network) +testNetworkDestroy(virNetworkPtr net) { - testDriverPtr privconn =3D network->conn->privateData; - virNetworkObjPtr privnet; + testDriverPtr privconn =3D net->conn->privateData; + virNetworkObjPtr obj; int ret =3D -1; virObjectEventPtr event =3D NULL; =20 - if (!(privnet =3D testNetworkObjFindByName(privconn, network->name))) + if (!(obj =3D testNetworkObjFindByName(privconn, net->name))) goto cleanup; =20 - privnet->active =3D 0; - event =3D virNetworkEventLifecycleNew(privnet->def->name, privnet->def= ->uuid, + obj->active =3D 0; + event =3D virNetworkEventLifecycleNew(obj->def->name, obj->def->uuid, VIR_NETWORK_EVENT_STOPPED, 0); - if (!privnet->persistent) - virNetworkObjRemoveInactive(privconn->networks, privnet); + if (!obj->persistent) + virNetworkObjRemoveInactive(privconn->networks, obj); =20 ret =3D 0; =20 cleanup: testObjectEventQueue(privconn, event); - virNetworkObjEndAPI(&privnet); + virNetworkObjEndAPI(&obj); return ret; } =20 =20 static char * -testNetworkGetXMLDesc(virNetworkPtr network, +testNetworkGetXMLDesc(virNetworkPtr net, unsigned int flags) { - testDriverPtr privconn =3D network->conn->privateData; - virNetworkObjPtr privnet; + testDriverPtr privconn =3D net->conn->privateData; + virNetworkObjPtr obj; char *ret =3D NULL; =20 virCheckFlags(0, NULL); =20 - if (!(privnet =3D testNetworkObjFindByName(privconn, network->name))) + if (!(obj =3D testNetworkObjFindByName(privconn, net->name))) goto cleanup; =20 - ret =3D virNetworkDefFormat(privnet->def, flags); + ret =3D virNetworkDefFormat(obj->def, flags); =20 cleanup: - virNetworkObjEndAPI(&privnet); + virNetworkObjEndAPI(&obj); return ret; } =20 =20 static char * -testNetworkGetBridgeName(virNetworkPtr network) +testNetworkGetBridgeName(virNetworkPtr net) { - testDriverPtr privconn =3D network->conn->privateData; + testDriverPtr privconn =3D net->conn->privateData; char *bridge =3D NULL; - virNetworkObjPtr privnet; + virNetworkObjPtr obj; =20 - if (!(privnet =3D testNetworkObjFindByName(privconn, network->name))) + if (!(obj =3D testNetworkObjFindByName(privconn, net->name))) goto cleanup; =20 - if (!(privnet->def->bridge)) { + if (!(obj->def->bridge)) { virReportError(VIR_ERR_INTERNAL_ERROR, _("network '%s' does not have a bridge name."), - privnet->def->name); + obj->def->name); goto cleanup; } =20 - ignore_value(VIR_STRDUP(bridge, privnet->def->bridge)); + ignore_value(VIR_STRDUP(bridge, obj->def->bridge)); =20 cleanup: - virNetworkObjEndAPI(&privnet); + virNetworkObjEndAPI(&obj); return bridge; } =20 =20 static int -testNetworkGetAutostart(virNetworkPtr network, +testNetworkGetAutostart(virNetworkPtr net, int *autostart) { - testDriverPtr privconn =3D network->conn->privateData; - virNetworkObjPtr privnet; + testDriverPtr privconn =3D net->conn->privateData; + virNetworkObjPtr obj; int ret =3D -1; =20 - if (!(privnet =3D testNetworkObjFindByName(privconn, network->name))) + if (!(obj =3D testNetworkObjFindByName(privconn, net->name))) goto cleanup; =20 - *autostart =3D privnet->autostart; + *autostart =3D obj->autostart; ret =3D 0; =20 cleanup: - virNetworkObjEndAPI(&privnet); + virNetworkObjEndAPI(&obj); return ret; } =20 =20 static int -testNetworkSetAutostart(virNetworkPtr network, +testNetworkSetAutostart(virNetworkPtr net, int autostart) { - testDriverPtr privconn =3D network->conn->privateData; - virNetworkObjPtr privnet; + testDriverPtr privconn =3D net->conn->privateData; + virNetworkObjPtr obj; int ret =3D -1; =20 - if (!(privnet =3D testNetworkObjFindByName(privconn, network->name))) + if (!(obj =3D testNetworkObjFindByName(privconn, net->name))) goto cleanup; =20 - privnet->autostart =3D autostart ? 1 : 0; + obj->autostart =3D autostart ? 1 : 0; ret =3D 0; =20 cleanup: - virNetworkObjEndAPI(&privnet); + virNetworkObjEndAPI(&obj); return ret; } =20 --=20 2.9.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri May 3 20:47:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1495199168445869.9868659472214; Fri, 19 May 2017 06:06:08 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id E815D624C6; Fri, 19 May 2017 13:06:02 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id BA0E518C5F; Fri, 19 May 2017 13:06:02 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 6B8084A48E; Fri, 19 May 2017 13:06:02 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v4JD3YdX003754 for ; Fri, 19 May 2017 09:03:34 -0400 Received: by smtp.corp.redhat.com (Postfix) id 0BB5918C5E; Fri, 19 May 2017 13:03:34 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-116-18.phx2.redhat.com [10.3.116.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5F9605C662 for ; Fri, 19 May 2017 13:03:33 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com E815D624C6 Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com E815D624C6 From: John Ferlan To: libvir-list@redhat.com Date: Fri, 19 May 2017 09:03:11 -0400 Message-Id: <20170519130324.4624-4-jferlan@redhat.com> In-Reply-To: <20170519130324.4624-1-jferlan@redhat.com> References: <20170519130324.4624-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 03/16] network: Perform some formatting cleanup in bridge_driver X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Fri, 19 May 2017 13:06:04 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Modify code to have two spaces between functions, follow function more recent function formatting w/r/t args per line and function return type and name on separate lines. Signed-off-by: John Ferlan --- src/network/bridge_driver.c | 228 +++++++++++++++++++++++++++++++++-------= ---- 1 file changed, 174 insertions(+), 54 deletions(-) diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index 3ba7018..e502bfe 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -91,6 +91,7 @@ VIR_LOG_INIT("network.bridge_driver"); =20 static virNetworkDriverStatePtr network_driver; =20 + static virNetworkDriverStatePtr networkGetDriver(void) { @@ -100,15 +101,21 @@ networkGetDriver(void) return network_driver; } =20 -static void networkDriverLock(virNetworkDriverStatePtr driver) + +static void +networkDriverLock(virNetworkDriverStatePtr driver) { virMutexLock(&driver->lock); } -static void networkDriverUnlock(virNetworkDriverStatePtr driver) + + +static void +networkDriverUnlock(virNetworkDriverStatePtr driver) { virMutexUnlock(&driver->lock); } =20 + static dnsmasqCapsPtr networkGetDnsmasqCaps(virNetworkDriverStatePtr driver) { @@ -119,6 +126,7 @@ networkGetDnsmasqCaps(virNetworkDriverStatePtr driver) return ret; } =20 + static int networkDnsmasqCapsRefresh(virNetworkDriverStatePtr driver) { @@ -134,34 +142,50 @@ networkDnsmasqCapsRefresh(virNetworkDriverStatePtr dr= iver) return 0; } =20 -static int networkStateCleanup(void); =20 -static int networkStartNetwork(virNetworkDriverStatePtr driver, - virNetworkObjPtr network); +static int +networkStateCleanup(void); + +static int +networkStartNetwork(virNetworkDriverStatePtr driver, + virNetworkObjPtr network); + +static int +networkShutdownNetwork(virNetworkDriverStatePtr driver, + virNetworkObjPtr network); + +static int +networkStartNetworkVirtual(virNetworkDriverStatePtr driver, + virNetworkObjPtr network); + +static int +networkShutdownNetworkVirtual(virNetworkDriverStatePtr driver, + virNetworkObjPtr network); =20 -static int networkShutdownNetwork(virNetworkDriverStatePtr driver, - virNetworkObjPtr network); +static int +networkStartNetworkExternal(virNetworkObjPtr network); =20 -static int networkStartNetworkVirtual(virNetworkDriverStatePtr driver, - virNetworkObjPtr network); +static int +networkShutdownNetworkExternal(virNetworkObjPtr network); =20 -static int networkShutdownNetworkVirtual(virNetworkDriverStatePtr driver, - virNetworkObjPtr network); +static void +networkReloadFirewallRules(virNetworkDriverStatePtr driver); =20 -static int networkStartNetworkExternal(virNetworkObjPtr network); +static void +networkRefreshDaemons(virNetworkDriverStatePtr driver); =20 -static int networkShutdownNetworkExternal(virNetworkObjPtr network); +static int +networkPlugBandwidth(virNetworkObjPtr net, + virDomainNetDefPtr iface); =20 -static void networkReloadFirewallRules(virNetworkDriverStatePtr driver); -static void networkRefreshDaemons(virNetworkDriverStatePtr driver); +static int +networkUnplugBandwidth(virNetworkObjPtr net, + virDomainNetDefPtr iface); =20 -static int networkPlugBandwidth(virNetworkObjPtr net, - virDomainNetDefPtr iface); -static int networkUnplugBandwidth(virNetworkObjPtr net, - virDomainNetDefPtr iface); +static void +networkNetworkObjTaint(virNetworkObjPtr net, + virNetworkTaintFlags taint); =20 -static void networkNetworkObjTaint(virNetworkObjPtr net, - virNetworkTaintFlags taint); =20 static virNetworkObjPtr networkObjFromNetwork(virNetworkPtr net) @@ -181,6 +205,7 @@ networkObjFromNetwork(virNetworkPtr net) return network; } =20 + static int networkRunHook(virNetworkObjPtr network, virDomainDefPtr dom, @@ -237,6 +262,7 @@ networkRunHook(virNetworkObjPtr network, return ret; } =20 + static char * networkDnsmasqLeaseFileNameDefault(virNetworkDriverStatePtr driver, const char *netname) @@ -248,6 +274,7 @@ networkDnsmasqLeaseFileNameDefault(virNetworkDriverStat= ePtr driver, return leasefile; } =20 + static char * networkDnsmasqLeaseFileNameCustom(virNetworkDriverStatePtr driver, const char *bridge) @@ -259,6 +286,7 @@ networkDnsmasqLeaseFileNameCustom(virNetworkDriverState= Ptr driver, return leasefile; } =20 + static char * networkDnsmasqConfigFileName(virNetworkDriverStatePtr driver, const char *netname) @@ -270,6 +298,7 @@ networkDnsmasqConfigFileName(virNetworkDriverStatePtr d= river, return conffile; } =20 + static char * networkRadvdPidfileBasename(const char *netname) { @@ -280,6 +309,7 @@ networkRadvdPidfileBasename(const char *netname) return pidfilebase; } =20 + static char * networkRadvdConfigFileName(virNetworkDriverStatePtr driver, const char *netname) @@ -291,6 +321,7 @@ networkRadvdConfigFileName(virNetworkDriverStatePtr dri= ver, return configfile; } =20 + static char * networkMacMgrFileName(virNetworkDriverStatePtr driver, const char *bridge) @@ -302,6 +333,7 @@ networkMacMgrFileName(virNetworkDriverStatePtr driver, return filename; } =20 + /* do needed cleanup steps and remove the network from the list */ static int networkRemoveInactive(virNetworkDriverStatePtr driver, @@ -379,6 +411,7 @@ networkRemoveInactive(virNetworkDriverStatePtr driver, return ret; } =20 + static int networkMacMgrAdd(virNetworkDriverStatePtr driver, virNetworkObjPtr network, @@ -409,6 +442,7 @@ networkMacMgrAdd(virNetworkDriverStatePtr driver, return ret; } =20 + static int networkMacMgrDel(virNetworkDriverStatePtr driver, virNetworkObjPtr network, @@ -439,6 +473,7 @@ networkMacMgrDel(virNetworkDriverStatePtr driver, return ret; } =20 + static char * networkBridgeDummyNicName(const char *brname) { @@ -463,6 +498,7 @@ networkBridgeDummyNicName(const char *brname) return nicname; } =20 + static int networkUpdateState(virNetworkObjPtr obj, void *opaque) @@ -563,10 +599,12 @@ networkAutostartConfig(virNetworkObjPtr net, return ret; } =20 + #if HAVE_FIREWALLD static DBusHandlerResult firewalld_dbus_filter_bridge(DBusConnection *connection ATTRIBUTE_UNUSED, - DBusMessage *message, void *user_data) + DBusMessage *message, + void *user_data) { virNetworkDriverStatePtr driver =3D user_data; =20 @@ -583,6 +621,7 @@ firewalld_dbus_filter_bridge(DBusConnection *connection= ATTRIBUTE_UNUSED, } #endif =20 + static int networkMigrateStateFiles(virNetworkDriverStatePtr driver) { @@ -668,6 +707,7 @@ networkMigrateStateFiles(virNetworkDriverStatePtr drive= r) return ret; } =20 + /** * networkStateInitialize: * @@ -813,6 +853,7 @@ networkStateInitialize(bool privileged, goto cleanup; } =20 + /** * networkStateAutoStart: * @@ -829,6 +870,7 @@ networkStateAutoStart(void) network_driver); } =20 + /** * networkStateReload: * @@ -893,7 +935,9 @@ networkStateCleanup(void) * kill the specified pid/name, and wait a bit to make sure it's dead. */ static int -networkKillDaemon(pid_t pid, const char *daemonName, const char *networkNa= me) +networkKillDaemon(pid_t pid, + const char *daemonName, + const char *networkName) { size_t i; int ret =3D -1; @@ -948,10 +992,10 @@ networkKillDaemon(pid_t pid, const char *daemonName, = const char *networkName) return ret; } =20 + /* the following does not build a file, it builds a list * which is later saved into a file */ - static int networkBuildDnsmasqDhcpHostsList(dnsmasqContext *dctx, virNetworkIPDefPtr ipdef) @@ -972,6 +1016,7 @@ networkBuildDnsmasqDhcpHostsList(dnsmasqContext *dctx, return 0; } =20 + static int networkBuildDnsmasqHostsList(dnsmasqContext *dctx, virNetworkDNSDefPtr dnsdef) @@ -1489,6 +1534,7 @@ networkDnsmasqConfContents(virNetworkObjPtr network, return ret; } =20 + /* build the dnsmasq command line */ static int ATTRIBUTE_NONNULL(3) networkBuildDhcpDaemonCommandLine(virNetworkDriverStatePtr driver, @@ -1547,6 +1593,7 @@ networkBuildDhcpDaemonCommandLine(virNetworkDriverSta= tePtr driver, return ret; } =20 + static int networkStartDhcpDaemon(virNetworkDriverStatePtr driver, virNetworkObjPtr network) @@ -1637,6 +1684,7 @@ networkStartDhcpDaemon(virNetworkDriverStatePtr drive= r, return ret; } =20 + /* networkRefreshDhcpDaemon: * Update dnsmasq config files, then send a SIGHUP so that it rereads * them. This only works for the dhcp-hostsfile and the @@ -1705,6 +1753,7 @@ networkRefreshDhcpDaemon(virNetworkDriverStatePtr dri= ver, return ret; } =20 + /* networkRestartDhcpDaemon: * * kill and restart dnsmasq, in order to update any config that is on @@ -1726,6 +1775,7 @@ networkRestartDhcpDaemon(virNetworkDriverStatePtr dri= ver, return networkStartDhcpDaemon(driver, network); } =20 + static char radvd1[] =3D " AdvOtherConfigFlag off;\n\n"; static char radvd2[] =3D " AdvAutonomous off;\n"; static char radvd3[] =3D " AdvOnLink on;\n" @@ -1733,7 +1783,8 @@ static char radvd3[] =3D " AdvOnLink on;\n" " AdvRouterAddr off;\n"; =20 static int -networkRadvdConfContents(virNetworkObjPtr network, char **configstr) +networkRadvdConfContents(virNetworkObjPtr network, + char **configstr) { virBuffer configbuf =3D VIR_BUFFER_INITIALIZER; int ret =3D -1; @@ -1810,6 +1861,7 @@ networkRadvdConfContents(virNetworkObjPtr network, ch= ar **configstr) return ret; } =20 + /* write file and return its name (which must be freed by caller) */ static int networkRadvdConfWrite(virNetworkDriverStatePtr driver, @@ -1851,6 +1903,7 @@ networkRadvdConfWrite(virNetworkDriverStatePtr driver, return ret; } =20 + static int networkStartRadvd(virNetworkDriverStatePtr driver, virNetworkObjPtr network) @@ -1939,6 +1992,7 @@ networkStartRadvd(virNetworkDriverStatePtr driver, return ret; } =20 + static int networkRefreshRadvd(virNetworkDriverStatePtr driver, virNetworkObjPtr network) @@ -1979,6 +2033,7 @@ networkRefreshRadvd(virNetworkDriverStatePtr driver, return kill(network->radvdPid, SIGHUP); } =20 + #if 0 /* currently unused, so it causes a build error unless we #if it out */ static int @@ -2006,6 +2061,7 @@ networkRestartRadvd(virNetworkObjPtr network) } #endif /* #if 0 */ =20 + static int networkRefreshDaemonsHelper(virNetworkObjPtr net, void *opaque) @@ -2031,6 +2087,7 @@ networkRefreshDaemonsHelper(virNetworkObjPtr net, return 0; } =20 + /* SIGHUP/restart any dnsmasq or radvd daemons. * This should be called when libvirtd is restarted. */ @@ -2043,6 +2100,7 @@ networkRefreshDaemons(virNetworkDriverStatePtr driver) driver); } =20 + static int networkReloadFirewallRulesHelper(virNetworkObjPtr net, void *opaque ATTRIBUTE_UNUSED) @@ -2067,6 +2125,7 @@ networkReloadFirewallRulesHelper(virNetworkObjPtr net, return 0; } =20 + static void networkReloadFirewallRules(virNetworkDriverStatePtr driver) { @@ -2076,9 +2135,11 @@ networkReloadFirewallRules(virNetworkDriverStatePtr = driver) NULL); } =20 + /* Enable IP Forwarding. Return 0 for success, -1 for failure. */ static int -networkEnableIPForwarding(bool enableIPv4, bool enableIPv6) +networkEnableIPForwarding(bool enableIPv4, + bool enableIPv6) { int ret =3D 0; #ifdef HAVE_SYSCTLBYNAME @@ -2099,6 +2160,7 @@ networkEnableIPForwarding(bool enableIPv4, bool enabl= eIPv6) return ret; } =20 + static int networkSetIPv6Sysctls(virNetworkObjPtr network) { @@ -2167,6 +2229,7 @@ networkSetIPv6Sysctls(virNetworkObjPtr network) return ret; } =20 + /* add an IP address to a bridge */ static int networkAddAddrToBridge(virNetworkObjPtr network, @@ -2262,6 +2325,7 @@ networkWaitDadFinish(virNetworkObjPtr network) return ret; } =20 + static int networkStartNetworkVirtual(virNetworkDriverStatePtr driver, virNetworkObjPtr network) @@ -2479,6 +2543,7 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr d= river, return -1; } =20 + static int networkShutdownNetworkVirtual(virNetworkDriverStatePtr driver, virNetworkObjPtr network) @@ -2543,6 +2608,7 @@ networkStartNetworkBridge(virNetworkObjPtr network) return networkStartHandleMACTableManagerMode(network, NULL); } =20 + static int networkShutdownNetworkBridge(virNetworkObjPtr network ATTRIBUTE_UNUSED) { @@ -2673,7 +2739,9 @@ networkStartNetworkExternal(virNetworkObjPtr network) return networkCreateInterfacePool(network->def); } =20 -static int networkShutdownNetworkExternal(virNetworkObjPtr network ATTRIBU= TE_UNUSED) + +static int +networkShutdownNetworkExternal(virNetworkObjPtr network ATTRIBUTE_UNUSED) { /* put anything here that needs to be done each time a network of * type BRIDGE, PRIVATE, VEPA, HOSTDEV or PASSTHROUGH is shutdown. On @@ -2683,6 +2751,7 @@ static int networkShutdownNetworkExternal(virNetworkO= bjPtr network ATTRIBUTE_UNU return 0; } =20 + static int networkStartNetwork(virNetworkDriverStatePtr driver, virNetworkObjPtr network) @@ -2771,6 +2840,7 @@ networkStartNetwork(virNetworkDriverStatePtr driver, return ret; } =20 + static int networkShutdownNetwork(virNetworkDriverStatePtr driver, virNetworkObjPtr network) @@ -2829,8 +2899,9 @@ networkShutdownNetwork(virNetworkDriverStatePtr drive= r, } =20 =20 -static virNetworkPtr networkLookupByUUID(virConnectPtr conn, - const unsigned char *uuid) +static virNetworkPtr +networkLookupByUUID(virConnectPtr conn, + const unsigned char *uuid) { virNetworkDriverStatePtr driver =3D networkGetDriver(); virNetworkObjPtr network; @@ -2856,8 +2927,10 @@ static virNetworkPtr networkLookupByUUID(virConnectP= tr conn, return ret; } =20 -static virNetworkPtr networkLookupByName(virConnectPtr conn, - const char *name) + +static virNetworkPtr +networkLookupByName(virConnectPtr conn, + const char *name) { virNetworkDriverStatePtr driver =3D networkGetDriver(); virNetworkObjPtr network; @@ -2880,7 +2953,9 @@ static virNetworkPtr networkLookupByName(virConnectPt= r conn, return ret; } =20 -static int networkConnectNumOfNetworks(virConnectPtr conn) + +static int +networkConnectNumOfNetworks(virConnectPtr conn) { virNetworkDriverStatePtr driver =3D networkGetDriver(); int nactive; @@ -2896,9 +2971,11 @@ static int networkConnectNumOfNetworks(virConnectPtr= conn) return nactive; } =20 -static int networkConnectListNetworks(virConnectPtr conn, - char **const names, - int nnames) + +static int +networkConnectListNetworks(virConnectPtr conn, + char **const names, + int nnames) { virNetworkDriverStatePtr driver =3D networkGetDriver(); int got =3D 0; @@ -2914,7 +2991,9 @@ static int networkConnectListNetworks(virConnectPtr c= onn, return got; } =20 -static int networkConnectNumOfDefinedNetworks(virConnectPtr conn) + +static int +networkConnectNumOfDefinedNetworks(virConnectPtr conn) { virNetworkDriverStatePtr driver =3D networkGetDriver(); int ninactive =3D 0; @@ -2930,7 +3009,11 @@ static int networkConnectNumOfDefinedNetworks(virCon= nectPtr conn) return ninactive; } =20 -static int networkConnectListDefinedNetworks(virConnectPtr conn, char **co= nst names, int nnames) + +static int +networkConnectListDefinedNetworks(virConnectPtr conn, + char **const names, + int nnames) { virNetworkDriverStatePtr driver =3D networkGetDriver(); int got =3D 0; @@ -2945,6 +3028,7 @@ static int networkConnectListDefinedNetworks(virConne= ctPtr conn, char **const na return got; } =20 + static int networkConnectListAllNetworks(virConnectPtr conn, virNetworkPtr **nets, @@ -2966,6 +3050,7 @@ networkConnectListAllNetworks(virConnectPtr conn, return ret; } =20 + static int networkConnectNetworkEventRegisterAny(virConnectPtr conn, virNetworkPtr net, @@ -2989,6 +3074,7 @@ networkConnectNetworkEventRegisterAny(virConnectPtr c= onn, return ret; } =20 + static int networkConnectNetworkEventDeregisterAny(virConnectPtr conn, int callbackID) @@ -3010,7 +3096,9 @@ networkConnectNetworkEventDeregisterAny(virConnectPtr= conn, return ret; } =20 -static int networkIsActive(virNetworkPtr net) + +static int +networkIsActive(virNetworkPtr net) { virNetworkObjPtr obj; int ret =3D -1; @@ -3028,7 +3116,9 @@ static int networkIsActive(virNetworkPtr net) return ret; } =20 -static int networkIsPersistent(virNetworkPtr net) + +static int +networkIsPersistent(virNetworkPtr net) { virNetworkObjPtr obj; int ret =3D -1; @@ -3097,7 +3187,6 @@ networkFindUnusedBridgeName(virNetworkObjListPtr nets, } =20 =20 - /* * networkValidateBridgeName() - if no bridge name is set, or if the * bridge name contains a %d (indicating that this is a template for @@ -3408,7 +3497,10 @@ networkValidate(virNetworkDriverStatePtr driver, return 0; } =20 -static virNetworkPtr networkCreateXML(virConnectPtr conn, const char *xml) + +static virNetworkPtr +networkCreateXML(virConnectPtr conn, + const char *xml) { virNetworkDriverStatePtr driver =3D networkGetDriver(); virNetworkDefPtr def; @@ -3456,7 +3548,10 @@ static virNetworkPtr networkCreateXML(virConnectPtr = conn, const char *xml) return ret; } =20 -static virNetworkPtr networkDefineXML(virConnectPtr conn, const char *xml) + +static virNetworkPtr +networkDefineXML(virConnectPtr conn, + const char *xml) { virNetworkDriverStatePtr driver =3D networkGetDriver(); virNetworkDefPtr def =3D NULL; @@ -3509,6 +3604,7 @@ static virNetworkPtr networkDefineXML(virConnectPtr c= onn, const char *xml) return ret; } =20 + static int networkUndefine(virNetworkPtr net) { @@ -3565,6 +3661,7 @@ networkUndefine(virNetworkPtr net) return ret; } =20 + static int networkUpdate(virNetworkPtr net, unsigned int command, @@ -3739,7 +3836,9 @@ networkUpdate(virNetworkPtr net, return ret; } =20 -static int networkCreate(virNetworkPtr net) + +static int +networkCreate(virNetworkPtr net) { virNetworkDriverStatePtr driver =3D networkGetDriver(); virNetworkObjPtr network; @@ -3767,7 +3866,9 @@ static int networkCreate(virNetworkPtr net) return ret; } =20 -static int networkDestroy(virNetworkPtr net) + +static int +networkDestroy(virNetworkPtr net) { virNetworkDriverStatePtr driver =3D networkGetDriver(); virNetworkObjPtr network; @@ -3808,8 +3909,10 @@ static int networkDestroy(virNetworkPtr net) return ret; } =20 -static char *networkGetXMLDesc(virNetworkPtr net, - unsigned int flags) + +static char * +networkGetXMLDesc(virNetworkPtr net, + unsigned int flags) { virNetworkObjPtr network; virNetworkDefPtr def; @@ -3835,7 +3938,10 @@ static char *networkGetXMLDesc(virNetworkPtr net, return ret; } =20 -static char *networkGetBridgeName(virNetworkPtr net) { + +static char * +networkGetBridgeName(virNetworkPtr net) +{ virNetworkObjPtr network; char *bridge =3D NULL; =20 @@ -3859,8 +3965,10 @@ static char *networkGetBridgeName(virNetworkPtr net)= { return bridge; } =20 -static int networkGetAutostart(virNetworkPtr net, - int *autostart) + +static int +networkGetAutostart(virNetworkPtr net, + int *autostart) { virNetworkObjPtr network; int ret =3D -1; @@ -3879,8 +3987,10 @@ static int networkGetAutostart(virNetworkPtr net, return ret; } =20 -static int networkSetAutostart(virNetworkPtr net, - int autostart) + +static int +networkSetAutostart(virNetworkPtr net, + int autostart) { virNetworkDriverStatePtr driver =3D networkGetDriver(); virNetworkObjPtr network; @@ -3942,6 +4052,7 @@ static int networkSetAutostart(virNetworkPtr net, return ret; } =20 + static int networkGetDHCPLeases(virNetworkPtr network, const char *mac, @@ -4165,7 +4276,8 @@ static virStateDriver networkStateDriver =3D { .stateReload =3D networkStateReload, }; =20 -int networkRegister(void) +int +networkRegister(void) { if (virSetSharedNetworkDriver(&networkDriver) < 0) return -1; @@ -4174,6 +4286,7 @@ int networkRegister(void) return 0; } =20 + /********************************************************/ =20 /* A unified function to log network connections and disconnections */ @@ -4211,6 +4324,7 @@ networkLogAllocation(virNetworkDefPtr netdef, } } =20 + /* Private API to deal with logical switch capabilities. * These functions are exported so that other parts of libvirt can * call them, but are not part of the public API and not in the @@ -4639,6 +4753,7 @@ networkAllocateActualDevice(virDomainDefPtr dom, goto cleanup; } =20 + /* networkNotifyActualDevice: * @dom: domain definition that @iface belongs to * @iface: the domain's NetDef with an "actual" device already filled in. @@ -4857,7 +4972,6 @@ networkNotifyActualDevice(virDomainDefPtr dom, } =20 =20 - /* networkReleaseActualDevice: * @dom: domain definition that @iface belongs to * @iface: a domain's NetDef (interface definition) @@ -5001,6 +5115,7 @@ networkReleaseActualDevice(virDomainDefPtr dom, goto cleanup; } =20 + /* * networkGetNetworkAddress: * @netname: the name of a network @@ -5021,7 +5136,8 @@ networkReleaseActualDevice(virDomainDefPtr dom, * completely unsupported. */ int -networkGetNetworkAddress(const char *netname, char **netaddr) +networkGetNetworkAddress(const char *netname, + char **netaddr) { virNetworkDriverStatePtr driver =3D networkGetDriver(); int ret =3D -1; @@ -5098,6 +5214,7 @@ networkGetNetworkAddress(const char *netname, char **= netaddr) return ret; } =20 + /* networkGetActualType: * @dom: domain definition that @iface belongs to * @iface: the original NetDef from the domain @@ -5260,6 +5377,7 @@ networkCheckBandwidth(virNetworkObjPtr net, return ret; } =20 + /** * networkNextClassID: * @net: network object @@ -5374,6 +5492,7 @@ networkPlugBandwidth(virNetworkObjPtr net, return ret; } =20 + static int networkUnplugBandwidth(virNetworkObjPtr net, virDomainNetDefPtr iface) @@ -5426,6 +5545,7 @@ networkUnplugBandwidth(virNetworkObjPtr net, return ret; } =20 + static void networkNetworkObjTaint(virNetworkObjPtr net, virNetworkTaintFlags taint) --=20 2.9.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri May 3 20:47:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1495199171838296.6161667767809; Fri, 19 May 2017 06:06:11 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 422DCC04B955; Fri, 19 May 2017 13:06:07 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1652418A43; Fri, 19 May 2017 13:06:07 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id BC3674A490; Fri, 19 May 2017 13:06:06 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v4JD3aYq003777 for ; Fri, 19 May 2017 09:03:36 -0400 Received: by smtp.corp.redhat.com (Postfix) id BDC5C18C60; Fri, 19 May 2017 13:03:36 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-116-18.phx2.redhat.com [10.3.116.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id 209EB18C5D for ; Fri, 19 May 2017 13:03:34 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 422DCC04B955 Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 422DCC04B955 From: John Ferlan To: libvir-list@redhat.com Date: Fri, 19 May 2017 09:03:12 -0400 Message-Id: <20170519130324.4624-5-jferlan@redhat.com> In-Reply-To: <20170519130324.4624-1-jferlan@redhat.com> References: <20170519130324.4624-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 04/16] network: Use consistent naming in bridge_driver for virNetwork objects X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Fri, 19 May 2017 13:06:09 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Use @obj for a virNetworkObjPtr Use @net for a virNetworkPtr Clean up the bridge_driver.h Signed-off-by: John Ferlan --- src/network/bridge_driver.c | 966 ++++++++++++++++++++++------------------= ---- src/network/bridge_driver.h | 50 ++- 2 files changed, 511 insertions(+), 505 deletions(-) diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index e502bfe..d888391 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -148,25 +148,25 @@ networkStateCleanup(void); =20 static int networkStartNetwork(virNetworkDriverStatePtr driver, - virNetworkObjPtr network); + virNetworkObjPtr obj); =20 static int networkShutdownNetwork(virNetworkDriverStatePtr driver, - virNetworkObjPtr network); + virNetworkObjPtr obj); =20 static int networkStartNetworkVirtual(virNetworkDriverStatePtr driver, - virNetworkObjPtr network); + virNetworkObjPtr obj); =20 static int networkShutdownNetworkVirtual(virNetworkDriverStatePtr driver, - virNetworkObjPtr network); + virNetworkObjPtr obj); =20 static int -networkStartNetworkExternal(virNetworkObjPtr network); +networkStartNetworkExternal(virNetworkObjPtr obj); =20 static int -networkShutdownNetworkExternal(virNetworkObjPtr network); +networkShutdownNetworkExternal(virNetworkObjPtr obj); =20 static void networkReloadFirewallRules(virNetworkDriverStatePtr driver); @@ -175,15 +175,15 @@ static void networkRefreshDaemons(virNetworkDriverStatePtr driver); =20 static int -networkPlugBandwidth(virNetworkObjPtr net, +networkPlugBandwidth(virNetworkObjPtr obj, virDomainNetDefPtr iface); =20 static int -networkUnplugBandwidth(virNetworkObjPtr net, +networkUnplugBandwidth(virNetworkObjPtr obj, virDomainNetDefPtr iface); =20 static void -networkNetworkObjTaint(virNetworkObjPtr net, +networkNetworkObjTaint(virNetworkObjPtr obj, virNetworkTaintFlags taint); =20 =20 @@ -191,23 +191,23 @@ static virNetworkObjPtr networkObjFromNetwork(virNetworkPtr net) { virNetworkDriverStatePtr driver =3D networkGetDriver(); - virNetworkObjPtr network; + virNetworkObjPtr obj; char uuidstr[VIR_UUID_STRING_BUFLEN]; =20 - network =3D virNetworkObjFindByUUID(driver->networks, net->uuid); - if (!network) { + obj =3D virNetworkObjFindByUUID(driver->networks, net->uuid); + if (!obj) { virUUIDFormat(net->uuid, uuidstr); virReportError(VIR_ERR_NO_NETWORK, _("no network with matching uuid '%s' (%s)"), uuidstr, net->name); } =20 - return network; + return obj; } =20 =20 static int -networkRunHook(virNetworkObjPtr network, +networkRunHook(virNetworkObjPtr obj, virDomainDefPtr dom, virDomainNetDefPtr iface, int op, @@ -219,8 +219,8 @@ networkRunHook(virNetworkObjPtr network, int ret =3D -1; =20 if (virHookPresent(VIR_HOOK_DRIVER_NETWORK)) { - if (!network) { - VIR_DEBUG("Not running hook as @network is NULL"); + if (!obj) { + VIR_DEBUG("Not running hook as @obj is NULL"); ret =3D 0; goto cleanup; } @@ -229,7 +229,7 @@ networkRunHook(virNetworkObjPtr network, virBufferAdjustIndent(&buf, 2); if (iface && virDomainNetDefFormat(&buf, iface, NULL, 0) < 0) goto cleanup; - if (virNetworkDefFormatBuf(&buf, network->def, 0) < 0) + if (virNetworkDefFormatBuf(&buf, obj->def, 0) < 0) goto cleanup; if (dom && virDomainDefFormatInternal(dom, NULL, 0, &buf) < 0) goto cleanup; @@ -241,7 +241,7 @@ networkRunHook(virNetworkObjPtr network, goto cleanup; =20 xml =3D virBufferContentAndReset(&buf); - hookret =3D virHookCall(VIR_HOOK_DRIVER_NETWORK, network->def->nam= e, + hookret =3D virHookCall(VIR_HOOK_DRIVER_NETWORK, obj->def->name, op, sub_op, NULL, xml, NULL); =20 /* @@ -250,7 +250,7 @@ networkRunHook(virNetworkObjPtr network, if (hookret < 0) goto cleanup; =20 - networkNetworkObjTaint(network, VIR_NETWORK_TAINT_HOOK); + networkNetworkObjTaint(obj, VIR_NETWORK_TAINT_HOOK); } =20 ret =3D 0; @@ -337,7 +337,7 @@ networkMacMgrFileName(virNetworkDriverStatePtr driver, /* do needed cleanup steps and remove the network from the list */ static int networkRemoveInactive(virNetworkDriverStatePtr driver, - virNetworkObjPtr net) + virNetworkObjPtr obj) { char *leasefile =3D NULL; char *customleasefile =3D NULL; @@ -347,7 +347,7 @@ networkRemoveInactive(virNetworkDriverStatePtr driver, char *statusfile =3D NULL; char *macMapFile =3D NULL; dnsmasqContext *dctx =3D NULL; - virNetworkDefPtr def =3D virNetworkObjGetPersistentDef(net); + virNetworkDefPtr def =3D virNetworkObjGetPersistentDef(obj); =20 int ret =3D -1; =20 @@ -395,7 +395,7 @@ networkRemoveInactive(virNetworkDriverStatePtr driver, unlink(statusfile); =20 /* remove the network definition */ - virNetworkObjRemoveInactive(driver->networks, net); + virNetworkObjRemoveInactive(driver->networks, obj); =20 ret =3D 0; =20 @@ -414,7 +414,7 @@ networkRemoveInactive(virNetworkDriverStatePtr driver, =20 static int networkMacMgrAdd(virNetworkDriverStatePtr driver, - virNetworkObjPtr network, + virNetworkObjPtr obj, const char *domain, const virMacAddr *mac) { @@ -422,18 +422,18 @@ networkMacMgrAdd(virNetworkDriverStatePtr driver, char *file =3D NULL; int ret =3D -1; =20 - if (!network->macmap) + if (!obj->macmap) return 0; =20 virMacAddrFormat(mac, macStr); =20 - if (!(file =3D networkMacMgrFileName(driver, network->def->bridge))) + if (!(file =3D networkMacMgrFileName(driver, obj->def->bridge))) goto cleanup; =20 - if (virMacMapAdd(network->macmap, domain, macStr) < 0) + if (virMacMapAdd(obj->macmap, domain, macStr) < 0) goto cleanup; =20 - if (virMacMapWriteFile(network->macmap, file) < 0) + if (virMacMapWriteFile(obj->macmap, file) < 0) goto cleanup; =20 ret =3D 0; @@ -445,7 +445,7 @@ networkMacMgrAdd(virNetworkDriverStatePtr driver, =20 static int networkMacMgrDel(virNetworkDriverStatePtr driver, - virNetworkObjPtr network, + virNetworkObjPtr obj, const char *domain, const virMacAddr *mac) { @@ -453,18 +453,18 @@ networkMacMgrDel(virNetworkDriverStatePtr driver, char *file =3D NULL; int ret =3D -1; =20 - if (!network->macmap) + if (!obj->macmap) return 0; =20 virMacAddrFormat(mac, macStr); =20 - if (!(file =3D networkMacMgrFileName(driver, network->def->bridge))) + if (!(file =3D networkMacMgrFileName(driver, obj->def->bridge))) goto cleanup; =20 - if (virMacMapRemove(network->macmap, domain, macStr) < 0) + if (virMacMapRemove(obj->macmap, domain, macStr) < 0) goto cleanup; =20 - if (virMacMapWriteFile(network->macmap, file) < 0) + if (virMacMapWriteFile(obj->macmap, file) < 0) goto cleanup; =20 ret =3D 0; @@ -581,21 +581,21 @@ networkUpdateState(virNetworkObjPtr obj, =20 =20 static int -networkAutostartConfig(virNetworkObjPtr net, +networkAutostartConfig(virNetworkObjPtr obj, void *opaque) { virNetworkDriverStatePtr driver =3D opaque; int ret =3D -1; =20 - virObjectLock(net); - if (net->autostart && - !virNetworkObjIsActive(net) && - networkStartNetwork(driver, net) < 0) + virObjectLock(obj); + if (obj->autostart && + !virNetworkObjIsActive(obj) && + networkStartNetwork(driver, obj) < 0) goto cleanup; =20 ret =3D 0; cleanup: - virObjectUnlock(net); + virObjectUnlock(obj); return ret; } =20 @@ -1076,7 +1076,7 @@ networkDnsmasqConfLocalPTRs(virBufferPtr buf, =20 =20 int -networkDnsmasqConfContents(virNetworkObjPtr network, +networkDnsmasqConfContents(virNetworkObjPtr obj, const char *pidfile, char **configstr, dnsmasqContext *dctx, @@ -1086,7 +1086,7 @@ networkDnsmasqConfContents(virNetworkObjPtr network, int r, ret =3D -1; int nbleases =3D 0; size_t i; - virNetworkDNSDefPtr dns =3D &network->def->dns; + virNetworkDNSDefPtr dns =3D &obj->def->dns; bool wantDNS =3D dns->enable !=3D VIR_TRISTATE_BOOL_NO; virNetworkIPDefPtr tmpipdef, ipdef, ipv4def, ipv6def; bool ipv6SLAAC; @@ -1120,7 +1120,7 @@ networkDnsmasqConfContents(virNetworkObjPtr network, "## or other application using the libvirt API.\n" "##\n## dnsmasq conf file created by libvirt\n" "strict-order\n", - network->def->name); + obj->def->name); =20 /* if dns is disabled, set its listening port to 0, which * tells dnsmasq to not listen @@ -1128,7 +1128,7 @@ networkDnsmasqConfContents(virNetworkObjPtr network, if (!wantDNS) virBufferAddLit(&configbuf, "port=3D0\n"); =20 - if (wantDNS && network->def->dns.forwarders) { + if (wantDNS && obj->def->dns.forwarders) { /* addNoResolv should be set to true if there are any entries * that specify an IP address for requests, but no domain * qualifier (implying that all requests otherwise "unclaimed" @@ -1138,8 +1138,8 @@ networkDnsmasqConfContents(virNetworkObjPtr network, */ bool addNoResolv =3D false; =20 - for (i =3D 0; i < network->def->dns.nfwds; i++) { - virNetworkDNSForwarderPtr fwd =3D &network->def->dns.forwarder= s[i]; + for (i =3D 0; i < obj->def->dns.nfwds; i++) { + virNetworkDNSForwarderPtr fwd =3D &obj->def->dns.forwarders[i]; =20 virBufferAddLit(&configbuf, "server=3D"); if (fwd->domain) @@ -1162,23 +1162,23 @@ networkDnsmasqConfContents(virNetworkObjPtr network, virBufferAddLit(&configbuf, "no-resolv\n"); } =20 - if (network->def->domain) { - if (network->def->domainLocalOnly =3D=3D VIR_TRISTATE_BOOL_YES) { + if (obj->def->domain) { + if (obj->def->domainLocalOnly =3D=3D VIR_TRISTATE_BOOL_YES) { virBufferAsprintf(&configbuf, "local=3D/%s/\n", - network->def->domain); + obj->def->domain); } virBufferAsprintf(&configbuf, "domain=3D%s\n" "expand-hosts\n", - network->def->domain); + obj->def->domain); } =20 if (wantDNS && - networkDnsmasqConfLocalPTRs(&configbuf, network->def) < 0) + networkDnsmasqConfLocalPTRs(&configbuf, obj->def) < 0) goto cleanup; =20 - if (wantDNS && network->def->dns.forwardPlainNames =3D=3D VIR_TRISTATE= _BOOL_NO) { + if (wantDNS && obj->def->dns.forwardPlainNames =3D=3D VIR_TRISTATE_BOO= L_NO) { virBufferAddLit(&configbuf, "domain-needed\n"); /* need to specify local=3D// whether or not a domain is * specified, unless the config says we should forward "plain" @@ -1209,19 +1209,19 @@ networkDnsmasqConfContents(virNetworkObjPtr network, virBufferAsprintf(&configbuf, "bind-dynamic\n" "interface=3D%s\n", - network->def->bridge); + obj->def->bridge); } else { virBufferAddLit(&configbuf, "bind-interfaces\n"); /* * --interface does not actually work with dnsmasq < 2.47, * due to DAD for ipv6 addresses on the interface. * - * virCommandAddArgList(cmd, "--interface", network->def->bridge, = NULL); + * virCommandAddArgList(cmd, "--interface", obj->def->bridge, NULL= ); * * So listen on all defined IPv[46] addresses */ for (i =3D 0; - (tmpipdef =3D virNetworkDefGetIPByIndex(network->def, AF_UNSP= EC, i)); + (tmpipdef =3D virNetworkDefGetIPByIndex(obj->def, AF_UNSPEC, = i)); i++) { char *ipaddr =3D virSocketAddrFormat(&tmpipdef->address); =20 @@ -1267,7 +1267,7 @@ networkDnsmasqConfContents(virNetworkObjPtr network, * via the sender's link-local address. The only thing we can do * is set the lifetime of this route to 0, i.e. disable it. */ - if (network->def->forward.type =3D=3D VIR_NETWORK_FORWARD_NONE) { + if (obj->def->forward.type =3D=3D VIR_NETWORK_FORWARD_NONE) { virBufferAddLit(&configbuf, "dhcp-option=3D3\n" "no-resolv\n"); if (dnsmasqCapsGet(caps, DNSMASQ_CAPS_RA_PARAM)) { @@ -1291,14 +1291,14 @@ networkDnsmasqConfContents(virNetworkObjPtr network, virReportError(VIR_ERR_INTERNAL_ERROR, _("Missing required 'service' " "attribute in SRV record of network '%s'"= ), - network->def->name); + obj->def->name); goto cleanup; } if (!dns->srvs[i].protocol) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Missing required 'service' " "attribute in SRV record of network '%s'"= ), - network->def->name); + obj->def->name); goto cleanup; } /* RFC2782 requires that service and protocol be preceded by @@ -1340,7 +1340,7 @@ networkDnsmasqConfContents(virNetworkObjPtr network, =20 /* Find the first dhcp for both IPv4 and IPv6 */ for (i =3D 0, ipv4def =3D NULL, ipv6def =3D NULL, ipv6SLAAC =3D false; - (ipdef =3D virNetworkDefGetIPByIndex(network->def, AF_UNSPEC, i)); + (ipdef =3D virNetworkDefGetIPByIndex(obj->def, AF_UNSPEC, i)); i++) { if (VIR_SOCKET_ADDR_IS_FAMILY(&ipdef->address, AF_INET)) { if (ipdef->nranges || ipdef->nhosts) { @@ -1402,7 +1402,7 @@ networkDnsmasqConfContents(virNetworkObjPtr network, if (prefix < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("bridge '%s' has an invalid prefix"), - network->def->bridge); + obj->def->bridge); goto cleanup; } for (r =3D 0; r < ipdef->nranges; r++) { @@ -1508,7 +1508,7 @@ networkDnsmasqConfContents(virNetworkObjPtr network, virBufferAddLit(&configbuf, "enable-ra\n"); } else { for (i =3D 0; - (ipdef =3D virNetworkDefGetIPByIndex(network->def, AF_INE= T6, i)); + (ipdef =3D virNetworkDefGetIPByIndex(obj->def, AF_INET6, = i)); i++) { if (!(ipdef->nranges || ipdef->nhosts)) { char *bridgeaddr =3D virSocketAddrFormat(&ipdef->addre= ss); @@ -1538,7 +1538,7 @@ networkDnsmasqConfContents(virNetworkObjPtr network, /* build the dnsmasq command line */ static int ATTRIBUTE_NONNULL(3) networkBuildDhcpDaemonCommandLine(virNetworkDriverStatePtr driver, - virNetworkObjPtr network, + virNetworkObjPtr obj, virCommandPtr *cmdout, char *pidfile, dnsmasqContext *dctx) @@ -1550,16 +1550,16 @@ networkBuildDhcpDaemonCommandLine(virNetworkDriverS= tatePtr driver, char *configstr =3D NULL; char *leaseshelper_path =3D NULL; =20 - network->dnsmasqPid =3D -1; + obj->dnsmasqPid =3D -1; =20 - if (networkDnsmasqConfContents(network, pidfile, &configstr, + if (networkDnsmasqConfContents(obj, pidfile, &configstr, dctx, dnsmasq_caps) < 0) goto cleanup; if (!configstr) goto cleanup; =20 /* construct the filename */ - if (!(configfile =3D networkDnsmasqConfigFileName(driver, network->def= ->name))) + if (!(configfile =3D networkDnsmasqConfigFileName(driver, obj->def->na= me))) goto cleanup; =20 /* Write the file */ @@ -1581,7 +1581,7 @@ networkBuildDhcpDaemonCommandLine(virNetworkDriverSta= tePtr driver, /* Libvirt gains full control of leases database */ virCommandAddArgFormat(cmd, "--leasefile-ro"); virCommandAddArgFormat(cmd, "--dhcp-script=3D%s", leaseshelper_path); - virCommandAddEnvPair(cmd, "VIR_BRIDGE_NAME", network->def->bridge); + virCommandAddEnvPair(cmd, "VIR_BRIDGE_NAME", obj->def->bridge); =20 *cmdout =3D cmd; ret =3D 0; @@ -1596,7 +1596,7 @@ networkBuildDhcpDaemonCommandLine(virNetworkDriverSta= tePtr driver, =20 static int networkStartDhcpDaemon(virNetworkDriverStatePtr driver, - virNetworkObjPtr network) + virNetworkObjPtr obj) { virNetworkIPDefPtr ipdef; size_t i; @@ -1608,7 +1608,7 @@ networkStartDhcpDaemon(virNetworkDriverStatePtr drive= r, =20 /* see if there are any IP addresses that need a dhcp server */ i =3D 0; - while ((ipdef =3D virNetworkDefGetIPByIndex(network->def, AF_UNSPEC, i= ))) { + while ((ipdef =3D virNetworkDefGetIPByIndex(obj->def, AF_UNSPEC, i))) { i++; if (ipdef->nranges || ipdef->nhosts) needDnsmasq =3D true; @@ -1620,7 +1620,7 @@ networkStartDhcpDaemon(virNetworkDriverStatePtr drive= r, goto cleanup; } =20 - if (!needDnsmasq && network->def->dns.enable =3D=3D VIR_TRISTATE_BOOL_= NO) { + if (!needDnsmasq && obj->def->dns.enable =3D=3D VIR_TRISTATE_BOOL_NO) { /* no DHCP services needed, and user disabled DNS service */ ret =3D 0; goto cleanup; @@ -1634,7 +1634,7 @@ networkStartDhcpDaemon(virNetworkDriverStatePtr drive= r, } =20 if (!(pidfile =3D virPidFileBuildPath(driver->pidDir, - network->def->name))) + obj->def->name))) goto cleanup; =20 if (virFileMakePath(driver->dnsmasqStateDir) < 0) { @@ -1644,14 +1644,14 @@ networkStartDhcpDaemon(virNetworkDriverStatePtr dri= ver, goto cleanup; } =20 - dctx =3D dnsmasqContextNew(network->def->name, driver->dnsmasqStateDir= ); + dctx =3D dnsmasqContextNew(obj->def->name, driver->dnsmasqStateDir); if (dctx =3D=3D NULL) goto cleanup; =20 if (networkDnsmasqCapsRefresh(driver) < 0) goto cleanup; =20 - ret =3D networkBuildDhcpDaemonCommandLine(driver, network, &cmd, pidfi= le, dctx); + ret =3D networkBuildDhcpDaemonCommandLine(driver, obj, &cmd, pidfile, = dctx); if (ret < 0) goto cleanup; =20 @@ -1671,8 +1671,7 @@ networkStartDhcpDaemon(virNetworkDriverStatePtr drive= r, * pid */ =20 - ret =3D virPidFileRead(driver->pidDir, network->def->name, - &network->dnsmasqPid); + ret =3D virPidFileRead(driver->pidDir, obj->def->name, &obj->dnsmasqPi= d); if (ret < 0) goto cleanup; =20 @@ -1694,7 +1693,7 @@ networkStartDhcpDaemon(virNetworkDriverStatePtr drive= r, */ static int networkRefreshDhcpDaemon(virNetworkDriverStatePtr driver, - virNetworkObjPtr network) + virNetworkObjPtr obj) { int ret =3D -1; size_t i; @@ -1702,15 +1701,15 @@ networkRefreshDhcpDaemon(virNetworkDriverStatePtr d= river, dnsmasqContext *dctx =3D NULL; =20 /* if no IP addresses specified, nothing to do */ - if (!virNetworkDefGetIPByIndex(network->def, AF_UNSPEC, 0)) + if (!virNetworkDefGetIPByIndex(obj->def, AF_UNSPEC, 0)) return 0; =20 /* if there's no running dnsmasq, just start it */ - if (network->dnsmasqPid <=3D 0 || (kill(network->dnsmasqPid, 0) < 0)) - return networkStartDhcpDaemon(driver, network); + if (obj->dnsmasqPid <=3D 0 || (kill(obj->dnsmasqPid, 0) < 0)) + return networkStartDhcpDaemon(driver, obj); =20 - VIR_INFO("Refreshing dnsmasq for network %s", network->def->bridge); - if (!(dctx =3D dnsmasqContextNew(network->def->name, + VIR_INFO("Refreshing dnsmasq for network %s", obj->def->bridge); + if (!(dctx =3D dnsmasqContextNew(obj->def->name, driver->dnsmasqStateDir))) { goto cleanup; } @@ -1721,7 +1720,7 @@ networkRefreshDhcpDaemon(virNetworkDriverStatePtr dri= ver, */ ipv4def =3D NULL; for (i =3D 0; - (ipdef =3D virNetworkDefGetIPByIndex(network->def, AF_INET, i)); + (ipdef =3D virNetworkDefGetIPByIndex(obj->def, AF_INET, i)); i++) { if (!ipv4def && (ipdef->nranges || ipdef->nhosts)) ipv4def =3D ipdef; @@ -1729,7 +1728,7 @@ networkRefreshDhcpDaemon(virNetworkDriverStatePtr dri= ver, =20 ipv6def =3D NULL; for (i =3D 0; - (ipdef =3D virNetworkDefGetIPByIndex(network->def, AF_INET6, i)); + (ipdef =3D virNetworkDefGetIPByIndex(obj->def, AF_INET6, i)); i++) { if (!ipv6def && (ipdef->nranges || ipdef->nhosts)) ipv6def =3D ipdef; @@ -1741,13 +1740,13 @@ networkRefreshDhcpDaemon(virNetworkDriverStatePtr d= river, if (ipv6def && (networkBuildDnsmasqDhcpHostsList(dctx, ipv6def) < 0)) goto cleanup; =20 - if (networkBuildDnsmasqHostsList(dctx, &network->def->dns) < 0) + if (networkBuildDnsmasqHostsList(dctx, &obj->def->dns) < 0) goto cleanup; =20 if ((ret =3D dnsmasqSave(dctx)) < 0) goto cleanup; =20 - ret =3D kill(network->dnsmasqPid, SIGHUP); + ret =3D kill(obj->dnsmasqPid, SIGHUP); cleanup: dnsmasqContextFree(dctx); return ret; @@ -1763,16 +1762,15 @@ networkRefreshDhcpDaemon(virNetworkDriverStatePtr d= river, */ static int networkRestartDhcpDaemon(virNetworkDriverStatePtr driver, - virNetworkObjPtr network) + virNetworkObjPtr obj) { /* if there is a running dnsmasq, kill it */ - if (network->dnsmasqPid > 0) { - networkKillDaemon(network->dnsmasqPid, "dnsmasq", - network->def->name); - network->dnsmasqPid =3D -1; + if (obj->dnsmasqPid > 0) { + networkKillDaemon(obj->dnsmasqPid, "dnsmasq", obj->def->name); + obj->dnsmasqPid =3D -1; } /* now start dnsmasq if it should be started */ - return networkStartDhcpDaemon(driver, network); + return networkStartDhcpDaemon(driver, obj); } =20 =20 @@ -1783,7 +1781,7 @@ static char radvd3[] =3D " AdvOnLink on;\n" " AdvRouterAddr off;\n"; =20 static int -networkRadvdConfContents(virNetworkObjPtr network, +networkRadvdConfContents(virNetworkObjPtr obj, char **configstr) { virBuffer configbuf =3D VIR_BUFFER_INITIALIZER; @@ -1796,7 +1794,7 @@ networkRadvdConfContents(virNetworkObjPtr network, =20 /* Check if DHCPv6 is needed */ for (i =3D 0; - (ipdef =3D virNetworkDefGetIPByIndex(network->def, AF_INET6, i)); + (ipdef =3D virNetworkDefGetIPByIndex(obj->def, AF_INET6, i)); i++) { v6present =3D true; if (ipdef->nranges || ipdef->nhosts) { @@ -1820,13 +1818,13 @@ networkRadvdConfContents(virNetworkObjPtr network, " IgnoreIfMissing on;\n" " AdvManagedFlag %s;\n" "%s", - network->def->bridge, + obj->def->bridge, dhcp6 ? "on" : "off", dhcp6 ? "\n" : radvd1); =20 /* add a section for each IPv6 address in the config */ for (i =3D 0; - (ipdef =3D virNetworkDefGetIPByIndex(network->def, AF_INET6, i)); + (ipdef =3D virNetworkDefGetIPByIndex(obj->def, AF_INET6, i)); i++) { int prefix; char *netaddr; @@ -1835,7 +1833,7 @@ networkRadvdConfContents(virNetworkObjPtr network, if (prefix < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("bridge '%s' has an invalid prefix"), - network->def->bridge); + obj->def->bridge); goto cleanup; } if (!(netaddr =3D virSocketAddrFormat(&ipdef->address))) @@ -1865,7 +1863,7 @@ networkRadvdConfContents(virNetworkObjPtr network, /* write file and return its name (which must be freed by caller) */ static int networkRadvdConfWrite(virNetworkDriverStatePtr driver, - virNetworkObjPtr network, + virNetworkObjPtr obj, char **configFile) { int ret =3D -1; @@ -1877,7 +1875,7 @@ networkRadvdConfWrite(virNetworkDriverStatePtr driver, =20 *configFile =3D NULL; =20 - if (networkRadvdConfContents(network, &configStr) < 0) + if (networkRadvdConfContents(obj, &configStr) < 0) goto cleanup; =20 if (!configStr) { @@ -1886,7 +1884,7 @@ networkRadvdConfWrite(virNetworkDriverStatePtr driver, } =20 /* construct the filename */ - if (!(*configFile =3D networkRadvdConfigFileName(driver, network->def-= >name))) + if (!(*configFile =3D networkRadvdConfigFileName(driver, obj->def->nam= e))) goto cleanup; /* write the file */ if (virFileWriteStr(*configFile, configStr, 0600) < 0) { @@ -1906,7 +1904,7 @@ networkRadvdConfWrite(virNetworkDriverStatePtr driver, =20 static int networkStartRadvd(virNetworkDriverStatePtr driver, - virNetworkObjPtr network) + virNetworkObjPtr obj) { dnsmasqCapsPtr dnsmasq_caps =3D networkGetDnsmasqCaps(driver); char *pidfile =3D NULL; @@ -1915,7 +1913,7 @@ networkStartRadvd(virNetworkDriverStatePtr driver, virCommandPtr cmd =3D NULL; int ret =3D -1; =20 - network->radvdPid =3D -1; + obj->radvdPid =3D -1; =20 /* Is dnsmasq handling RA? */ if (DNSMASQ_RA_SUPPORT(dnsmasq_caps)) { @@ -1923,7 +1921,7 @@ networkStartRadvd(virNetworkDriverStatePtr driver, goto cleanup; } =20 - if (!virNetworkDefGetIPByIndex(network->def, AF_INET6, 0)) { + if (!virNetworkDefGetIPByIndex(obj->def, AF_INET6, 0)) { /* no IPv6 addresses, so we don't need to run radvd */ ret =3D 0; goto cleanup; @@ -1951,12 +1949,12 @@ networkStartRadvd(virNetworkDriverStatePtr driver, } =20 /* construct pidfile name */ - if (!(radvdpidbase =3D networkRadvdPidfileBasename(network->def->name)= )) + if (!(radvdpidbase =3D networkRadvdPidfileBasename(obj->def->name))) goto cleanup; if (!(pidfile =3D virPidFileBuildPath(driver->pidDir, radvdpidbase))) goto cleanup; =20 - if (networkRadvdConfWrite(driver, network, &configfile) < 0) + if (networkRadvdConfWrite(driver, obj, &configfile) < 0) goto cleanup; =20 /* prevent radvd from daemonizing itself with "--debug 1", and use @@ -1979,7 +1977,7 @@ networkStartRadvd(virNetworkDriverStatePtr driver, if (virCommandRun(cmd, NULL) < 0) goto cleanup; =20 - if (virPidFileRead(driver->pidDir, radvdpidbase, &network->radvdPid) <= 0) + if (virPidFileRead(driver->pidDir, radvdpidbase, &obj->radvdPid) < 0) goto cleanup; =20 ret =3D 0; @@ -1995,7 +1993,7 @@ networkStartRadvd(virNetworkDriverStatePtr driver, =20 static int networkRefreshRadvd(virNetworkDriverStatePtr driver, - virNetworkObjPtr network) + virNetworkObjPtr obj) { dnsmasqCapsPtr dnsmasq_caps =3D networkGetDnsmasqCaps(driver); char *radvdpidbase; @@ -2003,87 +2001,86 @@ networkRefreshRadvd(virNetworkDriverStatePtr driver, /* Is dnsmasq handling RA? */ if (DNSMASQ_RA_SUPPORT(dnsmasq_caps)) { virObjectUnref(dnsmasq_caps); - if (network->radvdPid <=3D 0) + if (obj->radvdPid <=3D 0) return 0; /* radvd should not be running but in case it is */ - if ((networkKillDaemon(network->radvdPid, "radvd", - network->def->name) >=3D 0) && - ((radvdpidbase =3D networkRadvdPidfileBasename(network->def->n= ame)) + if ((networkKillDaemon(obj->radvdPid, "radvd", obj->def->name) >= =3D 0) && + ((radvdpidbase =3D networkRadvdPidfileBasename(obj->def->name)) !=3D NULL)) { virPidFileDelete(driver->pidDir, radvdpidbase); VIR_FREE(radvdpidbase); } - network->radvdPid =3D -1; + obj->radvdPid =3D -1; return 0; } virObjectUnref(dnsmasq_caps); =20 /* if there's no running radvd, just start it */ - if (network->radvdPid <=3D 0 || (kill(network->radvdPid, 0) < 0)) - return networkStartRadvd(driver, network); + if (obj->radvdPid <=3D 0 || (kill(obj->radvdPid, 0) < 0)) + return networkStartRadvd(driver, obj); =20 - if (!virNetworkDefGetIPByIndex(network->def, AF_INET6, 0)) { + if (!virNetworkDefGetIPByIndex(obj->def, AF_INET6, 0)) { /* no IPv6 addresses, so we don't need to run radvd */ return 0; } =20 - if (networkRadvdConfWrite(driver, network, NULL) < 0) + if (networkRadvdConfWrite(driver, obj, NULL) < 0) return -1; =20 - return kill(network->radvdPid, SIGHUP); + return kill(obj->radvdPid, SIGHUP); } =20 =20 #if 0 /* currently unused, so it causes a build error unless we #if it out */ static int -networkRestartRadvd(virNetworkObjPtr network) +networkRestartRadvd(virNetworkObjPtr obj) { char *radvdpidbase; =20 /* if there is a running radvd, kill it */ - if (network->radvdPid > 0) { + if (obj->radvdPid > 0) { /* essentially ignore errors from the following two functions, * since there's really no better recovery to be done than to * just push ahead (and that may be exactly what's needed). */ - if ((networkKillDaemon(network->radvdPid, "radvd", - network->def->name) >=3D 0) && - ((radvdpidbase =3D networkRadvdPidfileBasename(network->def->n= ame)) + if ((networkKillDaemon(obj->radvdPid, "radvd", + obj->def->name) >=3D 0) && + ((radvdpidbase =3D networkRadvdPidfileBasename(obj->def->name)) !=3D NULL)) { virPidFileDelete(driver->pidDir, radvdpidbase); VIR_FREE(radvdpidbase); } - network->radvdPid =3D -1; + obj->radvdPid =3D -1; } /* now start radvd if it should be started */ - return networkStartRadvd(network); + return networkStartRadvd(obj); } #endif /* #if 0 */ =20 =20 static int -networkRefreshDaemonsHelper(virNetworkObjPtr net, +networkRefreshDaemonsHelper(virNetworkObjPtr obj, void *opaque) { virNetworkDriverStatePtr driver =3D opaque; =20 - virObjectLock(net); - if (virNetworkObjIsActive(net) && - ((net->def->forward.type =3D=3D VIR_NETWORK_FORWARD_NONE) || - (net->def->forward.type =3D=3D VIR_NETWORK_FORWARD_NAT) || - (net->def->forward.type =3D=3D VIR_NETWORK_FORWARD_ROUTE) || - (net->def->forward.type =3D=3D VIR_NETWORK_FORWARD_OPEN))) { + virObjectLock(obj); + if (virNetworkObjIsActive(obj) && + ((obj->def->forward.type =3D=3D VIR_NETWORK_FORWARD_NONE) || + (obj->def->forward.type =3D=3D VIR_NETWORK_FORWARD_NAT) || + (obj->def->forward.type =3D=3D VIR_NETWORK_FORWARD_ROUTE) || + (obj->def->forward.type =3D=3D VIR_NETWORK_FORWARD_OPEN))) { /* Only the three L3 network types that are configured by * libvirt will have a dnsmasq or radvd daemon associated * with them. Here we send a SIGHUP to an existing * dnsmasq and/or radvd, or restart them if they've * disappeared. */ - networkRefreshDhcpDaemon(driver, net); - networkRefreshRadvd(driver, net); + networkRefreshDhcpDaemon(driver, obj); + networkRefreshRadvd(driver, obj); } - virObjectUnlock(net); + virObjectUnlock(obj); return 0; } =20 @@ -2102,26 +2099,26 @@ networkRefreshDaemons(virNetworkDriverStatePtr driv= er) =20 =20 static int -networkReloadFirewallRulesHelper(virNetworkObjPtr net, +networkReloadFirewallRulesHelper(virNetworkObjPtr obj, void *opaque ATTRIBUTE_UNUSED) { =20 - virObjectLock(net); - if (virNetworkObjIsActive(net) && - ((net->def->forward.type =3D=3D VIR_NETWORK_FORWARD_NONE) || - (net->def->forward.type =3D=3D VIR_NETWORK_FORWARD_NAT) || - (net->def->forward.type =3D=3D VIR_NETWORK_FORWARD_ROUTE))) { + virObjectLock(obj); + if (virNetworkObjIsActive(obj) && + ((obj->def->forward.type =3D=3D VIR_NETWORK_FORWARD_NONE) || + (obj->def->forward.type =3D=3D VIR_NETWORK_FORWARD_NAT) || + (obj->def->forward.type =3D=3D VIR_NETWORK_FORWARD_ROUTE))) { /* Only three of the L3 network types that are configured by * libvirt need to have iptables rules reloaded. The 4th L3 * network type, forward=3D'open', doesn't need this because it * has no iptables rules. */ - networkRemoveFirewallRules(net->def); - if (networkAddFirewallRules(net->def) < 0) { + networkRemoveFirewallRules(obj->def); + if (networkAddFirewallRules(obj->def) < 0) { /* failed to add but already logged */ } } - virObjectUnlock(net); + virObjectUnlock(obj); return 0; } =20 @@ -2162,24 +2159,24 @@ networkEnableIPForwarding(bool enableIPv4, =20 =20 static int -networkSetIPv6Sysctls(virNetworkObjPtr network) +networkSetIPv6Sysctls(virNetworkObjPtr obj) { char *field =3D NULL; int ret =3D -1; - bool enableIPv6 =3D !!virNetworkDefGetIPByIndex(network->def, AF_INET= 6, 0); + bool enableIPv6 =3D !!virNetworkDefGetIPByIndex(obj->def, AF_INET6, 0= ); =20 /* set disable_ipv6 if there are no ipv6 addresses defined for the * network. But also unset it if there *are* ipv6 addresses, as we * can't be sure of its default value. */ if (virAsprintf(&field, SYSCTL_PATH "/net/ipv6/conf/%s/disable_ipv6", - network->def->bridge) < 0) + obj->def->bridge) < 0) goto cleanup; =20 if (access(field, W_OK) < 0 && errno =3D=3D ENOENT) { if (!enableIPv6) VIR_DEBUG("ipv6 appears to already be disabled on %s", - network->def->bridge); + obj->def->bridge); ret =3D 0; goto cleanup; } @@ -2187,7 +2184,7 @@ networkSetIPv6Sysctls(virNetworkObjPtr network) if (virFileWriteStr(field, enableIPv6 ? "0" : "1", 0) < 0) { virReportSystemError(errno, _("cannot write to %s to enable/disable IPv6 " - "on bridge %s"), field, network->def->bridg= e); + "on bridge %s"), field, obj->def->bridge); goto cleanup; } VIR_FREE(field); @@ -2200,7 +2197,7 @@ networkSetIPv6Sysctls(virNetworkObjPtr network) * their own router advertisements. */ if (virAsprintf(&field, SYSCTL_PATH "/net/ipv6/conf/%s/accept_ra", - network->def->bridge) < 0) + obj->def->bridge) < 0) goto cleanup; =20 if (virFileWriteStr(field, "0", 0) < 0) { @@ -2214,7 +2211,7 @@ networkSetIPv6Sysctls(virNetworkObjPtr network) * definition), must always have autoconf=3D0. */ if (virAsprintf(&field, SYSCTL_PATH "/net/ipv6/conf/%s/autoconf", - network->def->bridge) < 0) + obj->def->bridge) < 0) goto cleanup; =20 if (virFileWriteStr(field, "0", 0) < 0) { @@ -2232,7 +2229,7 @@ networkSetIPv6Sysctls(virNetworkObjPtr network) =20 /* add an IP address to a bridge */ static int -networkAddAddrToBridge(virNetworkObjPtr network, +networkAddAddrToBridge(virNetworkObjPtr obj, virNetworkIPDefPtr ipdef) { int prefix =3D virNetworkIPDefPrefix(ipdef); @@ -2240,11 +2237,11 @@ networkAddAddrToBridge(virNetworkObjPtr network, if (prefix < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("bridge '%s' has an invalid netmask or IP address= "), - network->def->bridge); + obj->def->bridge); return -1; } =20 - if (virNetDevIPAddrAdd(network->def->bridge, + if (virNetDevIPAddrAdd(obj->def->bridge, &ipdef->address, NULL, prefix) < 0) return -1; =20 @@ -2253,13 +2250,13 @@ networkAddAddrToBridge(virNetworkObjPtr network, =20 =20 static int -networkStartHandleMACTableManagerMode(virNetworkObjPtr network, +networkStartHandleMACTableManagerMode(virNetworkObjPtr obj, const char *macTapIfName) { - const char *brname =3D network->def->bridge; + const char *brname =3D obj->def->bridge; =20 if (brname && - network->def->macTableManager + obj->def->macTableManager =3D=3D VIR_NETWORK_BRIDGE_MAC_TABLE_MANAGER_LIBVIRT) { if (virNetDevBridgeSetVlanFiltering(brname, true) < 0) return -1; @@ -2276,7 +2273,7 @@ networkStartHandleMACTableManagerMode(virNetworkObjPt= r network, =20 /* add an IP (static) route to a bridge */ static int -networkAddRouteToBridge(virNetworkObjPtr network, +networkAddRouteToBridge(virNetworkObjPtr obj, virNetDevIPRoutePtr routedef) { int prefix =3D virNetDevIPRouteGetPrefix(routedef); @@ -2288,11 +2285,11 @@ networkAddRouteToBridge(virNetworkObjPtr network, virReportError(VIR_ERR_INTERNAL_ERROR, _("network '%s' has an invalid netmask " "or IP address in route definition"), - network->def->name); + obj->def->name); return -1; } =20 - if (virNetDevIPRouteAdd(network->def->bridge, addr, + if (virNetDevIPRouteAdd(obj->def->bridge, addr, prefix, gateway, metric) < 0) { return -1; } @@ -2300,17 +2297,16 @@ networkAddRouteToBridge(virNetworkObjPtr network, } =20 static int -networkWaitDadFinish(virNetworkObjPtr network) +networkWaitDadFinish(virNetworkObjPtr obj) { virNetworkIPDefPtr ipdef; virSocketAddrPtr *addrs =3D NULL, addr =3D NULL; size_t naddrs =3D 0; int ret =3D -1; =20 - VIR_DEBUG("Begin waiting for IPv6 DAD on network %s", network->def->na= me); + VIR_DEBUG("Begin waiting for IPv6 DAD on network %s", obj->def->name); =20 - while ((ipdef =3D virNetworkDefGetIPByIndex(network->def, - AF_INET6, naddrs))) { + while ((ipdef =3D virNetworkDefGetIPByIndex(obj->def, AF_INET6, naddrs= ))) { addr =3D &ipdef->address; if (VIR_APPEND_ELEMENT_COPY(addrs, naddrs, addr) < 0) goto cleanup; @@ -2321,14 +2317,14 @@ networkWaitDadFinish(virNetworkObjPtr network) cleanup: VIR_FREE(addrs); VIR_DEBUG("Finished waiting for IPv6 DAD on network %s with status %d", - network->def->name, ret); + obj->def->name, ret); return ret; } =20 =20 static int networkStartNetworkVirtual(virNetworkDriverStatePtr driver, - virNetworkObjPtr network) + virNetworkObjPtr obj) { size_t i; bool v4present =3D false, v6present =3D false; @@ -2340,11 +2336,11 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr= driver, int tapfd =3D -1; =20 /* Check to see if any network IP collides with an existing route */ - if (networkCheckRouteCollision(network->def) < 0) + if (networkCheckRouteCollision(obj->def) < 0) return -1; =20 /* Create and configure the bridge device */ - if (!network->def->bridge) { + if (!obj->def->bridge) { /* bridge name can only be empty if the config files were * edited directly. Otherwise networkValidate() (called after * parsing the XML from networkCreateXML() and @@ -2355,27 +2351,27 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr= driver, */ virReportError(VIR_ERR_INTERNAL_ERROR, _("network '%s' has no bridge name defined"), - network->def->name); + obj->def->name); return -1; } - if (virNetDevBridgeCreate(network->def->bridge) < 0) + if (virNetDevBridgeCreate(obj->def->bridge) < 0) return -1; =20 - if (network->def->mac_specified) { + if (obj->def->mac_specified) { /* To set a mac for the bridge, we need to define a dummy tap * device, set its mac, then attach it to the bridge. As long * as its mac address is lower than any other interface that * gets attached, the bridge will always maintain this mac * address. */ - macTapIfName =3D networkBridgeDummyNicName(network->def->bridge); + macTapIfName =3D networkBridgeDummyNicName(obj->def->bridge); if (!macTapIfName) goto err0; /* Keep tun fd open and interface up to allow for IPv6 DAD to happ= en */ - if (virNetDevTapCreateInBridgePort(network->def->bridge, - &macTapIfName, &network->def->m= ac, + if (virNetDevTapCreateInBridgePort(obj->def->bridge, + &macTapIfName, &obj->def->mac, NULL, NULL, &tapfd, 1, NULL, NU= LL, - NULL, network->def->mtu, NULL, + NULL, obj->def->mtu, NULL, VIR_NETDEV_TAP_CREATE_USE_MAC_F= OR_BRIDGE | VIR_NETDEV_TAP_CREATE_IFUP | VIR_NETDEV_TAP_CREATE_PERSIST) = < 0) { @@ -2384,8 +2380,8 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr d= river, } } =20 - if (!(macMapFile =3D networkMacMgrFileName(driver, network->def->bridg= e)) || - !(network->macmap =3D virMacMapNew(macMapFile))) + if (!(macMapFile =3D networkMacMgrFileName(driver, obj->def->bridge)) = || + !(obj->macmap =3D virMacMapNew(macMapFile))) goto err1; =20 /* Set bridge options */ @@ -2393,27 +2389,27 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr= driver, /* delay is configured in seconds, but virNetDevBridgeSetSTPDelay * expects milliseconds */ - if (virNetDevBridgeSetSTPDelay(network->def->bridge, - network->def->delay * 1000) < 0) + if (virNetDevBridgeSetSTPDelay(obj->def->bridge, + obj->def->delay * 1000) < 0) goto err1; =20 - if (virNetDevBridgeSetSTP(network->def->bridge, - network->def->stp ? true : false) < 0) + if (virNetDevBridgeSetSTP(obj->def->bridge, + obj->def->stp ? true : false) < 0) goto err1; =20 /* Disable IPv6 on the bridge if there are no IPv6 addresses * defined, and set other IPv6 sysctl tunables appropriately. */ - if (networkSetIPv6Sysctls(network) < 0) + if (networkSetIPv6Sysctls(obj) < 0) goto err1; =20 /* Add "once per network" rules */ - if (network->def->forward.type !=3D VIR_NETWORK_FORWARD_OPEN && - networkAddFirewallRules(network->def) < 0) + if (obj->def->forward.type !=3D VIR_NETWORK_FORWARD_OPEN && + networkAddFirewallRules(obj->def) < 0) goto err1; =20 for (i =3D 0; - (ipdef =3D virNetworkDefGetIPByIndex(network->def, AF_UNSPEC, i)); + (ipdef =3D virNetworkDefGetIPByIndex(obj->def, AF_UNSPEC, i)); i++) { if (VIR_SOCKET_ADDR_IS_FAMILY(&ipdef->address, AF_INET)) v4present =3D true; @@ -2421,28 +2417,28 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr= driver, v6present =3D true; =20 /* Add the IP address/netmask to the bridge */ - if (networkAddAddrToBridge(network, ipdef) < 0) + if (networkAddAddrToBridge(obj, ipdef) < 0) goto err2; } =20 - if (networkStartHandleMACTableManagerMode(network, macTapIfName) < 0) + if (networkStartHandleMACTableManagerMode(obj, macTapIfName) < 0) goto err2; =20 /* Bring up the bridge interface */ - if (virNetDevSetOnline(network->def->bridge, 1) < 0) + if (virNetDevSetOnline(obj->def->bridge, 1) < 0) goto err2; =20 - for (i =3D 0; i < network->def->nroutes; i++) { + for (i =3D 0; i < obj->def->nroutes; i++) { virSocketAddrPtr gateway =3D NULL; =20 - routedef =3D network->def->routes[i]; + routedef =3D obj->def->routes[i]; gateway =3D virNetDevIPRouteGetGateway(routedef); =20 /* Add the IP route to the bridge */ /* ignore errors, error msg will be generated */ /* but libvirt will not know and net-destroy will work. */ if (VIR_SOCKET_ADDR_VALID(gateway)) { - if (networkAddRouteToBridge(network, routedef) < 0) { + if (networkAddRouteToBridge(obj, routedef) < 0) { /* an error occurred adding the static route */ continue; /* for now, do nothing */ } @@ -2450,7 +2446,7 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr d= river, } =20 /* If forward.type !=3D NONE, turn on global IP forwarding */ - if (network->def->forward.type !=3D VIR_NETWORK_FORWARD_NONE) { + if (obj->def->forward.type !=3D VIR_NETWORK_FORWARD_NONE) { if (v6present && !virNetDevIPCheckIPv6Forwarding()) goto err3; /* Precise error message already provided */ =20 @@ -2464,17 +2460,17 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr= driver, =20 /* start dnsmasq if there are any IP addresses (v4 or v6) */ if ((v4present || v6present) && - networkStartDhcpDaemon(driver, network) < 0) + networkStartDhcpDaemon(driver, obj) < 0) goto err3; =20 /* start radvd if there are any ipv6 addresses */ - if (v6present && networkStartRadvd(driver, network) < 0) + if (v6present && networkStartRadvd(driver, obj) < 0) goto err4; =20 /* dnsmasq does not wait for DAD to complete before daemonizing, * so we need to wait for it ourselves. */ - if (v6present && networkWaitDadFinish(network) < 0) + if (v6present && networkWaitDadFinish(obj) < 0) goto err4; =20 /* DAD has finished, dnsmasq is now bound to the @@ -2486,8 +2482,7 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr d= river, VIR_FORCE_CLOSE(tapfd); } =20 - if (virNetDevBandwidthSet(network->def->bridge, - network->def->bandwidth, true) < 0) + if (virNetDevBandwidthSet(obj->def->bridge, obj->def->bandwidth, true)= < 0) goto err5; =20 VIR_FREE(macTapIfName); @@ -2496,28 +2491,28 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr= driver, return 0; =20 err5: - if (network->def->bandwidth) - virNetDevBandwidthClear(network->def->bridge); + if (obj->def->bandwidth) + virNetDevBandwidthClear(obj->def->bridge); =20 err4: if (!save_err) save_err =3D virSaveLastError(); =20 - if (network->dnsmasqPid > 0) { - kill(network->dnsmasqPid, SIGTERM); - network->dnsmasqPid =3D -1; + if (obj->dnsmasqPid > 0) { + kill(obj->dnsmasqPid, SIGTERM); + obj->dnsmasqPid =3D -1; } =20 err3: if (!save_err) save_err =3D virSaveLastError(); - ignore_value(virNetDevSetOnline(network->def->bridge, 0)); + ignore_value(virNetDevSetOnline(obj->def->bridge, 0)); =20 err2: if (!save_err) save_err =3D virSaveLastError(); - if (network->def->forward.type !=3D VIR_NETWORK_FORWARD_OPEN) - networkRemoveFirewallRules(network->def); + if (obj->def->forward.type !=3D VIR_NETWORK_FORWARD_OPEN) + networkRemoveFirewallRules(obj->def); =20 err1: if (!save_err) @@ -2533,7 +2528,7 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr d= river, err0: if (!save_err) save_err =3D virSaveLastError(); - ignore_value(virNetDevBridgeDelete(network->def->bridge)); + ignore_value(virNetDevBridgeDelete(obj->def->bridge)); =20 if (save_err) { virSetError(save_err); @@ -2546,71 +2541,71 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr= driver, =20 static int networkShutdownNetworkVirtual(virNetworkDriverStatePtr driver, - virNetworkObjPtr network) + virNetworkObjPtr obj) { - if (network->def->bandwidth) - virNetDevBandwidthClear(network->def->bridge); + if (obj->def->bandwidth) + virNetDevBandwidthClear(obj->def->bridge); =20 - if (!virObjectUnref(network->macmap)) - network->macmap =3D NULL; + if (!virObjectUnref(obj->macmap)) + obj->macmap =3D NULL; =20 - if (network->radvdPid > 0) { + if (obj->radvdPid > 0) { char *radvdpidbase; =20 - kill(network->radvdPid, SIGTERM); + kill(obj->radvdPid, SIGTERM); /* attempt to delete the pidfile we created */ - if ((radvdpidbase =3D networkRadvdPidfileBasename(network->def->na= me))) { + if ((radvdpidbase =3D networkRadvdPidfileBasename(obj->def->name))= ) { virPidFileDelete(driver->pidDir, radvdpidbase); VIR_FREE(radvdpidbase); } } =20 - if (network->dnsmasqPid > 0) - kill(network->dnsmasqPid, SIGTERM); + if (obj->dnsmasqPid > 0) + kill(obj->dnsmasqPid, SIGTERM); =20 - if (network->def->mac_specified) { - char *macTapIfName =3D networkBridgeDummyNicName(network->def->bri= dge); + if (obj->def->mac_specified) { + char *macTapIfName =3D networkBridgeDummyNicName(obj->def->bridge); if (macTapIfName) { ignore_value(virNetDevTapDelete(macTapIfName, NULL)); VIR_FREE(macTapIfName); } } =20 - ignore_value(virNetDevSetOnline(network->def->bridge, 0)); + ignore_value(virNetDevSetOnline(obj->def->bridge, 0)); =20 - if (network->def->forward.type !=3D VIR_NETWORK_FORWARD_OPEN) - networkRemoveFirewallRules(network->def); + if (obj->def->forward.type !=3D VIR_NETWORK_FORWARD_OPEN) + networkRemoveFirewallRules(obj->def); =20 - ignore_value(virNetDevBridgeDelete(network->def->bridge)); + ignore_value(virNetDevBridgeDelete(obj->def->bridge)); =20 /* See if its still alive and really really kill it */ - if (network->dnsmasqPid > 0 && - (kill(network->dnsmasqPid, 0) =3D=3D 0)) - kill(network->dnsmasqPid, SIGKILL); - network->dnsmasqPid =3D -1; + if (obj->dnsmasqPid > 0 && + (kill(obj->dnsmasqPid, 0) =3D=3D 0)) + kill(obj->dnsmasqPid, SIGKILL); + obj->dnsmasqPid =3D -1; =20 - if (network->radvdPid > 0 && - (kill(network->radvdPid, 0) =3D=3D 0)) - kill(network->radvdPid, SIGKILL); - network->radvdPid =3D -1; + if (obj->radvdPid > 0 && + (kill(obj->radvdPid, 0) =3D=3D 0)) + kill(obj->radvdPid, SIGKILL); + obj->radvdPid =3D -1; =20 return 0; } =20 =20 static int -networkStartNetworkBridge(virNetworkObjPtr network) +networkStartNetworkBridge(virNetworkObjPtr obj) { /* put anything here that needs to be done each time a network of * type BRIDGE, is started. On failure, undo anything you've done, * and return -1. On success return 0. */ - return networkStartHandleMACTableManagerMode(network, NULL); + return networkStartHandleMACTableManagerMode(obj, NULL); } =20 =20 static int -networkShutdownNetworkBridge(virNetworkObjPtr network ATTRIBUTE_UNUSED) +networkShutdownNetworkBridge(virNetworkObjPtr obj ATTRIBUTE_UNUSED) { /* put anything here that needs to be done each time a network of * type BRIDGE is shutdown. On failure, undo anything you've done, @@ -2729,19 +2724,19 @@ networkCreateInterfacePool(virNetworkDefPtr netdef) =20 =20 static int -networkStartNetworkExternal(virNetworkObjPtr network) +networkStartNetworkExternal(virNetworkObjPtr obj) { /* put anything here that needs to be done each time a network of * type BRIDGE, PRIVATE, VEPA, HOSTDEV or PASSTHROUGH is started. On * failure, undo anything you've done, and return -1. On success * return 0. */ - return networkCreateInterfacePool(network->def); + return networkCreateInterfacePool(obj->def); } =20 =20 static int -networkShutdownNetworkExternal(virNetworkObjPtr network ATTRIBUTE_UNUSED) +networkShutdownNetworkExternal(virNetworkObjPtr obj ATTRIBUTE_UNUSED) { /* put anything here that needs to be done each time a network of * type BRIDGE, PRIVATE, VEPA, HOSTDEV or PASSTHROUGH is shutdown. On @@ -2754,13 +2749,13 @@ networkShutdownNetworkExternal(virNetworkObjPtr net= work ATTRIBUTE_UNUSED) =20 static int networkStartNetwork(virNetworkDriverStatePtr driver, - virNetworkObjPtr network) + virNetworkObjPtr obj) { int ret =3D -1; =20 - VIR_DEBUG("driver=3D%p, network=3D%p", driver, network); + VIR_DEBUG("driver=3D%p, network=3D%p", driver, obj); =20 - if (virNetworkObjIsActive(network)) { + if (virNetworkObjIsActive(obj)) { virReportError(VIR_ERR_OPERATION_INVALID, "%s", _("network is already active")); return ret; @@ -2769,29 +2764,29 @@ networkStartNetwork(virNetworkDriverStatePtr driver, VIR_DEBUG("Beginning network startup process"); =20 VIR_DEBUG("Setting current network def as transient"); - if (virNetworkObjSetDefTransient(network, true) < 0) + if (virNetworkObjSetDefTransient(obj, true) < 0) goto cleanup; =20 /* Run an early hook to set-up missing devices. * If the script raised an error abort the launch. */ - if (networkRunHook(network, NULL, NULL, + if (networkRunHook(obj, NULL, NULL, VIR_HOOK_NETWORK_OP_START, VIR_HOOK_SUBOP_BEGIN) < 0) goto cleanup; =20 - switch (network->def->forward.type) { + switch (obj->def->forward.type) { =20 case VIR_NETWORK_FORWARD_NONE: case VIR_NETWORK_FORWARD_NAT: case VIR_NETWORK_FORWARD_ROUTE: case VIR_NETWORK_FORWARD_OPEN: - if (networkStartNetworkVirtual(driver, network) < 0) + if (networkStartNetworkVirtual(driver, obj) < 0) goto cleanup; break; =20 case VIR_NETWORK_FORWARD_BRIDGE: - if (network->def->bridge) { - if (networkStartNetworkBridge(network) < 0) + if (obj->def->bridge) { + if (networkStartNetworkBridge(obj) < 0) goto cleanup; break; } @@ -2805,13 +2800,13 @@ networkStartNetwork(virNetworkDriverStatePtr driver, case VIR_NETWORK_FORWARD_VEPA: case VIR_NETWORK_FORWARD_PASSTHROUGH: case VIR_NETWORK_FORWARD_HOSTDEV: - if (networkStartNetworkExternal(network) < 0) + if (networkStartNetworkExternal(obj) < 0) goto cleanup; break; } =20 /* finally we can call the 'started' hook script if any */ - if (networkRunHook(network, NULL, NULL, + if (networkRunHook(obj, NULL, NULL, VIR_HOOK_NETWORK_OP_STARTED, VIR_HOOK_SUBOP_BEGIN) < 0) goto cleanup; @@ -2820,19 +2815,19 @@ networkStartNetwork(virNetworkDriverStatePtr driver, * is setup. */ VIR_DEBUG("Writing network status to disk"); - if (virNetworkObjSaveStatus(driver->stateDir, network) < 0) + if (virNetworkObjSaveStatus(driver->stateDir, obj) < 0) goto cleanup; =20 - network->active =3D 1; - VIR_INFO("Network '%s' started up", network->def->name); + obj->active =3D 1; + VIR_INFO("Network '%s' started up", obj->def->name); ret =3D 0; =20 cleanup: if (ret < 0) { - virNetworkObjUnsetDefTransient(network); + virNetworkObjUnsetDefTransient(obj); virErrorPtr save_err =3D virSaveLastError(); int save_errno =3D errno; - networkShutdownNetwork(driver, network); + networkShutdownNetwork(driver, obj); virSetError(save_err); virFreeError(save_err); errno =3D save_errno; @@ -2843,36 +2838,36 @@ networkStartNetwork(virNetworkDriverStatePtr driver, =20 static int networkShutdownNetwork(virNetworkDriverStatePtr driver, - virNetworkObjPtr network) + virNetworkObjPtr obj) { int ret =3D 0; char *stateFile; =20 - VIR_INFO("Shutting down network '%s'", network->def->name); + VIR_INFO("Shutting down network '%s'", obj->def->name); =20 - if (!virNetworkObjIsActive(network)) + if (!virNetworkObjIsActive(obj)) return 0; =20 stateFile =3D virNetworkConfigFile(driver->stateDir, - network->def->name); + obj->def->name); if (!stateFile) return -1; =20 unlink(stateFile); VIR_FREE(stateFile); =20 - switch (network->def->forward.type) { + switch (obj->def->forward.type) { =20 case VIR_NETWORK_FORWARD_NONE: case VIR_NETWORK_FORWARD_NAT: case VIR_NETWORK_FORWARD_ROUTE: case VIR_NETWORK_FORWARD_OPEN: - ret =3D networkShutdownNetworkVirtual(driver, network); + ret =3D networkShutdownNetworkVirtual(driver, obj); break; =20 case VIR_NETWORK_FORWARD_BRIDGE: - if (network->def->bridge) { - ret =3D networkShutdownNetworkBridge(network); + if (obj->def->bridge) { + ret =3D networkShutdownNetworkBridge(obj); break; } /* intentionally fall through to the macvtap/direct case for @@ -2885,16 +2880,16 @@ networkShutdownNetwork(virNetworkDriverStatePtr dri= ver, case VIR_NETWORK_FORWARD_VEPA: case VIR_NETWORK_FORWARD_PASSTHROUGH: case VIR_NETWORK_FORWARD_HOSTDEV: - ret =3D networkShutdownNetworkExternal(network); + ret =3D networkShutdownNetworkExternal(obj); break; } =20 /* now that we know it's stopped call the hook if present */ - networkRunHook(network, NULL, NULL, VIR_HOOK_NETWORK_OP_STOPPED, + networkRunHook(obj, NULL, NULL, VIR_HOOK_NETWORK_OP_STOPPED, VIR_HOOK_SUBOP_END); =20 - network->active =3D 0; - virNetworkObjUnsetDefTransient(network); + obj->active =3D 0; + virNetworkObjUnsetDefTransient(obj); return ret; } =20 @@ -2904,11 +2899,11 @@ networkLookupByUUID(virConnectPtr conn, const unsigned char *uuid) { virNetworkDriverStatePtr driver =3D networkGetDriver(); - virNetworkObjPtr network; - virNetworkPtr ret =3D NULL; + virNetworkObjPtr obj; + virNetworkPtr net =3D NULL; =20 - network =3D virNetworkObjFindByUUID(driver->networks, uuid); - if (!network) { + obj =3D virNetworkObjFindByUUID(driver->networks, uuid); + if (!obj) { char uuidstr[VIR_UUID_STRING_BUFLEN]; virUUIDFormat(uuid, uuidstr); virReportError(VIR_ERR_NO_NETWORK, @@ -2917,14 +2912,14 @@ networkLookupByUUID(virConnectPtr conn, goto cleanup; } =20 - if (virNetworkLookupByUUIDEnsureACL(conn, network->def) < 0) + if (virNetworkLookupByUUIDEnsureACL(conn, obj->def) < 0) goto cleanup; =20 - ret =3D virGetNetwork(conn, network->def->name, network->def->uuid); + net =3D virGetNetwork(conn, obj->def->name, obj->def->uuid); =20 cleanup: - virNetworkObjEndAPI(&network); - return ret; + virNetworkObjEndAPI(&obj); + return net; } =20 =20 @@ -2933,24 +2928,24 @@ networkLookupByName(virConnectPtr conn, const char *name) { virNetworkDriverStatePtr driver =3D networkGetDriver(); - virNetworkObjPtr network; - virNetworkPtr ret =3D NULL; + virNetworkObjPtr obj; + virNetworkPtr net =3D NULL; =20 - network =3D virNetworkObjFindByName(driver->networks, name); - if (!network) { + obj =3D virNetworkObjFindByName(driver->networks, name); + if (!obj) { virReportError(VIR_ERR_NO_NETWORK, _("no network with matching name '%s'"), name); goto cleanup; } =20 - if (virNetworkLookupByNameEnsureACL(conn, network->def) < 0) + if (virNetworkLookupByNameEnsureACL(conn, obj->def) < 0) goto cleanup; =20 - ret =3D virGetNetwork(conn, network->def->name, network->def->uuid); + net =3D virGetNetwork(conn, obj->def->name, obj->def->uuid); =20 cleanup: - virNetworkObjEndAPI(&network); - return ret; + virNetworkObjEndAPI(&obj); + return net; } =20 =20 @@ -3504,8 +3499,8 @@ networkCreateXML(virConnectPtr conn, { virNetworkDriverStatePtr driver =3D networkGetDriver(); virNetworkDefPtr def; - virNetworkObjPtr network =3D NULL; - virNetworkPtr ret =3D NULL; + virNetworkObjPtr obj =3D NULL; + virNetworkPtr net =3D NULL; virObjectEventPtr event =3D NULL; =20 if (!(def =3D virNetworkDefParseString(xml))) @@ -3521,31 +3516,31 @@ networkCreateXML(virConnectPtr conn, * we assign the def with live =3D true in anticipation that it will * be started momentarily. */ - if (!(network =3D virNetworkObjAssignDef(driver->networks, def, - VIR_NETWORK_OBJ_LIST_ADD_LIVE | - VIR_NETWORK_OBJ_LIST_ADD_CHECK_= LIVE))) + if (!(obj =3D virNetworkObjAssignDef(driver->networks, def, + VIR_NETWORK_OBJ_LIST_ADD_LIVE | + VIR_NETWORK_OBJ_LIST_ADD_CHECK_LIVE= ))) goto cleanup; def =3D NULL; =20 - if (networkStartNetwork(driver, network) < 0) { - virNetworkObjRemoveInactive(driver->networks, network); + if (networkStartNetwork(driver, obj) < 0) { + virNetworkObjRemoveInactive(driver->networks, obj); goto cleanup; } =20 - event =3D virNetworkEventLifecycleNew(network->def->name, - network->def->uuid, + event =3D virNetworkEventLifecycleNew(obj->def->name, + obj->def->uuid, VIR_NETWORK_EVENT_STARTED, 0); =20 - VIR_INFO("Creating network '%s'", network->def->name); - ret =3D virGetNetwork(conn, network->def->name, network->def->uuid); + VIR_INFO("Creating network '%s'", obj->def->name); + net =3D virGetNetwork(conn, obj->def->name, obj->def->uuid); =20 cleanup: virNetworkDefFree(def); if (event) virObjectEventStateQueue(driver->networkEventState, event); - virNetworkObjEndAPI(&network); - return ret; + virNetworkObjEndAPI(&obj); + return net; } =20 =20 @@ -3556,8 +3551,8 @@ networkDefineXML(virConnectPtr conn, virNetworkDriverStatePtr driver =3D networkGetDriver(); virNetworkDefPtr def =3D NULL; bool freeDef =3D true; - virNetworkObjPtr network =3D NULL; - virNetworkPtr ret =3D NULL; + virNetworkObjPtr obj =3D NULL; + virNetworkPtr net =3D NULL; virObjectEventPtr event =3D NULL; =20 if (!(def =3D virNetworkDefParseString(xml))) @@ -3569,22 +3564,22 @@ networkDefineXML(virConnectPtr conn, if (networkValidate(driver, def) < 0) goto cleanup; =20 - if (!(network =3D virNetworkObjAssignDef(driver->networks, def, 0))) + if (!(obj =3D virNetworkObjAssignDef(driver->networks, def, 0))) goto cleanup; =20 /* def was assigned to network object */ freeDef =3D false; =20 if (virNetworkSaveConfig(driver->networkConfigDir, def) < 0) { - if (!virNetworkObjIsActive(network)) { - virNetworkObjRemoveInactive(driver->networks, network); + if (!virNetworkObjIsActive(obj)) { + virNetworkObjRemoveInactive(driver->networks, obj); goto cleanup; } /* if network was active already, just undo new persistent * definition by making it transient. * XXX - this isn't necessarily the correct thing to do. */ - virNetworkObjUpdateAssignDef(network, NULL, false); + virNetworkObjUpdateAssignDef(obj, NULL, false); goto cleanup; } =20 @@ -3593,15 +3588,15 @@ networkDefineXML(virConnectPtr conn, 0); =20 VIR_INFO("Defining network '%s'", def->name); - ret =3D virGetNetwork(conn, def->name, def->uuid); + net =3D virGetNetwork(conn, def->name, def->uuid); =20 cleanup: if (event) virObjectEventStateQueue(driver->networkEventState, event); if (freeDef) virNetworkDefFree(def); - virNetworkObjEndAPI(&network); - return ret; + virNetworkObjEndAPI(&obj); + return net; } =20 =20 @@ -3609,21 +3604,21 @@ static int networkUndefine(virNetworkPtr net) { virNetworkDriverStatePtr driver =3D networkGetDriver(); - virNetworkObjPtr network; + virNetworkObjPtr obj; int ret =3D -1; bool active =3D false; virObjectEventPtr event =3D NULL; =20 - if (!(network =3D networkObjFromNetwork(net))) + if (!(obj =3D networkObjFromNetwork(net))) goto cleanup; =20 - if (virNetworkUndefineEnsureACL(net->conn, network->def) < 0) + if (virNetworkUndefineEnsureACL(net->conn, obj->def) < 0) goto cleanup; =20 - if (virNetworkObjIsActive(network)) + if (virNetworkObjIsActive(obj)) active =3D true; =20 - if (!network->persistent) { + if (!obj->persistent) { virReportError(VIR_ERR_OPERATION_INVALID, "%s", _("can't undefine transient network")); goto cleanup; @@ -3632,24 +3627,24 @@ networkUndefine(virNetworkPtr net) /* remove autostart link */ if (virNetworkObjDeleteConfig(driver->networkConfigDir, driver->networkAutostartDir, - network) < 0) + obj) < 0) goto cleanup; =20 - event =3D virNetworkEventLifecycleNew(network->def->name, - network->def->uuid, + event =3D virNetworkEventLifecycleNew(obj->def->name, + obj->def->uuid, VIR_NETWORK_EVENT_UNDEFINED, 0); =20 - VIR_INFO("Undefining network '%s'", network->def->name); + VIR_INFO("Undefining network '%s'", obj->def->name); if (!active) { - if (networkRemoveInactive(driver, network) < 0) + if (networkRemoveInactive(driver, obj) < 0) goto cleanup; } else { =20 /* if the network still exists, it was active, and we need to make * it transient (by deleting the persistent def) */ - virNetworkObjUpdateAssignDef(network, NULL, false); + virNetworkObjUpdateAssignDef(obj, NULL, false); } =20 ret =3D 0; @@ -3657,7 +3652,7 @@ networkUndefine(virNetworkPtr net) cleanup: if (event) virObjectEventStateQueue(driver->networkEventState, event); - virNetworkObjEndAPI(&network); + virNetworkObjEndAPI(&obj); return ret; } =20 @@ -3671,7 +3666,7 @@ networkUpdate(virNetworkPtr net, unsigned int flags) { virNetworkDriverStatePtr driver =3D networkGetDriver(); - virNetworkObjPtr network =3D NULL; + virNetworkObjPtr obj =3D NULL; int isActive, ret =3D -1; size_t i; virNetworkIPDefPtr ipdef; @@ -3683,15 +3678,15 @@ networkUpdate(virNetworkPtr net, VIR_NETWORK_UPDATE_AFFECT_CONFIG, -1); =20 - if (!(network =3D networkObjFromNetwork(net))) + if (!(obj =3D networkObjFromNetwork(net))) goto cleanup; =20 - if (virNetworkUpdateEnsureACL(net->conn, network->def, flags) < 0) + if (virNetworkUpdateEnsureACL(net->conn, obj->def, flags) < 0) goto cleanup; =20 /* see if we are listening for dhcp pre-modification */ for (i =3D 0; - (ipdef =3D virNetworkDefGetIPByIndex(network->def, AF_INET, i)); + (ipdef =3D virNetworkDefGetIPByIndex(obj->def, AF_INET, i)); i++) { if (ipdef->nranges || ipdef->nhosts) { oldDhcpActive =3D true; @@ -3702,7 +3697,7 @@ networkUpdate(virNetworkPtr net, /* VIR_NETWORK_UPDATE_AFFECT_CURRENT means "change LIVE if network * is active, else change CONFIG */ - isActive =3D virNetworkObjIsActive(network); + isActive =3D virNetworkObjIsActive(obj); if ((flags & (VIR_NETWORK_UPDATE_AFFECT_LIVE | VIR_NETWORK_UPDATE_AFFECT_CONFIG)) =3D=3D VIR_NETWORK_UPDATE_AFFECT_CURRENT) { @@ -3716,9 +3711,9 @@ networkUpdate(virNetworkPtr net, /* Take care of anything that must be done before updating the * live NetworkDef. */ - if (network->def->forward.type =3D=3D VIR_NETWORK_FORWARD_NONE || - network->def->forward.type =3D=3D VIR_NETWORK_FORWARD_NAT || - network->def->forward.type =3D=3D VIR_NETWORK_FORWARD_ROUTE) { + if (obj->def->forward.type =3D=3D VIR_NETWORK_FORWARD_NONE || + obj->def->forward.type =3D=3D VIR_NETWORK_FORWARD_NAT || + obj->def->forward.type =3D=3D VIR_NETWORK_FORWARD_ROUTE) { switch (section) { case VIR_NETWORK_SECTION_FORWARD: case VIR_NETWORK_SECTION_FORWARD_INTERFACE: @@ -3729,8 +3724,8 @@ networkUpdate(virNetworkPtr net, * old rules (and remember to load new ones after the * update). */ - if (network->def->forward.type !=3D VIR_NETWORK_FORWARD_OP= EN) { - networkRemoveFirewallRules(network->def); + if (obj->def->forward.type !=3D VIR_NETWORK_FORWARD_OPEN) { + networkRemoveFirewallRules(obj->def); needFirewallRefresh =3D true; } break; @@ -3741,19 +3736,19 @@ networkUpdate(virNetworkPtr net, } =20 /* update the network config in memory/on disk */ - if (virNetworkObjUpdate(network, command, section, parentIndex, xml, f= lags) < 0) { + if (virNetworkObjUpdate(obj, command, section, parentIndex, xml, flags= ) < 0) { if (needFirewallRefresh) - ignore_value(networkAddFirewallRules(network->def)); + ignore_value(networkAddFirewallRules(obj->def)); goto cleanup; } =20 - if (needFirewallRefresh && networkAddFirewallRules(network->def) < 0) + if (needFirewallRefresh && networkAddFirewallRules(obj->def) < 0) goto cleanup; =20 if (flags & VIR_NETWORK_UPDATE_AFFECT_CONFIG) { /* save updated persistent config to disk */ if (virNetworkSaveConfig(driver->networkConfigDir, - virNetworkObjGetPersistentDef(network)) <= 0) { + virNetworkObjGetPersistentDef(obj)) < 0) { goto cleanup; } } @@ -3776,7 +3771,7 @@ networkUpdate(virNetworkPtr net, * to "nobody" after it starts, and is unable to re-read * the conf file (owned by root, mode 600) */ - if (networkRestartDhcpDaemon(driver, network) < 0) + if (networkRestartDhcpDaemon(driver, obj) < 0) goto cleanup; =20 } else if (section =3D=3D VIR_NETWORK_SECTION_IP_DHCP_HOST) { @@ -3788,7 +3783,7 @@ networkUpdate(virNetworkPtr net, bool newDhcpActive =3D false; =20 for (i =3D 0; - (ipdef =3D virNetworkDefGetIPByIndex(network->def, AF_INE= T, i)); + (ipdef =3D virNetworkDefGetIPByIndex(obj->def, AF_INET, i= )); i++) { if (ipdef->nranges || ipdef->nhosts) { newDhcpActive =3D true; @@ -3797,8 +3792,8 @@ networkUpdate(virNetworkPtr net, } =20 if ((newDhcpActive !=3D oldDhcpActive && - networkRestartDhcpDaemon(driver, network) < 0) || - networkRefreshDhcpDaemon(driver, network) < 0) { + networkRestartDhcpDaemon(driver, obj) < 0) || + networkRefreshDhcpDaemon(driver, obj) < 0) { goto cleanup; } =20 @@ -3807,7 +3802,7 @@ networkUpdate(virNetworkPtr net, * (not the .conf file) so we can just update the config * files and send SIGHUP to dnsmasq. */ - if (networkRefreshDhcpDaemon(driver, network) < 0) + if (networkRefreshDhcpDaemon(driver, obj) < 0) goto cleanup; =20 } @@ -3816,23 +3811,23 @@ networkUpdate(virNetworkPtr net, /* only a change in IP addresses will affect radvd, and all of= radvd's * config is stored in the conf file which will be re-read wit= h a SIGHUP. */ - if (networkRefreshRadvd(driver, network) < 0) + if (networkRefreshRadvd(driver, obj) < 0) goto cleanup; } =20 /* save current network state to disk */ - if ((ret =3D virNetworkObjSaveStatus(driver->stateDir, network)) <= 0) + if ((ret =3D virNetworkObjSaveStatus(driver->stateDir, obj)) < 0) goto cleanup; } =20 /* call the 'updated' network hook script */ - if (networkRunHook(network, NULL, NULL, VIR_HOOK_NETWORK_OP_UPDATED, + if (networkRunHook(obj, NULL, NULL, VIR_HOOK_NETWORK_OP_UPDATED, VIR_HOOK_SUBOP_BEGIN) < 0) goto cleanup; =20 ret =3D 0; cleanup: - virNetworkObjEndAPI(&network); + virNetworkObjEndAPI(&obj); return ret; } =20 @@ -3841,28 +3836,28 @@ static int networkCreate(virNetworkPtr net) { virNetworkDriverStatePtr driver =3D networkGetDriver(); - virNetworkObjPtr network; + virNetworkObjPtr obj; int ret =3D -1; virObjectEventPtr event =3D NULL; =20 - if (!(network =3D networkObjFromNetwork(net))) + if (!(obj =3D networkObjFromNetwork(net))) goto cleanup; =20 - if (virNetworkCreateEnsureACL(net->conn, network->def) < 0) + if (virNetworkCreateEnsureACL(net->conn, obj->def) < 0) goto cleanup; =20 - if ((ret =3D networkStartNetwork(driver, network)) < 0) + if ((ret =3D networkStartNetwork(driver, obj)) < 0) goto cleanup; =20 - event =3D virNetworkEventLifecycleNew(network->def->name, - network->def->uuid, + event =3D virNetworkEventLifecycleNew(obj->def->name, + obj->def->uuid, VIR_NETWORK_EVENT_STARTED, 0); =20 cleanup: if (event) virObjectEventStateQueue(driver->networkEventState, event); - virNetworkObjEndAPI(&network); + virNetworkObjEndAPI(&obj); return ret; } =20 @@ -3871,33 +3866,32 @@ static int networkDestroy(virNetworkPtr net) { virNetworkDriverStatePtr driver =3D networkGetDriver(); - virNetworkObjPtr network; + virNetworkObjPtr obj; int ret =3D -1; virObjectEventPtr event =3D NULL; =20 - if (!(network =3D networkObjFromNetwork(net))) + if (!(obj =3D networkObjFromNetwork(net))) goto cleanup; =20 - if (virNetworkDestroyEnsureACL(net->conn, network->def) < 0) + if (virNetworkDestroyEnsureACL(net->conn, obj->def) < 0) goto cleanup; =20 - if (!virNetworkObjIsActive(network)) { + if (!virNetworkObjIsActive(obj)) { virReportError(VIR_ERR_OPERATION_INVALID, _("network '%s' is not active"), - network->def->name); + obj->def->name); goto cleanup; } =20 - if ((ret =3D networkShutdownNetwork(driver, network)) < 0) + if ((ret =3D networkShutdownNetwork(driver, obj)) < 0) goto cleanup; =20 - event =3D virNetworkEventLifecycleNew(network->def->name, - network->def->uuid, + event =3D virNetworkEventLifecycleNew(obj->def->name, + obj->def->uuid, VIR_NETWORK_EVENT_STOPPED, 0); =20 - if (!network->persistent && - networkRemoveInactive(driver, network) < 0) { + if (!obj->persistent && networkRemoveInactive(driver, obj) < 0) { ret =3D -1; goto cleanup; } @@ -3905,7 +3899,7 @@ networkDestroy(virNetworkPtr net) cleanup: if (event) virObjectEventStateQueue(driver->networkEventState, event); - virNetworkObjEndAPI(&network); + virNetworkObjEndAPI(&obj); return ret; } =20 @@ -3914,27 +3908,27 @@ static char * networkGetXMLDesc(virNetworkPtr net, unsigned int flags) { - virNetworkObjPtr network; + virNetworkObjPtr obj; virNetworkDefPtr def; char *ret =3D NULL; =20 virCheckFlags(VIR_NETWORK_XML_INACTIVE, NULL); =20 - if (!(network =3D networkObjFromNetwork(net))) + if (!(obj =3D networkObjFromNetwork(net))) return ret; =20 - if (virNetworkGetXMLDescEnsureACL(net->conn, network->def) < 0) + if (virNetworkGetXMLDescEnsureACL(net->conn, obj->def) < 0) goto cleanup; =20 - if ((flags & VIR_NETWORK_XML_INACTIVE) && network->newDef) - def =3D network->newDef; + if ((flags & VIR_NETWORK_XML_INACTIVE) && obj->newDef) + def =3D obj->newDef; else - def =3D network->def; + def =3D obj->def; =20 ret =3D virNetworkDefFormat(def, flags); =20 cleanup: - virNetworkObjEndAPI(&network); + virNetworkObjEndAPI(&obj); return ret; } =20 @@ -3942,26 +3936,26 @@ networkGetXMLDesc(virNetworkPtr net, static char * networkGetBridgeName(virNetworkPtr net) { - virNetworkObjPtr network; + virNetworkObjPtr obj; char *bridge =3D NULL; =20 - if (!(network =3D networkObjFromNetwork(net))) + if (!(obj =3D networkObjFromNetwork(net))) return bridge; =20 - if (virNetworkGetBridgeNameEnsureACL(net->conn, network->def) < 0) + if (virNetworkGetBridgeNameEnsureACL(net->conn, obj->def) < 0) goto cleanup; =20 - if (!(network->def->bridge)) { + if (!(obj->def->bridge)) { virReportError(VIR_ERR_INTERNAL_ERROR, _("network '%s' does not have a bridge name."), - network->def->name); + obj->def->name); goto cleanup; } =20 - ignore_value(VIR_STRDUP(bridge, network->def->bridge)); + ignore_value(VIR_STRDUP(bridge, obj->def->bridge)); =20 cleanup: - virNetworkObjEndAPI(&network); + virNetworkObjEndAPI(&obj); return bridge; } =20 @@ -3970,20 +3964,20 @@ static int networkGetAutostart(virNetworkPtr net, int *autostart) { - virNetworkObjPtr network; + virNetworkObjPtr obj; int ret =3D -1; =20 - if (!(network =3D networkObjFromNetwork(net))) + if (!(obj =3D networkObjFromNetwork(net))) return ret; =20 - if (virNetworkGetAutostartEnsureACL(net->conn, network->def) < 0) + if (virNetworkGetAutostartEnsureACL(net->conn, obj->def) < 0) goto cleanup; =20 - *autostart =3D network->autostart; + *autostart =3D obj->autostart; ret =3D 0; =20 cleanup: - virNetworkObjEndAPI(&network); + virNetworkObjEndAPI(&obj); return ret; } =20 @@ -3993,18 +3987,18 @@ networkSetAutostart(virNetworkPtr net, int autostart) { virNetworkDriverStatePtr driver =3D networkGetDriver(); - virNetworkObjPtr network; + virNetworkObjPtr obj; char *configFile =3D NULL, *autostartLink =3D NULL; int ret =3D -1; =20 =20 - if (!(network =3D networkObjFromNetwork(net))) + if (!(obj =3D networkObjFromNetwork(net))) goto cleanup; =20 - if (virNetworkSetAutostartEnsureACL(net->conn, network->def) < 0) + if (virNetworkSetAutostartEnsureACL(net->conn, obj->def) < 0) goto cleanup; =20 - if (!network->persistent) { + if (!obj->persistent) { virReportError(VIR_ERR_OPERATION_INVALID, "%s", _("cannot set autostart for transient network= ")); goto cleanup; @@ -4012,10 +4006,10 @@ networkSetAutostart(virNetworkPtr net, =20 autostart =3D (autostart !=3D 0); =20 - if (network->autostart !=3D autostart) { - if ((configFile =3D virNetworkConfigFile(driver->networkConfigDir,= network->def->name)) =3D=3D NULL) + if (obj->autostart !=3D autostart) { + if ((configFile =3D virNetworkConfigFile(driver->networkConfigDir,= obj->def->name)) =3D=3D NULL) goto cleanup; - if ((autostartLink =3D virNetworkConfigFile(driver->networkAutosta= rtDir, network->def->name)) =3D=3D NULL) + if ((autostartLink =3D virNetworkConfigFile(driver->networkAutosta= rtDir, obj->def->name)) =3D=3D NULL) goto cleanup; =20 if (autostart) { @@ -4041,20 +4035,20 @@ networkSetAutostart(virNetworkPtr net, } } =20 - network->autostart =3D autostart; + obj->autostart =3D autostart; } ret =3D 0; =20 cleanup: VIR_FREE(configFile); VIR_FREE(autostartLink); - virNetworkObjEndAPI(&network); + virNetworkObjEndAPI(&obj); return ret; } =20 =20 static int -networkGetDHCPLeases(virNetworkPtr network, +networkGetDHCPLeases(virNetworkPtr net, const char *mac, virNetworkDHCPLeasePtr **leases, unsigned int flags) @@ -4089,10 +4083,10 @@ networkGetDHCPLeases(virNetworkPtr network, return -1; } =20 - if (!(obj =3D networkObjFromNetwork(network))) + if (!(obj =3D networkObjFromNetwork(net))) return -1; =20 - if (virNetworkGetDHCPLeasesEnsureACL(network->conn, obj->def) < 0) + if (virNetworkGetDHCPLeasesEnsureACL(net->conn, obj->def) < 0) goto cleanup; =20 /* Retrieve custom leases file location */ @@ -4351,7 +4345,7 @@ networkAllocateActualDevice(virDomainDefPtr dom, { virNetworkDriverStatePtr driver =3D networkGetDriver(); virDomainNetType actualType =3D iface->type; - virNetworkObjPtr network =3D NULL; + virNetworkObjPtr obj =3D NULL; virNetworkDefPtr netdef =3D NULL; virNetDevBandwidthPtr bandwidth =3D NULL; virPortGroupDefPtr portgroup =3D NULL; @@ -4367,16 +4361,16 @@ networkAllocateActualDevice(virDomainDefPtr dom, virDomainActualNetDefFree(iface->data.network.actual); iface->data.network.actual =3D NULL; =20 - network =3D virNetworkObjFindByName(driver->networks, iface->data.netw= ork.name); - if (!network) { + obj =3D virNetworkObjFindByName(driver->networks, iface->data.network.= name); + if (!obj) { virReportError(VIR_ERR_NO_NETWORK, _("no network with matching name '%s'"), iface->data.network.name); goto error; } - netdef =3D network->def; + netdef =3D obj->def; =20 - if (!virNetworkObjIsActive(network)) { + if (!virNetworkObjIsActive(obj)) { virReportError(VIR_ERR_OPERATION_INVALID, _("network '%s' is not active"), netdef->name); @@ -4448,7 +4442,7 @@ networkAllocateActualDevice(virDomainDefPtr dom, iface->data.network.actual->data.bridge.macTableManager =3D netdef->macTableManager; =20 - if (networkPlugBandwidth(network, iface) < 0) + if (networkPlugBandwidth(obj, iface) < 0) goto error; =20 } else if ((netdef->forward.type =3D=3D VIR_NETWORK_FORWARD_BRIDGE) && @@ -4669,7 +4663,7 @@ networkAllocateActualDevice(virDomainDefPtr dom, } } =20 - if (networkMacMgrAdd(driver, network, dom->name, &iface->mac) < 0) + if (networkMacMgrAdd(driver, obj, dom->name, &iface->mac) < 0) goto error; =20 if (virNetDevVPortProfileCheckComplete(virtport, true) < 0) @@ -4727,7 +4721,7 @@ networkAllocateActualDevice(virDomainDefPtr dom, if (dev) dev->connections++; /* finally we can call the 'plugged' hook script if any */ - if (networkRunHook(network, dom, iface, + if (networkRunHook(obj, dom, iface, VIR_HOOK_NETWORK_OP_IFACE_PLUGGED, VIR_HOOK_SUBOP_BEGIN) < 0) { /* adjust for failure */ @@ -4742,7 +4736,7 @@ networkAllocateActualDevice(virDomainDefPtr dom, ret =3D 0; =20 cleanup: - virNetworkObjEndAPI(&network); + virNetworkObjEndAPI(&obj); return ret; =20 error: @@ -4772,7 +4766,7 @@ networkNotifyActualDevice(virDomainDefPtr dom, { virNetworkDriverStatePtr driver =3D networkGetDriver(); virDomainNetType actualType =3D virDomainNetGetActualType(iface); - virNetworkObjPtr network; + virNetworkObjPtr obj; virNetworkDefPtr netdef; virNetworkForwardIfDefPtr dev =3D NULL; size_t i; @@ -4781,16 +4775,16 @@ networkNotifyActualDevice(virDomainDefPtr dom, if (iface->type !=3D VIR_DOMAIN_NET_TYPE_NETWORK) return; =20 - network =3D virNetworkObjFindByName(driver->networks, iface->data.netw= ork.name); - if (!network) { + obj =3D virNetworkObjFindByName(driver->networks, iface->data.network.= name); + if (!obj) { virReportError(VIR_ERR_NO_NETWORK, _("no network with matching name '%s'"), iface->data.network.name); goto error; } - netdef =3D network->def; + netdef =3D obj->def; =20 - if (!virNetworkObjIsActive(network)) { + if (!virNetworkObjIsActive(obj)) { virReportError(VIR_ERR_OPERATION_INVALID, _("network '%s' is not active"), netdef->name); @@ -4952,7 +4946,7 @@ networkNotifyActualDevice(virDomainDefPtr dom, if (dev) dev->connections++; /* finally we can call the 'plugged' hook script if any */ - if (networkRunHook(network, dom, iface, VIR_HOOK_NETWORK_OP_IFACE_PLUG= GED, + if (networkRunHook(obj, dom, iface, VIR_HOOK_NETWORK_OP_IFACE_PLUGGED, VIR_HOOK_SUBOP_BEGIN) < 0) { /* adjust for failure */ if (dev) @@ -4963,7 +4957,7 @@ networkNotifyActualDevice(virDomainDefPtr dom, networkLogAllocation(netdef, actualType, dev, iface, true); =20 cleanup: - virNetworkObjEndAPI(&network); + virNetworkObjEndAPI(&obj); VIR_FREE(master); return; =20 @@ -4989,7 +4983,7 @@ networkReleaseActualDevice(virDomainDefPtr dom, { virNetworkDriverStatePtr driver =3D networkGetDriver(); virDomainNetType actualType =3D virDomainNetGetActualType(iface); - virNetworkObjPtr network; + virNetworkObjPtr obj; virNetworkDefPtr netdef; virNetworkForwardIfDefPtr dev =3D NULL; size_t i; @@ -4998,21 +4992,21 @@ networkReleaseActualDevice(virDomainDefPtr dom, if (iface->type !=3D VIR_DOMAIN_NET_TYPE_NETWORK) return 0; =20 - network =3D virNetworkObjFindByName(driver->networks, iface->data.netw= ork.name); - if (!network) { + obj =3D virNetworkObjFindByName(driver->networks, iface->data.network.= name); + if (!obj) { virReportError(VIR_ERR_NO_NETWORK, _("no network with matching name '%s'"), iface->data.network.name); goto error; } - netdef =3D network->def; + netdef =3D obj->def; =20 if (iface->data.network.actual && (netdef->forward.type =3D=3D VIR_NETWORK_FORWARD_NONE || netdef->forward.type =3D=3D VIR_NETWORK_FORWARD_NAT || netdef->forward.type =3D=3D VIR_NETWORK_FORWARD_ROUTE || netdef->forward.type =3D=3D VIR_NETWORK_FORWARD_OPEN) && - networkUnplugBandwidth(network, iface) < 0) + networkUnplugBandwidth(obj, iface) < 0) goto error; =20 if ((!iface->data.network.actual) || @@ -5091,20 +5085,20 @@ networkReleaseActualDevice(virDomainDefPtr dom, } =20 success: - networkMacMgrDel(driver, network, dom->name, &iface->mac); + networkMacMgrDel(driver, obj, dom->name, &iface->mac); =20 if (iface->data.network.actual) { netdef->connections--; if (dev) dev->connections--; /* finally we can call the 'unplugged' hook script if any */ - networkRunHook(network, dom, iface, VIR_HOOK_NETWORK_OP_IFACE_UNPL= UGGED, + networkRunHook(obj, dom, iface, VIR_HOOK_NETWORK_OP_IFACE_UNPLUGGE= D, VIR_HOOK_SUBOP_BEGIN); networkLogAllocation(netdef, actualType, dev, iface, false); } ret =3D 0; cleanup: - virNetworkObjEndAPI(&network); + virNetworkObjEndAPI(&obj); if (iface->type =3D=3D VIR_DOMAIN_NET_TYPE_NETWORK) { virDomainActualNetDefFree(iface->data.network.actual); iface->data.network.actual =3D NULL; @@ -5141,7 +5135,7 @@ networkGetNetworkAddress(const char *netname, { virNetworkDriverStatePtr driver =3D networkGetDriver(); int ret =3D -1; - virNetworkObjPtr network; + virNetworkObjPtr obj; virNetworkDefPtr netdef; virNetworkIPDefPtr ipdef; virSocketAddr addr; @@ -5149,14 +5143,14 @@ networkGetNetworkAddress(const char *netname, char *dev_name =3D NULL; =20 *netaddr =3D NULL; - network =3D virNetworkObjFindByName(driver->networks, netname); - if (!network) { + obj =3D virNetworkObjFindByName(driver->networks, netname); + if (!obj) { virReportError(VIR_ERR_NO_NETWORK, _("no network with matching name '%s'"), netname); goto cleanup; } - netdef =3D network->def; + netdef =3D obj->def; =20 switch (netdef->forward.type) { case VIR_NETWORK_FORWARD_NONE: @@ -5210,7 +5204,7 @@ networkGetNetworkAddress(const char *netname, =20 ret =3D 0; cleanup: - virNetworkObjEndAPI(&network); + virNetworkObjEndAPI(&obj); return ret; } =20 @@ -5228,7 +5222,7 @@ int networkGetActualType(virDomainNetDefPtr iface) { virNetworkDriverStatePtr driver =3D networkGetDriver(); - virNetworkObjPtr network =3D NULL; + virNetworkObjPtr obj =3D NULL; virNetworkDefPtr netdef =3D NULL; int ret =3D -1; =20 @@ -5238,14 +5232,14 @@ networkGetActualType(virDomainNetDefPtr iface) if (iface->data.network.actual) return iface->data.network.actual->type; =20 - network =3D virNetworkObjFindByName(driver->networks, iface->data.netw= ork.name); - if (!network) { + obj =3D virNetworkObjFindByName(driver->networks, iface->data.network.= name); + if (!obj) { virReportError(VIR_ERR_NO_NETWORK, _("no network with matching name '%s'"), iface->data.network.name); return -1; } - netdef =3D network->def; + netdef =3D obj->def; =20 if ((netdef->forward.type =3D=3D VIR_NETWORK_FORWARD_NONE) || (netdef->forward.type =3D=3D VIR_NETWORK_FORWARD_NAT) || @@ -5283,7 +5277,7 @@ networkGetActualType(virDomainNetDefPtr iface) =20 } =20 - virNetworkObjEndAPI(&network); + virNetworkObjEndAPI(&obj); return ret; } =20 @@ -5309,15 +5303,15 @@ networkGetActualType(virDomainNetDefPtr iface) * 1 if no QoS is set (@new_rate untouched) */ static int -networkCheckBandwidth(virNetworkObjPtr net, +networkCheckBandwidth(virNetworkObjPtr obj, virNetDevBandwidthPtr ifaceBand, virNetDevBandwidthPtr oldBandwidth, virMacAddr ifaceMac, unsigned long long *new_rate) { int ret =3D -1; - virNetDevBandwidthPtr netBand =3D net->def->bandwidth; - unsigned long long tmp_floor_sum =3D net->floor_sum; + virNetDevBandwidthPtr netBand =3D obj->def->bandwidth; + unsigned long long tmp_floor_sum =3D obj->floor_sum; unsigned long long tmp_new_rate =3D 0; char ifmac[VIR_MAC_STRING_BUFLEN]; =20 @@ -5328,7 +5322,7 @@ networkCheckBandwidth(virNetworkObjPtr net, virReportError(VIR_ERR_OPERATION_UNSUPPORTED, _("Invalid use of 'floor' on interface with MAC " "address %s - network '%s' has no inbound QoS set= "), - ifmac, net->def->name); + ifmac, obj->def->name); return -1; } =20 @@ -5353,8 +5347,8 @@ networkCheckBandwidth(virNetworkObjPtr net, _("Cannot plug '%s' interface into '%s' because= it " "would overcommit 'peak' on network '%s'"), ifmac, - net->def->bridge, - net->def->name); + obj->def->bridge, + obj->def->name); goto cleanup; } } else if (tmp_floor_sum > netBand->in->average) { @@ -5364,8 +5358,8 @@ networkCheckBandwidth(virNetworkObjPtr net, _("Cannot plug '%s' interface into '%s' because it " "would overcommit 'average' on network '%s'"), ifmac, - net->def->bridge, - net->def->name); + obj->def->bridge, + obj->def->name); goto cleanup; } =20 @@ -5389,13 +5383,13 @@ networkCheckBandwidth(virNetworkObjPtr net, * Returns next free class ID or -1 if none is available. */ static ssize_t -networkNextClassID(virNetworkObjPtr net) +networkNextClassID(virNetworkObjPtr obj) { ssize_t ret =3D 0; =20 - ret =3D virBitmapNextClearBit(net->class_id, -1); + ret =3D virBitmapNextClearBit(obj->class_id, -1); =20 - if (ret < 0 || virBitmapSetBit(net->class_id, ret) < 0) + if (ret < 0 || virBitmapSetBit(obj->class_id, ret) < 0) return -1; =20 return ret; @@ -5403,7 +5397,7 @@ networkNextClassID(virNetworkObjPtr net) =20 =20 static int -networkPlugBandwidthImpl(virNetworkObjPtr net, +networkPlugBandwidthImpl(virNetworkObjPtr obj, virDomainNetDefPtr iface, virNetDevBandwidthPtr ifaceBand, unsigned long long new_rate) @@ -5414,37 +5408,37 @@ networkPlugBandwidthImpl(virNetworkObjPtr net, int ret =3D -1; =20 /* generate new class_id */ - if ((class_id =3D networkNextClassID(net)) < 0) { + if ((class_id =3D networkNextClassID(obj)) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Could not generate next class ID")); goto cleanup; } =20 - plug_ret =3D virNetDevBandwidthPlug(net->def->bridge, net->def->bandwi= dth, + plug_ret =3D virNetDevBandwidthPlug(obj->def->bridge, obj->def->bandwi= dth, &iface->mac, ifaceBand, class_id); if (plug_ret < 0) { - ignore_value(virNetDevBandwidthUnplug(net->def->bridge, class_id)); + ignore_value(virNetDevBandwidthUnplug(obj->def->bridge, class_id)); goto cleanup; } =20 /* QoS was set, generate new class ID */ iface->data.network.actual->class_id =3D class_id; /* update sum of 'floor'-s of attached NICs */ - net->floor_sum +=3D ifaceBand->in->floor; + obj->floor_sum +=3D ifaceBand->in->floor; /* update status file */ - if (virNetworkObjSaveStatus(driver->stateDir, net) < 0) { - ignore_value(virBitmapClearBit(net->class_id, class_id)); - net->floor_sum -=3D ifaceBand->in->floor; + if (virNetworkObjSaveStatus(driver->stateDir, obj) < 0) { + ignore_value(virBitmapClearBit(obj->class_id, class_id)); + obj->floor_sum -=3D ifaceBand->in->floor; iface->data.network.actual->class_id =3D 0; - ignore_value(virNetDevBandwidthUnplug(net->def->bridge, class_id)); + ignore_value(virNetDevBandwidthUnplug(obj->def->bridge, class_id)); goto cleanup; } /* update rate for non guaranteed NICs */ - new_rate -=3D net->floor_sum; - if (virNetDevBandwidthUpdateRate(net->def->bridge, 2, - net->def->bandwidth, new_rate) < 0) + new_rate -=3D obj->floor_sum; + if (virNetDevBandwidthUpdateRate(obj->def->bridge, 2, + obj->def->bandwidth, new_rate) < 0) VIR_WARN("Unable to update rate for 1:2 class on %s bridge", - net->def->bridge); + obj->def->bridge); =20 ret =3D 0; cleanup: @@ -5453,7 +5447,7 @@ networkPlugBandwidthImpl(virNetworkObjPtr net, =20 =20 static int -networkPlugBandwidth(virNetworkObjPtr net, +networkPlugBandwidth(virNetworkObjPtr obj, virDomainNetDefPtr iface) { int ret =3D -1; @@ -5462,7 +5456,7 @@ networkPlugBandwidth(virNetworkObjPtr net, char ifmac[VIR_MAC_STRING_BUFLEN]; virNetDevBandwidthPtr ifaceBand =3D virDomainNetGetActualBandwidth(ifa= ce); =20 - if ((plug_ret =3D networkCheckBandwidth(net, ifaceBand, NULL, + if ((plug_ret =3D networkCheckBandwidth(obj, ifaceBand, NULL, iface->mac, &new_rate)) < 0) { /* helper reported error */ goto cleanup; @@ -5483,7 +5477,7 @@ networkPlugBandwidth(virNetworkObjPtr net, goto cleanup; } =20 - if (networkPlugBandwidthImpl(net, iface, ifaceBand, new_rate) < 0) + if (networkPlugBandwidthImpl(obj, iface, ifaceBand, new_rate) < 0) goto cleanup; =20 ret =3D 0; @@ -5494,7 +5488,7 @@ networkPlugBandwidth(virNetworkObjPtr net, =20 =20 static int -networkUnplugBandwidth(virNetworkObjPtr net, +networkUnplugBandwidth(virNetworkObjPtr obj, virDomainNetDefPtr iface) { virNetworkDriverStatePtr driver =3D networkGetDriver(); @@ -5504,39 +5498,39 @@ networkUnplugBandwidth(virNetworkObjPtr net, =20 if (iface->data.network.actual && iface->data.network.actual->class_id) { - if (!net->def->bandwidth || !net->def->bandwidth->in) { + if (!obj->def->bandwidth || !obj->def->bandwidth->in) { VIR_WARN("Network %s has no bandwidth but unplug requested", - net->def->name); + obj->def->name); goto cleanup; } /* we must remove class from bridge */ - new_rate =3D net->def->bandwidth->in->average; + new_rate =3D obj->def->bandwidth->in->average; =20 - if (net->def->bandwidth->in->peak > 0) - new_rate =3D net->def->bandwidth->in->peak; + if (obj->def->bandwidth->in->peak > 0) + new_rate =3D obj->def->bandwidth->in->peak; =20 - ret =3D virNetDevBandwidthUnplug(net->def->bridge, + ret =3D virNetDevBandwidthUnplug(obj->def->bridge, iface->data.network.actual->class_i= d); if (ret < 0) goto cleanup; /* update sum of 'floor'-s of attached NICs */ - net->floor_sum -=3D ifaceBand->in->floor; + obj->floor_sum -=3D ifaceBand->in->floor; /* return class ID */ - ignore_value(virBitmapClearBit(net->class_id, + ignore_value(virBitmapClearBit(obj->class_id, iface->data.network.actual->class_i= d)); /* update status file */ - if (virNetworkObjSaveStatus(driver->stateDir, net) < 0) { - net->floor_sum +=3D ifaceBand->in->floor; - ignore_value(virBitmapSetBit(net->class_id, + if (virNetworkObjSaveStatus(driver->stateDir, obj) < 0) { + obj->floor_sum +=3D ifaceBand->in->floor; + ignore_value(virBitmapSetBit(obj->class_id, iface->data.network.actual->class= _id)); goto cleanup; } /* update rate for non guaranteed NICs */ - new_rate -=3D net->floor_sum; - if (virNetDevBandwidthUpdateRate(net->def->bridge, 2, - net->def->bandwidth, new_rate) < = 0) + new_rate -=3D obj->floor_sum; + if (virNetDevBandwidthUpdateRate(obj->def->bridge, 2, + obj->def->bandwidth, new_rate) < = 0) VIR_WARN("Unable to update rate for 1:2 class on %s bridge", - net->def->bridge); + obj->def->bridge); /* no class is associated any longer */ iface->data.network.actual->class_id =3D 0; } @@ -5547,15 +5541,15 @@ networkUnplugBandwidth(virNetworkObjPtr net, =20 =20 static void -networkNetworkObjTaint(virNetworkObjPtr net, +networkNetworkObjTaint(virNetworkObjPtr obj, virNetworkTaintFlags taint) { - if (virNetworkObjTaint(net, taint)) { + if (virNetworkObjTaint(obj, taint)) { char uuidstr[VIR_UUID_STRING_BUFLEN]; - virUUIDFormat(net->def->uuid, uuidstr); + virUUIDFormat(obj->def->uuid, uuidstr); =20 VIR_WARN("Network name=3D'%s' uuid=3D%s is tainted: %s", - net->def->name, + obj->def->name, uuidstr, virNetworkTaintTypeToString(taint)); } @@ -5592,28 +5586,28 @@ networkBandwidthChangeAllowed(virDomainNetDefPtr if= ace, virNetDevBandwidthPtr newBandwidth) { virNetworkDriverStatePtr driver =3D networkGetDriver(); - virNetworkObjPtr network =3D NULL; + virNetworkObjPtr obj =3D NULL; virNetDevBandwidthPtr ifaceBand =3D virDomainNetGetActualBandwidth(ifa= ce); bool ret =3D false; =20 if (!networkBandwidthGenericChecks(iface, newBandwidth)) return true; =20 - network =3D virNetworkObjFindByName(driver->networks, iface->data.netw= ork.name); - if (!network) { + obj =3D virNetworkObjFindByName(driver->networks, iface->data.network.= name); + if (!obj) { virReportError(VIR_ERR_NO_NETWORK, _("no network with matching name '%s'"), iface->data.network.name); return false; } =20 - if (networkCheckBandwidth(network, newBandwidth, ifaceBand, iface->mac= , NULL) < 0) + if (networkCheckBandwidth(obj, newBandwidth, ifaceBand, iface->mac, NU= LL) < 0) goto cleanup; =20 ret =3D true; =20 cleanup: - virNetworkObjEndAPI(&network); + virNetworkObjEndAPI(&obj); return ret; } =20 @@ -5623,7 +5617,7 @@ networkBandwidthUpdate(virDomainNetDefPtr iface, virNetDevBandwidthPtr newBandwidth) { virNetworkDriverStatePtr driver =3D networkGetDriver(); - virNetworkObjPtr network =3D NULL; + virNetworkObjPtr obj =3D NULL; virNetDevBandwidthPtr ifaceBand =3D virDomainNetGetActualBandwidth(ifa= ce); unsigned long long new_rate =3D 0; int plug_ret; @@ -5632,15 +5626,15 @@ networkBandwidthUpdate(virDomainNetDefPtr iface, if (!networkBandwidthGenericChecks(iface, newBandwidth)) return 0; =20 - network =3D virNetworkObjFindByName(driver->networks, iface->data.netw= ork.name); - if (!network) { + obj =3D virNetworkObjFindByName(driver->networks, iface->data.network.= name); + if (!obj) { virReportError(VIR_ERR_NO_NETWORK, _("no network with matching name '%s'"), iface->data.network.name); return ret; } =20 - if ((plug_ret =3D networkCheckBandwidth(network, newBandwidth, ifaceBa= nd, + if ((plug_ret =3D networkCheckBandwidth(obj, newBandwidth, ifaceBand, iface->mac, &new_rate)) < 0) { /* helper reported error */ goto cleanup; @@ -5658,43 +5652,43 @@ networkBandwidthUpdate(virDomainNetDefPtr iface, newBandwidth->in && newBandwidth->in->floor) { /* Either we just need to update @floor .. */ =20 - if (virNetDevBandwidthUpdateRate(network->def->bridge, + if (virNetDevBandwidthUpdateRate(obj->def->bridge, iface->data.network.actual->class= _id, - network->def->bandwidth, + obj->def->bandwidth, newBandwidth->in->floor) < 0) goto cleanup; =20 - network->floor_sum -=3D ifaceBand->in->floor; - network->floor_sum +=3D newBandwidth->in->floor; - new_rate -=3D network->floor_sum; + obj->floor_sum -=3D ifaceBand->in->floor; + obj->floor_sum +=3D newBandwidth->in->floor; + new_rate -=3D obj->floor_sum; =20 - if (virNetDevBandwidthUpdateRate(network->def->bridge, 2, - network->def->bandwidth, new_rate= ) < 0 || - virNetworkObjSaveStatus(driver->stateDir, network) < 0) { + if (virNetDevBandwidthUpdateRate(obj->def->bridge, 2, + obj->def->bandwidth, new_rate) < = 0 || + virNetworkObjSaveStatus(driver->stateDir, obj) < 0) { /* Ouch, rollback */ - network->floor_sum -=3D newBandwidth->in->floor; - network->floor_sum +=3D ifaceBand->in->floor; + obj->floor_sum -=3D newBandwidth->in->floor; + obj->floor_sum +=3D ifaceBand->in->floor; =20 - ignore_value(virNetDevBandwidthUpdateRate(network->def->bridge, + ignore_value(virNetDevBandwidthUpdateRate(obj->def->bridge, iface->data.network.= actual->class_id, - network->def->bandwi= dth, + obj->def->bandwidth, ifaceBand->in->floor= )); goto cleanup; } } else if (newBandwidth->in && newBandwidth->in->floor) { /* .. or we need to plug in new .. */ =20 - if (networkPlugBandwidthImpl(network, iface, newBandwidth, new_rat= e) < 0) + if (networkPlugBandwidthImpl(obj, iface, newBandwidth, new_rate) <= 0) goto cleanup; } else { /* .. or unplug old. */ =20 - if (networkUnplugBandwidth(network, iface) < 0) + if (networkUnplugBandwidth(obj, iface) < 0) goto cleanup; } =20 ret =3D 0; cleanup: - virNetworkObjEndAPI(&network); + virNetworkObjEndAPI(&obj); return ret; } diff --git a/src/network/bridge_driver.h b/src/network/bridge_driver.h index 7832b60..6d9aece 100644 --- a/src/network/bridge_driver.h +++ b/src/network/bridge_driver.h @@ -31,37 +31,49 @@ # include "virdnsmasq.h" # include "virnetworkobj.h" =20 -int networkRegister(void); +int +networkRegister(void); =20 # if WITH_NETWORK -int networkAllocateActualDevice(virDomainDefPtr dom, - virDomainNetDefPtr iface) +int +networkAllocateActualDevice(virDomainDefPtr dom, + virDomainNetDefPtr iface) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); -void networkNotifyActualDevice(virDomainDefPtr dom, - virDomainNetDefPtr iface) + +void +networkNotifyActualDevice(virDomainDefPtr dom, + virDomainNetDefPtr iface) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); -int networkReleaseActualDevice(virDomainDefPtr dom, - virDomainNetDefPtr iface) + +int +networkReleaseActualDevice(virDomainDefPtr dom, + virDomainNetDefPtr iface) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); =20 -int networkGetNetworkAddress(const char *netname, char **netaddr) +int +networkGetNetworkAddress(const char *netname, + char **netaddr) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); =20 -int networkGetActualType(virDomainNetDefPtr iface) +int +networkGetActualType(virDomainNetDefPtr iface) ATTRIBUTE_NONNULL(1); =20 -int networkDnsmasqConfContents(virNetworkObjPtr network, - const char *pidfile, - char **configstr, - dnsmasqContext *dctx, - dnsmasqCapsPtr caps); +int +networkDnsmasqConfContents(virNetworkObjPtr obj, + const char *pidfile, + char **configstr, + dnsmasqContext *dctx, + dnsmasqCapsPtr caps); =20 -bool networkBandwidthChangeAllowed(virDomainNetDefPtr iface, - virNetDevBandwidthPtr newBandwidth) +bool +networkBandwidthChangeAllowed(virDomainNetDefPtr iface, + virNetDevBandwidthPtr newBandwidth) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); =20 -int networkBandwidthUpdate(virDomainNetDefPtr iface, - virNetDevBandwidthPtr newBandwidth) +int +networkBandwidthUpdate(virDomainNetDefPtr iface, + virNetDevBandwidthPtr newBandwidth) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); =20 # else @@ -80,7 +92,7 @@ networkNotifyActualDevice(virDomainDefPtr dom ATTRIBUTE_U= NUSED, =20 static inline int networkReleaseActualDevice(virDomainDefPtr dom ATTRIBUTE_UNUSED, - virDomainNetDefPtr iface ATTRIBUTE_UNUSED) + virDomainNetDefPtr iface ATTRIBUTE_UNUSED) { return 0; } --=20 2.9.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri May 3 20:47:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 149519902472154.78676817712778; Fri, 19 May 2017 06:03:44 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id AD70D61BA6; Fri, 19 May 2017 13:03:41 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 58D785C546; Fri, 19 May 2017 13:03:40 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id CCF81180BAF1; Fri, 19 May 2017 13:03:38 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v4JD3b3I003783 for ; Fri, 19 May 2017 09:03:37 -0400 Received: by smtp.corp.redhat.com (Postfix) id 5070F18C60; Fri, 19 May 2017 13:03:37 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-116-18.phx2.redhat.com [10.3.116.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0E29718C5D for ; Fri, 19 May 2017 13:03:36 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com AD70D61BA6 Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com AD70D61BA6 From: John Ferlan To: libvir-list@redhat.com Date: Fri, 19 May 2017 09:03:13 -0400 Message-Id: <20170519130324.4624-6-jferlan@redhat.com> In-Reply-To: <20170519130324.4624-1-jferlan@redhat.com> References: <20170519130324.4624-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 05/16] network: Move macmap mgmt from bridge_driver to virnetworkobj X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Fri, 19 May 2017 13:03:42 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" In preparation for having a private virNetworkObj - let's create/move some API's that handle the obj->macmap. The API's will be renamed to have a virNetworkObj prefix to follow conventions and the arguments slightly modified to accept what's necessary to complete their task. Signed-off-by: John Ferlan --- src/conf/virnetworkobj.c | 97 ++++++++++++++++++++++++++++++++++++++++= ++ src/conf/virnetworkobj.h | 26 ++++++++++++ src/libvirt_private.syms | 6 +++ src/network/bridge_driver.c | 101 ++++++++--------------------------------= ---- 4 files changed, 147 insertions(+), 83 deletions(-) diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c index 88e42b5..562fb91 100644 --- a/src/conf/virnetworkobj.c +++ b/src/conf/virnetworkobj.c @@ -107,6 +107,103 @@ virNetworkObjEndAPI(virNetworkObjPtr *net) } =20 =20 +virMacMapPtr +virNetworkObjGetMacMap(virNetworkObjPtr obj) +{ + return obj->macmap; +} + + +void +virNetworkObjSetMacMap(virNetworkObjPtr obj, + virMacMapPtr macmap) +{ + obj->macmap =3D macmap; +} + + +void +virNetworkObjUnrefMacMap(virNetworkObjPtr obj) +{ + if (!virObjectUnref(obj->macmap)) + obj->macmap =3D NULL; +} + + +char * +virNetworkObjMacMgrFileName(const char *dnsmasqStateDir, + const char *bridge) +{ + char *filename; + + ignore_value(virAsprintf(&filename, "%s/%s.macs", dnsmasqStateDir, bri= dge)); + + return filename; +} + + +int +virNetworkObjMacMgrAdd(virNetworkObjPtr obj, + const char *dnsmasqStateDir, + const char *domain, + const virMacAddr *mac) +{ + char macStr[VIR_MAC_STRING_BUFLEN]; + char *file =3D NULL; + int ret =3D -1; + + if (!obj->macmap) + return 0; + + virMacAddrFormat(mac, macStr); + + if (!(file =3D virNetworkObjMacMgrFileName(dnsmasqStateDir, obj->def->= bridge))) + goto cleanup; + + if (virMacMapAdd(obj->macmap, domain, macStr) < 0) + goto cleanup; + + if (virMacMapWriteFile(obj->macmap, file) < 0) + goto cleanup; + + ret =3D 0; + cleanup: + VIR_FREE(file); + return ret; +} + + +int +virNetworkObjMacMgrDel(virNetworkObjPtr obj, + const char *dnsmasqStateDir, + const char *domain, + const virMacAddr *mac) +{ + char macStr[VIR_MAC_STRING_BUFLEN]; + char *file =3D NULL; + int ret =3D -1; + + if (!obj->macmap) + return 0; + + virMacAddrFormat(mac, macStr); + + if (!(file =3D virNetworkObjMacMgrFileName(dnsmasqStateDir, obj->def->= bridge))) + goto cleanup; + + if (virMacMapRemove(obj->macmap, domain, macStr) < 0) + goto cleanup; + + if (virMacMapWriteFile(obj->macmap, file) < 0) + goto cleanup; + + ret =3D 0; + cleanup: + VIR_FREE(file); + return ret; +} + + virNetworkObjListPtr virNetworkObjListNew(void) { diff --git a/src/conf/virnetworkobj.h b/src/conf/virnetworkobj.h index 8090c2e..da12848 100644 --- a/src/conf/virnetworkobj.h +++ b/src/conf/virnetworkobj.h @@ -50,6 +50,32 @@ struct _virNetworkObj { virNetworkObjPtr virNetworkObjNew(void); =20 +virMacMapPtr +virNetworkObjGetMacMap(virNetworkObjPtr obj); + +void +virNetworkObjSetMacMap(virNetworkObjPtr obj, + virMacMapPtr macmap); + +void +virNetworkObjUnrefMacMap(virNetworkObjPtr obj); + +char * +virNetworkObjMacMgrFileName(const char *dnsmasqStateDir, + const char *bridge); + +int +virNetworkObjMacMgrAdd(virNetworkObjPtr obj, + const char *dnsmasqStateDir, + const char *domain, + const virMacAddr *mac); + +int +virNetworkObjMacMgrDel(virNetworkObjPtr obj, + const char *dnsmasqStateDir, + const char *domain, + const virMacAddr *mac); + void virNetworkObjEndAPI(virNetworkObjPtr *net); =20 diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index d361454..1907afe 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -931,6 +931,7 @@ virNetworkObjFindByName; virNetworkObjFindByNameLocked; virNetworkObjFindByUUID; virNetworkObjFindByUUIDLocked; +virNetworkObjGetMacMap; virNetworkObjGetPersistentDef; virNetworkObjListExport; virNetworkObjListForEach; @@ -940,12 +941,17 @@ virNetworkObjListNumOfNetworks; virNetworkObjListPrune; virNetworkObjLoadAllConfigs; virNetworkObjLoadAllState; +virNetworkObjMacMgrAdd; +virNetworkObjMacMgrDel; +virNetworkObjMacMgrFileName; virNetworkObjNew; virNetworkObjRemoveInactive; virNetworkObjReplacePersistentDef; virNetworkObjSaveStatus; virNetworkObjSetDefTransient; +virNetworkObjSetMacMap; virNetworkObjTaint; +virNetworkObjUnrefMacMap; virNetworkObjUnsetDefTransient; virNetworkObjUpdate; virNetworkObjUpdateAssignDef; diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index d888391..d8d3782 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -322,18 +322,6 @@ networkRadvdConfigFileName(virNetworkDriverStatePtr dr= iver, } =20 =20 -static char * -networkMacMgrFileName(virNetworkDriverStatePtr driver, - const char *bridge) -{ - char *filename; - - ignore_value(virAsprintf(&filename, "%s/%s.macs", - driver->dnsmasqStateDir, bridge)); - return filename; -} - - /* do needed cleanup steps and remove the network from the list */ static int networkRemoveInactive(virNetworkDriverStatePtr driver, @@ -375,7 +363,8 @@ networkRemoveInactive(virNetworkDriverStatePtr driver, if (!(statusfile =3D virNetworkConfigFile(driver->stateDir, def->name)= )) goto cleanup; =20 - if (!(macMapFile =3D networkMacMgrFileName(driver, def->bridge))) + if (!(macMapFile =3D virNetworkObjMacMgrFileName(driver->dnsmasqStateD= ir, + def->bridge))) goto cleanup; =20 /* dnsmasq */ @@ -412,68 +401,6 @@ networkRemoveInactive(virNetworkDriverStatePtr driver, } =20 =20 -static int -networkMacMgrAdd(virNetworkDriverStatePtr driver, - virNetworkObjPtr obj, - const char *domain, - const virMacAddr *mac) -{ - char macStr[VIR_MAC_STRING_BUFLEN]; - char *file =3D NULL; - int ret =3D -1; - - if (!obj->macmap) - return 0; - - virMacAddrFormat(mac, macStr); - - if (!(file =3D networkMacMgrFileName(driver, obj->def->bridge))) - goto cleanup; - - if (virMacMapAdd(obj->macmap, domain, macStr) < 0) - goto cleanup; - - if (virMacMapWriteFile(obj->macmap, file) < 0) - goto cleanup; - - ret =3D 0; - cleanup: - VIR_FREE(file); - return ret; -} - - -static int -networkMacMgrDel(virNetworkDriverStatePtr driver, - virNetworkObjPtr obj, - const char *domain, - const virMacAddr *mac) -{ - char macStr[VIR_MAC_STRING_BUFLEN]; - char *file =3D NULL; - int ret =3D -1; - - if (!obj->macmap) - return 0; - - virMacAddrFormat(mac, macStr); - - if (!(file =3D networkMacMgrFileName(driver, obj->def->bridge))) - goto cleanup; - - if (virMacMapRemove(obj->macmap, domain, macStr) < 0) - goto cleanup; - - if (virMacMapWriteFile(obj->macmap, file) < 0) - goto cleanup; - - ret =3D 0; - cleanup: - VIR_FREE(file); - return ret; -} - - static char * networkBridgeDummyNicName(const char *brname) { @@ -505,6 +432,7 @@ networkUpdateState(virNetworkObjPtr obj, { virNetworkDriverStatePtr driver =3D opaque; dnsmasqCapsPtr dnsmasq_caps =3D networkGetDnsmasqCaps(driver); + virMacMapPtr macmap; char *macMapFile =3D NULL; int ret =3D -1; =20 @@ -523,12 +451,15 @@ networkUpdateState(virNetworkObjPtr obj, if (!(obj->def->bridge && virNetDevExists(obj->def->bridge) =3D=3D= 1)) obj->active =3D 0; =20 - if (!(macMapFile =3D networkMacMgrFileName(driver, obj->def->bridg= e))) + if (!(macMapFile =3D virNetworkObjMacMgrFileName(driver->dnsmasqSt= ateDir, + obj->def->bridge))) goto cleanup; =20 - if (!(obj->macmap =3D virMacMapNew(macMapFile))) + if (!(macmap =3D virMacMapNew(macMapFile))) goto cleanup; =20 + virNetworkObjSetMacMap(obj, macmap); + break; =20 case VIR_NETWORK_FORWARD_BRIDGE: @@ -2332,6 +2263,7 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr d= river, virNetworkIPDefPtr ipdef; virNetDevIPRoutePtr routedef; char *macTapIfName =3D NULL; + virMacMapPtr macmap; char *macMapFile =3D NULL; int tapfd =3D -1; =20 @@ -2380,10 +2312,13 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr= driver, } } =20 - if (!(macMapFile =3D networkMacMgrFileName(driver, obj->def->bridge)) = || - !(obj->macmap =3D virMacMapNew(macMapFile))) + if (!(macMapFile =3D virNetworkObjMacMgrFileName(driver->dnsmasqStateD= ir, + obj->def->bridge)) || + !(macmap =3D virMacMapNew(macMapFile))) goto err1; =20 + virNetworkObjSetMacMap(obj, macmap); + /* Set bridge options */ =20 /* delay is configured in seconds, but virNetDevBridgeSetSTPDelay @@ -2546,8 +2481,7 @@ networkShutdownNetworkVirtual(virNetworkDriverStatePt= r driver, if (obj->def->bandwidth) virNetDevBandwidthClear(obj->def->bridge); =20 - if (!virObjectUnref(obj->macmap)) - obj->macmap =3D NULL; + virNetworkObjUnrefMacMap(obj); =20 if (obj->radvdPid > 0) { char *radvdpidbase; @@ -4663,7 +4597,8 @@ networkAllocateActualDevice(virDomainDefPtr dom, } } =20 - if (networkMacMgrAdd(driver, obj, dom->name, &iface->mac) < 0) + if (virNetworkObjMacMgrAdd(obj, driver->dnsmasqStateDir, + dom->name, &iface->mac) < 0) goto error; =20 if (virNetDevVPortProfileCheckComplete(virtport, true) < 0) @@ -5085,7 +5020,7 @@ networkReleaseActualDevice(virDomainDefPtr dom, } =20 success: - networkMacMgrDel(driver, obj, dom->name, &iface->mac); + virNetworkObjMacMgrDel(obj, driver->dnsmasqStateDir, dom->name, &iface= ->mac); =20 if (iface->data.network.actual) { netdef->connections--; --=20 2.9.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri May 3 20:47:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1495199035447498.5591959841215; Fri, 19 May 2017 06:03:55 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id EA993624B1; Fri, 19 May 2017 13:03:51 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id B56D05C663; Fri, 19 May 2017 13:03:51 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 683C4180BAF5; Fri, 19 May 2017 13:03:51 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v4JD3cEH003790 for ; Fri, 19 May 2017 09:03:38 -0400 Received: by smtp.corp.redhat.com (Postfix) id 19A3518C50; Fri, 19 May 2017 13:03:38 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-116-18.phx2.redhat.com [10.3.116.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id 823E118C5D for ; Fri, 19 May 2017 13:03:37 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com EA993624B1 Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com EA993624B1 From: John Ferlan To: libvir-list@redhat.com Date: Fri, 19 May 2017 09:03:14 -0400 Message-Id: <20170519130324.4624-7-jferlan@redhat.com> In-Reply-To: <20170519130324.4624-1-jferlan@redhat.com> References: <20170519130324.4624-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 06/16] network: Add virNetworkObj Get/Set API's for @dnsmasqPid and @radvdPid X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Fri, 19 May 2017 13:03:52 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" In preparation for making the object private, create/use a couple of API's to get/set the obj->dnsmasqPid and obj->radvdPid. NB: Since the pid's can sometimes changed based on intervening functions, be sure to always fetch the latest value. Signed-off-by: John Ferlan --- src/conf/virnetworkobj.c | 30 ++++++++++++++ src/conf/virnetworkobj.h | 14 +++++++ src/libvirt_private.syms | 4 ++ src/network/bridge_driver.c | 96 ++++++++++++++++++++++++++++-------------= ---- 4 files changed, 109 insertions(+), 35 deletions(-) diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c index 562fb91..e44684a 100644 --- a/src/conf/virnetworkobj.c +++ b/src/conf/virnetworkobj.c @@ -107,6 +107,36 @@ virNetworkObjEndAPI(virNetworkObjPtr *net) } =20 =20 +pid_t +virNetworkObjGetDnsmasqPid(virNetworkObjPtr obj) +{ + return obj->dnsmasqPid; +} + + +void +virNetworkObjSetDnsmasqPid(virNetworkObjPtr obj, + pid_t dnsmasqPid) +{ + obj->dnsmasqPid =3D dnsmasqPid; +} + + +pid_t +virNetworkObjGetRadvdPid(virNetworkObjPtr obj) +{ + return obj->radvdPid; +} + + +void +virNetworkObjSetRadvdPid(virNetworkObjPtr obj, + pid_t radvdPid) +{ + obj->radvdPid =3D radvdPid; +} + + virMacMapPtr virNetworkObjGetMacMap(virNetworkObjPtr obj) { diff --git a/src/conf/virnetworkobj.h b/src/conf/virnetworkobj.h index da12848..9323692 100644 --- a/src/conf/virnetworkobj.h +++ b/src/conf/virnetworkobj.h @@ -53,6 +53,20 @@ virNetworkObjNew(void); virMacMapPtr virNetworkObjGetMacMap(virNetworkObjPtr obj); =20 +pid_t +virNetworkObjGetDnsmasqPid(virNetworkObjPtr obj); + +void +virNetworkObjSetDnsmasqPid(virNetworkObjPtr obj, + pid_t dnsmasqPid); + +pid_t +virNetworkObjGetRadvdPid(virNetworkObjPtr obj); + +void +virNetworkObjSetRadvdPid(virNetworkObjPtr obj, + pid_t radvdPid); + void virNetworkObjSetMacMap(virNetworkObjPtr obj, virMacMapPtr macmap); diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 1907afe..56b969c 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -931,8 +931,10 @@ virNetworkObjFindByName; virNetworkObjFindByNameLocked; virNetworkObjFindByUUID; virNetworkObjFindByUUIDLocked; +virNetworkObjGetDnsmasqPid; virNetworkObjGetMacMap; virNetworkObjGetPersistentDef; +virNetworkObjGetRadvdPid; virNetworkObjListExport; virNetworkObjListForEach; virNetworkObjListGetNames; @@ -949,7 +951,9 @@ virNetworkObjRemoveInactive; virNetworkObjReplacePersistentDef; virNetworkObjSaveStatus; virNetworkObjSetDefTransient; +virNetworkObjSetDnsmasqPid; virNetworkObjSetMacMap; +virNetworkObjSetRadvdPid; virNetworkObjTaint; virNetworkObjUnrefMacMap; virNetworkObjUnsetDefTransient; diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index d8d3782..31a3d40 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -485,12 +485,15 @@ networkUpdateState(virNetworkObjPtr obj, =20 /* Try and read dnsmasq/radvd pids of active networks */ if (obj->active && obj->def->ips && (obj->def->nips > 0)) { + pid_t radvdPid; + pid_t dnsmasqPid; char *radvdpidbase; =20 ignore_value(virPidFileReadIfAlive(driver->pidDir, obj->def->name, - &obj->dnsmasqPid, + &dnsmasqPid, dnsmasqCapsGetBinaryPath(dnsmas= q_caps))); + virNetworkObjSetDnsmasqPid(obj, dnsmasqPid); =20 radvdpidbase =3D networkRadvdPidfileBasename(obj->def->name); if (!radvdpidbase) @@ -498,7 +501,8 @@ networkUpdateState(virNetworkObjPtr obj, =20 ignore_value(virPidFileReadIfAlive(driver->pidDir, radvdpidbase, - &obj->radvdPid, RADVD)); + &radvdPid, RADVD)); + virNetworkObjSetRadvdPid(obj, radvdPid); VIR_FREE(radvdpidbase); } =20 @@ -1481,7 +1485,7 @@ networkBuildDhcpDaemonCommandLine(virNetworkDriverSta= tePtr driver, char *configstr =3D NULL; char *leaseshelper_path =3D NULL; =20 - obj->dnsmasqPid =3D -1; + virNetworkObjSetDnsmasqPid(obj, -1); =20 if (networkDnsmasqConfContents(obj, pidfile, &configstr, dctx, dnsmasq_caps) < 0) @@ -1534,6 +1538,7 @@ networkStartDhcpDaemon(virNetworkDriverStatePtr drive= r, bool needDnsmasq =3D false; virCommandPtr cmd =3D NULL; char *pidfile =3D NULL; + pid_t dnsmasqPid; int ret =3D -1; dnsmasqContext *dctx =3D NULL; =20 @@ -1602,9 +1607,10 @@ networkStartDhcpDaemon(virNetworkDriverStatePtr driv= er, * pid */ =20 - ret =3D virPidFileRead(driver->pidDir, obj->def->name, &obj->dnsmasqPi= d); + ret =3D virPidFileRead(driver->pidDir, obj->def->name, &dnsmasqPid); if (ret < 0) goto cleanup; + virNetworkObjSetDnsmasqPid(obj, dnsmasqPid); =20 ret =3D 0; cleanup: @@ -1628,6 +1634,7 @@ networkRefreshDhcpDaemon(virNetworkDriverStatePtr dri= ver, { int ret =3D -1; size_t i; + pid_t dnsmasqPid; virNetworkIPDefPtr ipdef, ipv4def, ipv6def; dnsmasqContext *dctx =3D NULL; =20 @@ -1636,7 +1643,8 @@ networkRefreshDhcpDaemon(virNetworkDriverStatePtr dri= ver, return 0; =20 /* if there's no running dnsmasq, just start it */ - if (obj->dnsmasqPid <=3D 0 || (kill(obj->dnsmasqPid, 0) < 0)) + dnsmasqPid =3D virNetworkObjGetDnsmasqPid(obj); + if (dnsmasqPid <=3D 0 || (kill(dnsmasqPid, 0) < 0)) return networkStartDhcpDaemon(driver, obj); =20 VIR_INFO("Refreshing dnsmasq for network %s", obj->def->bridge); @@ -1677,7 +1685,8 @@ networkRefreshDhcpDaemon(virNetworkDriverStatePtr dri= ver, if ((ret =3D dnsmasqSave(dctx)) < 0) goto cleanup; =20 - ret =3D kill(obj->dnsmasqPid, SIGHUP); + dnsmasqPid =3D virNetworkObjGetDnsmasqPid(obj); + ret =3D kill(dnsmasqPid, SIGHUP); cleanup: dnsmasqContextFree(dctx); return ret; @@ -1695,10 +1704,12 @@ static int networkRestartDhcpDaemon(virNetworkDriverStatePtr driver, virNetworkObjPtr obj) { + pid_t dnsmasqPid =3D virNetworkObjGetDnsmasqPid(obj); + /* if there is a running dnsmasq, kill it */ - if (obj->dnsmasqPid > 0) { - networkKillDaemon(obj->dnsmasqPid, "dnsmasq", obj->def->name); - obj->dnsmasqPid =3D -1; + if (dnsmasqPid > 0) { + networkKillDaemon(dnsmasqPid, "dnsmasq", obj->def->name); + virNetworkObjSetDnsmasqPid(obj, -1); } /* now start dnsmasq if it should be started */ return networkStartDhcpDaemon(driver, obj); @@ -1838,13 +1849,14 @@ networkStartRadvd(virNetworkDriverStatePtr driver, virNetworkObjPtr obj) { dnsmasqCapsPtr dnsmasq_caps =3D networkGetDnsmasqCaps(driver); + pid_t radvdPid; char *pidfile =3D NULL; char *radvdpidbase =3D NULL; char *configfile =3D NULL; virCommandPtr cmd =3D NULL; int ret =3D -1; =20 - obj->radvdPid =3D -1; + virNetworkObjSetRadvdPid(obj, -1); =20 /* Is dnsmasq handling RA? */ if (DNSMASQ_RA_SUPPORT(dnsmasq_caps)) { @@ -1908,8 +1920,9 @@ networkStartRadvd(virNetworkDriverStatePtr driver, if (virCommandRun(cmd, NULL) < 0) goto cleanup; =20 - if (virPidFileRead(driver->pidDir, radvdpidbase, &obj->radvdPid) < 0) + if (virPidFileRead(driver->pidDir, radvdpidbase, &radvdPid) < 0) goto cleanup; + virNetworkObjSetRadvdPid(obj, radvdPid); =20 ret =3D 0; cleanup: @@ -1928,26 +1941,29 @@ networkRefreshRadvd(virNetworkDriverStatePtr driver, { dnsmasqCapsPtr dnsmasq_caps =3D networkGetDnsmasqCaps(driver); char *radvdpidbase; + pid_t radvdPid; =20 /* Is dnsmasq handling RA? */ if (DNSMASQ_RA_SUPPORT(dnsmasq_caps)) { virObjectUnref(dnsmasq_caps); - if (obj->radvdPid <=3D 0) + radvdPid =3D virNetworkObjGetRadvdPid(obj); + if (radvdPid <=3D 0) return 0; /* radvd should not be running but in case it is */ - if ((networkKillDaemon(obj->radvdPid, "radvd", obj->def->name) >= =3D 0) && + if ((networkKillDaemon(radvdPid, "radvd", obj->def->name) >=3D 0) = && ((radvdpidbase =3D networkRadvdPidfileBasename(obj->def->name)) !=3D NULL)) { virPidFileDelete(driver->pidDir, radvdpidbase); VIR_FREE(radvdpidbase); } - obj->radvdPid =3D -1; + virNetworkObjSetRadvdPid(obj, -1); return 0; } virObjectUnref(dnsmasq_caps); =20 /* if there's no running radvd, just start it */ - if (obj->radvdPid <=3D 0 || (kill(obj->radvdPid, 0) < 0)) + radvdPid =3D virNetworkObjGetRadvdPid(obj); + if (radvdPid <=3D 0 || (kill(radvdPid, 0) < 0)) return networkStartRadvd(driver, obj); =20 if (!virNetworkDefGetIPByIndex(obj->def, AF_INET6, 0)) { @@ -1958,7 +1974,7 @@ networkRefreshRadvd(virNetworkDriverStatePtr driver, if (networkRadvdConfWrite(driver, obj, NULL) < 0) return -1; =20 - return kill(obj->radvdPid, SIGHUP); + return kill(radvdPid, SIGHUP); } =20 =20 @@ -1968,21 +1984,22 @@ static int networkRestartRadvd(virNetworkObjPtr obj) { char *radvdpidbase; + pid_t radvdPid =3D virNeworkObjGetRadvdPid(obj); =20 /* if there is a running radvd, kill it */ - if (obj->radvdPid > 0) { + if (radvdPid > 0) { /* essentially ignore errors from the following two functions, * since there's really no better recovery to be done than to * just push ahead (and that may be exactly what's needed). */ - if ((networkKillDaemon(obj->radvdPid, "radvd", + if ((networkKillDaemon(radvdPid, "radvd", obj->def->name) >=3D 0) && ((radvdpidbase =3D networkRadvdPidfileBasename(obj->def->name)) !=3D NULL)) { virPidFileDelete(driver->pidDir, radvdpidbase); VIR_FREE(radvdpidbase); } - obj->radvdPid =3D -1; + virNetworkObjSetRadvdPid(obj, -1); } /* now start radvd if it should be started */ return networkStartRadvd(obj); @@ -2266,6 +2283,7 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr d= river, virMacMapPtr macmap; char *macMapFile =3D NULL; int tapfd =3D -1; + pid_t dnsmasqPid; =20 /* Check to see if any network IP collides with an existing route */ if (networkCheckRouteCollision(obj->def) < 0) @@ -2433,9 +2451,10 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr = driver, if (!save_err) save_err =3D virSaveLastError(); =20 - if (obj->dnsmasqPid > 0) { - kill(obj->dnsmasqPid, SIGTERM); - obj->dnsmasqPid =3D -1; + dnsmasqPid =3D virNetworkObjGetDnsmasqPid(obj); + if (dnsmasqPid > 0) { + kill(dnsmasqPid, SIGTERM); + virNetworkObjSetDnsmasqPid(obj, -1); } =20 err3: @@ -2478,15 +2497,19 @@ static int networkShutdownNetworkVirtual(virNetworkDriverStatePtr driver, virNetworkObjPtr obj) { + pid_t radvdPid; + pid_t dnsmasqPid; + if (obj->def->bandwidth) virNetDevBandwidthClear(obj->def->bridge); =20 virNetworkObjUnrefMacMap(obj); =20 - if (obj->radvdPid > 0) { + radvdPid =3D virNetworkObjGetRadvdPid(obj); + if (radvdPid > 0) { char *radvdpidbase; =20 - kill(obj->radvdPid, SIGTERM); + kill(radvdPid, SIGTERM); /* attempt to delete the pidfile we created */ if ((radvdpidbase =3D networkRadvdPidfileBasename(obj->def->name))= ) { virPidFileDelete(driver->pidDir, radvdpidbase); @@ -2494,8 +2517,9 @@ networkShutdownNetworkVirtual(virNetworkDriverStatePt= r driver, } } =20 - if (obj->dnsmasqPid > 0) - kill(obj->dnsmasqPid, SIGTERM); + dnsmasqPid =3D virNetworkObjGetDnsmasqPid(obj); + if (dnsmasqPid > 0) + kill(dnsmasqPid, SIGTERM); =20 if (obj->def->mac_specified) { char *macTapIfName =3D networkBridgeDummyNicName(obj->def->bridge); @@ -2513,15 +2537,17 @@ networkShutdownNetworkVirtual(virNetworkDriverState= Ptr driver, ignore_value(virNetDevBridgeDelete(obj->def->bridge)); =20 /* See if its still alive and really really kill it */ - if (obj->dnsmasqPid > 0 && - (kill(obj->dnsmasqPid, 0) =3D=3D 0)) - kill(obj->dnsmasqPid, SIGKILL); - obj->dnsmasqPid =3D -1; - - if (obj->radvdPid > 0 && - (kill(obj->radvdPid, 0) =3D=3D 0)) - kill(obj->radvdPid, SIGKILL); - obj->radvdPid =3D -1; + dnsmasqPid =3D virNetworkObjGetDnsmasqPid(obj); + if (dnsmasqPid > 0 && + (kill(dnsmasqPid, 0) =3D=3D 0)) + kill(dnsmasqPid, SIGKILL); + virNetworkObjSetDnsmasqPid(obj, -1); + + radvdPid =3D virNetworkObjGetRadvdPid(obj); + if (radvdPid > 0 && + (kill(radvdPid, 0) =3D=3D 0)) + kill(radvdPid, SIGKILL); + virNetworkObjSetRadvdPid(obj, -1); =20 return 0; } --=20 2.9.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri May 3 20:47:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1495199089819442.4472189337753; Fri, 19 May 2017 06:04:49 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 4A5F980C07; Fri, 19 May 2017 13:04:44 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 234785C546; Fri, 19 May 2017 13:04:44 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id C73844BB7F; Fri, 19 May 2017 13:04:43 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v4JD3c4A003796 for ; Fri, 19 May 2017 09:03:38 -0400 Received: by smtp.corp.redhat.com (Postfix) id 8327D18C5D; Fri, 19 May 2017 13:03:38 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-116-18.phx2.redhat.com [10.3.116.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id 40E4218C50 for ; Fri, 19 May 2017 13:03:38 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 4A5F980C07 Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 4A5F980C07 From: John Ferlan To: libvir-list@redhat.com Date: Fri, 19 May 2017 09:03:15 -0400 Message-Id: <20170519130324.4624-8-jferlan@redhat.com> In-Reply-To: <20170519130324.4624-1-jferlan@redhat.com> References: <20170519130324.4624-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 07/16] network: Alter virNetworkObj @class_id to be @classIdMap X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Fri, 19 May 2017 13:04:45 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Change the variable name to be a bit more descriptive and less confusing when used with the data.network.actual->class_id. In preparation for privatizing virNetworkObj, create accessor function to fetch the @classIdMap. Signed-off-by: John Ferlan --- src/conf/virnetworkobj.c | 46 ++++++++++++++++++++++++++---------------= ---- src/conf/virnetworkobj.h | 5 ++++- src/libvirt_private.syms | 1 + src/network/bridge_driver.c | 13 ++++++++----- 4 files changed, 40 insertions(+), 25 deletions(-) diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c index e44684a..991916a 100644 --- a/src/conf/virnetworkobj.c +++ b/src/conf/virnetworkobj.c @@ -79,13 +79,13 @@ virNetworkObjNew(void) if (!(net =3D virObjectLockableNew(virNetworkObjClass))) return NULL; =20 - if (!(net->class_id =3D virBitmapNew(CLASS_ID_BITMAP_SIZE))) + if (!(net->classIdMap =3D virBitmapNew(CLASS_ID_BITMAP_SIZE))) goto error; =20 /* The first three class IDs are already taken */ - ignore_value(virBitmapSetBit(net->class_id, 0)); - ignore_value(virBitmapSetBit(net->class_id, 1)); - ignore_value(virBitmapSetBit(net->class_id, 2)); + ignore_value(virBitmapSetBit(net->classIdMap, 0)); + ignore_value(virBitmapSetBit(net->classIdMap, 1)); + ignore_value(virBitmapSetBit(net->classIdMap, 2)); =20 return net; =20 @@ -137,6 +137,13 @@ virNetworkObjSetRadvdPid(virNetworkObjPtr obj, } =20 =20 +virBitmapPtr +virNetworkObjGetClassIdMap(virNetworkObjPtr obj) +{ + return obj->classIdMap; +} + + virMacMapPtr virNetworkObjGetMacMap(virNetworkObjPtr obj) { @@ -388,7 +395,7 @@ virNetworkObjDispose(void *obj) =20 virNetworkDefFree(net->def); virNetworkDefFree(net->newDef); - virBitmapFree(net->class_id); + virBitmapFree(net->classIdMap); virObjectUnref(net->macmap); } =20 @@ -728,17 +735,17 @@ virNetworkObjFormat(virNetworkObjPtr net, unsigned int flags) { virBuffer buf =3D VIR_BUFFER_INITIALIZER; - char *class_id =3D virBitmapFormat(net->class_id); + char *classIdStr =3D virBitmapFormat(net->classIdMap); size_t i; =20 - if (!class_id) + if (!classIdStr) goto error; =20 virBufferAddLit(&buf, "\n"); virBufferAdjustIndent(&buf, 2); - virBufferAsprintf(&buf, "\n", class_id); + virBufferAsprintf(&buf, "\n", classIdStr); virBufferAsprintf(&buf, "\n", net->floor_sum); - VIR_FREE(class_id); + VIR_FREE(classIdStr); =20 for (i =3D 0; i < VIR_NETWORK_TAINT_LAST; i++) { if (net->taint & (1 << i)) @@ -795,7 +802,7 @@ virNetworkLoadState(virNetworkObjListPtr nets, xmlDocPtr xml =3D NULL; xmlNodePtr node =3D NULL, *nodes =3D NULL; xmlXPathContextPtr ctxt =3D NULL; - virBitmapPtr class_id_map =3D NULL; + virBitmapPtr classIdMap =3D NULL; unsigned long long floor_sum_val =3D 0; unsigned int taint =3D 0; int n; @@ -832,18 +839,19 @@ virNetworkLoadState(virNetworkObjListPtr nets, if (xmlStrEqual(node->name, BAD_CAST "networkstatus")) { /* Newer network status file. Contains useful * info which are not to be found in bare config XML */ - char *class_id =3D NULL; + char *classIdStr =3D NULL; char *floor_sum =3D NULL; =20 ctxt->node =3D node; - if ((class_id =3D virXPathString("string(./class_id[1]/@bitmap)", = ctxt))) { - if (virBitmapParse(class_id, &class_id_map, + if ((classIdStr =3D virXPathString("string(./class_id[1]/@bitmap)", + ctxt))) { + if (virBitmapParse(classIdStr, &classIdMap, CLASS_ID_BITMAP_SIZE) < 0) { - VIR_FREE(class_id); + VIR_FREE(classIdStr); goto error; } } - VIR_FREE(class_id); + VIR_FREE(classIdStr); =20 floor_sum =3D virXPathString("string(./floor[1]/@sum)", ctxt); if (floor_sum && @@ -885,9 +893,9 @@ virNetworkLoadState(virNetworkObjListPtr nets, /* do not put any "goto error" below this comment */ =20 /* assign status data stored in the network object */ - if (class_id_map) { - virBitmapFree(net->class_id); - net->class_id =3D class_id_map; + if (classIdMap) { + virBitmapFree(net->classIdMap); + net->classIdMap =3D classIdMap; } =20 if (floor_sum_val > 0) @@ -904,7 +912,7 @@ virNetworkLoadState(virNetworkObjListPtr nets, =20 error: VIR_FREE(nodes); - virBitmapFree(class_id_map); + virBitmapFree(classIdMap); virNetworkDefFree(def); goto cleanup; } diff --git a/src/conf/virnetworkobj.h b/src/conf/virnetworkobj.h index 9323692..eec38e2 100644 --- a/src/conf/virnetworkobj.h +++ b/src/conf/virnetworkobj.h @@ -38,7 +38,7 @@ struct _virNetworkObj { virNetworkDefPtr def; /* The current definition */ virNetworkDefPtr newDef; /* New definition to activate at shutdown */ =20 - virBitmapPtr class_id; /* bitmap of class IDs for QoS */ + virBitmapPtr classIdMap; /* bitmap of class IDs for QoS */ unsigned long long floor_sum; /* sum of all 'floor'-s of attached NICs= */ =20 unsigned int taint; @@ -67,6 +67,9 @@ void virNetworkObjSetRadvdPid(virNetworkObjPtr obj, pid_t radvdPid); =20 +virBitmapPtr +virNetworkObjGetClassIdMap(virNetworkObjPtr obj); + void virNetworkObjSetMacMap(virNetworkObjPtr obj, virMacMapPtr macmap); diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 56b969c..20ab35b 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -931,6 +931,7 @@ virNetworkObjFindByName; virNetworkObjFindByNameLocked; virNetworkObjFindByUUID; virNetworkObjFindByUUIDLocked; +virNetworkObjGetClassIdMap; virNetworkObjGetDnsmasqPid; virNetworkObjGetMacMap; virNetworkObjGetPersistentDef; diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index 31a3d40..879901a 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -5347,10 +5347,11 @@ static ssize_t networkNextClassID(virNetworkObjPtr obj) { ssize_t ret =3D 0; + virBitmapPtr classIdMap =3D virNetworkObjGetClassIdMap(obj); =20 - ret =3D virBitmapNextClearBit(obj->class_id, -1); + ret =3D virBitmapNextClearBit(classIdMap, -1); =20 - if (ret < 0 || virBitmapSetBit(obj->class_id, ret) < 0) + if (ret < 0 || virBitmapSetBit(classIdMap, ret) < 0) return -1; =20 return ret; @@ -5364,6 +5365,7 @@ networkPlugBandwidthImpl(virNetworkObjPtr obj, unsigned long long new_rate) { virNetworkDriverStatePtr driver =3D networkGetDriver(); + virBitmapPtr classIdMap =3D virNetworkObjGetClassIdMap(obj); ssize_t class_id =3D 0; int plug_ret; int ret =3D -1; @@ -5388,7 +5390,7 @@ networkPlugBandwidthImpl(virNetworkObjPtr obj, obj->floor_sum +=3D ifaceBand->in->floor; /* update status file */ if (virNetworkObjSaveStatus(driver->stateDir, obj) < 0) { - ignore_value(virBitmapClearBit(obj->class_id, class_id)); + ignore_value(virBitmapClearBit(classIdMap, class_id)); obj->floor_sum -=3D ifaceBand->in->floor; iface->data.network.actual->class_id =3D 0; ignore_value(virNetDevBandwidthUnplug(obj->def->bridge, class_id)); @@ -5452,6 +5454,7 @@ static int networkUnplugBandwidth(virNetworkObjPtr obj, virDomainNetDefPtr iface) { + virBitmapPtr classIdMap =3D virNetworkObjGetClassIdMap(obj); virNetworkDriverStatePtr driver =3D networkGetDriver(); int ret =3D 0; unsigned long long new_rate; @@ -5477,12 +5480,12 @@ networkUnplugBandwidth(virNetworkObjPtr obj, /* update sum of 'floor'-s of attached NICs */ obj->floor_sum -=3D ifaceBand->in->floor; /* return class ID */ - ignore_value(virBitmapClearBit(obj->class_id, + ignore_value(virBitmapClearBit(classIdMap, iface->data.network.actual->class_i= d)); /* update status file */ if (virNetworkObjSaveStatus(driver->stateDir, obj) < 0) { obj->floor_sum +=3D ifaceBand->in->floor; - ignore_value(virBitmapSetBit(obj->class_id, + ignore_value(virBitmapSetBit(classIdMap, iface->data.network.actual->class= _id)); goto cleanup; } --=20 2.9.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri May 3 20:47:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1495199089408688.6995947264662; Fri, 19 May 2017 06:04:49 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id C7D66C00F7F4; Fri, 19 May 2017 13:04:47 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id A415E51C62; Fri, 19 May 2017 13:04:47 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 5863B180BAF7; Fri, 19 May 2017 13:04:47 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v4JD3d70003806 for ; Fri, 19 May 2017 09:03:39 -0400 Received: by smtp.corp.redhat.com (Postfix) id 0ABC95C665; Fri, 19 May 2017 13:03:39 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-116-18.phx2.redhat.com [10.3.116.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id B6CDE18C50 for ; Fri, 19 May 2017 13:03:38 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com C7D66C00F7F4 Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com C7D66C00F7F4 From: John Ferlan To: libvir-list@redhat.com Date: Fri, 19 May 2017 09:03:16 -0400 Message-Id: <20170519130324.4624-9-jferlan@redhat.com> In-Reply-To: <20170519130324.4624-1-jferlan@redhat.com> References: <20170519130324.4624-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 08/16] network: Add virNetworkObj Get/Set API's for @floor_sum X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Fri, 19 May 2017 13:04:48 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" In preparation for making the object private, create a couple of API's to get/set the obj->floor_sum. Signed-off-by: John Ferlan --- src/conf/virnetworkobj.c | 15 +++++++++++++++ src/conf/virnetworkobj.h | 7 +++++++ src/libvirt_private.syms | 2 ++ src/network/bridge_driver.c | 35 +++++++++++++++++++++++------------ 4 files changed, 47 insertions(+), 12 deletions(-) diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c index 991916a..a848203 100644 --- a/src/conf/virnetworkobj.c +++ b/src/conf/virnetworkobj.c @@ -151,6 +151,21 @@ virNetworkObjGetMacMap(virNetworkObjPtr obj) } =20 =20 +unsigned long long +virNetworkObjGetFloorSum(virNetworkObjPtr obj) +{ + return obj->floor_sum; +} + + +void +virNetworkObjSetFloorSum(virNetworkObjPtr obj, + unsigned long long floor_sum) +{ + obj->floor_sum =3D floor_sum; +} + + void virNetworkObjSetMacMap(virNetworkObjPtr obj, virMacMapPtr macmap) diff --git a/src/conf/virnetworkobj.h b/src/conf/virnetworkobj.h index eec38e2..aa544ed 100644 --- a/src/conf/virnetworkobj.h +++ b/src/conf/virnetworkobj.h @@ -70,6 +70,13 @@ virNetworkObjSetRadvdPid(virNetworkObjPtr obj, virBitmapPtr virNetworkObjGetClassIdMap(virNetworkObjPtr obj); =20 +unsigned long long +virNetworkObjGetFloorSum(virNetworkObjPtr obj); + +void +virNetworkObjSetFloorSum(virNetworkObjPtr obj, + unsigned long long floor_sum); + void virNetworkObjSetMacMap(virNetworkObjPtr obj, virMacMapPtr macmap); diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 20ab35b..150b6f1 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -933,6 +933,7 @@ virNetworkObjFindByUUID; virNetworkObjFindByUUIDLocked; virNetworkObjGetClassIdMap; virNetworkObjGetDnsmasqPid; +virNetworkObjGetFloorSum; virNetworkObjGetMacMap; virNetworkObjGetPersistentDef; virNetworkObjGetRadvdPid; @@ -953,6 +954,7 @@ virNetworkObjReplacePersistentDef; virNetworkObjSaveStatus; virNetworkObjSetDefTransient; virNetworkObjSetDnsmasqPid; +virNetworkObjSetFloorSum; virNetworkObjSetMacMap; virNetworkObjSetRadvdPid; virNetworkObjTaint; diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index 879901a..cd91a1a 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -5272,7 +5272,7 @@ networkCheckBandwidth(virNetworkObjPtr obj, { int ret =3D -1; virNetDevBandwidthPtr netBand =3D obj->def->bandwidth; - unsigned long long tmp_floor_sum =3D obj->floor_sum; + unsigned long long tmp_floor_sum =3D virNetworkObjGetFloorSum(obj); unsigned long long tmp_new_rate =3D 0; char ifmac[VIR_MAC_STRING_BUFLEN]; =20 @@ -5366,6 +5366,7 @@ networkPlugBandwidthImpl(virNetworkObjPtr obj, { virNetworkDriverStatePtr driver =3D networkGetDriver(); virBitmapPtr classIdMap =3D virNetworkObjGetClassIdMap(obj); + unsigned long long tmp_floor_sum =3D virNetworkObjGetFloorSum(obj); ssize_t class_id =3D 0; int plug_ret; int ret =3D -1; @@ -5387,17 +5388,19 @@ networkPlugBandwidthImpl(virNetworkObjPtr obj, /* QoS was set, generate new class ID */ iface->data.network.actual->class_id =3D class_id; /* update sum of 'floor'-s of attached NICs */ - obj->floor_sum +=3D ifaceBand->in->floor; + tmp_floor_sum +=3D ifaceBand->in->floor; + virNetworkObjSetFloorSum(obj, tmp_floor_sum); /* update status file */ if (virNetworkObjSaveStatus(driver->stateDir, obj) < 0) { ignore_value(virBitmapClearBit(classIdMap, class_id)); - obj->floor_sum -=3D ifaceBand->in->floor; + tmp_floor_sum -=3D ifaceBand->in->floor; + virNetworkObjSetFloorSum(obj, tmp_floor_sum); iface->data.network.actual->class_id =3D 0; ignore_value(virNetDevBandwidthUnplug(obj->def->bridge, class_id)); goto cleanup; } /* update rate for non guaranteed NICs */ - new_rate -=3D obj->floor_sum; + new_rate -=3D tmp_floor_sum; if (virNetDevBandwidthUpdateRate(obj->def->bridge, 2, obj->def->bandwidth, new_rate) < 0) VIR_WARN("Unable to update rate for 1:2 class on %s bridge", @@ -5455,6 +5458,7 @@ networkUnplugBandwidth(virNetworkObjPtr obj, virDomainNetDefPtr iface) { virBitmapPtr classIdMap =3D virNetworkObjGetClassIdMap(obj); + unsigned long long tmp_floor_sum =3D virNetworkObjGetFloorSum(obj); virNetworkDriverStatePtr driver =3D networkGetDriver(); int ret =3D 0; unsigned long long new_rate; @@ -5478,19 +5482,22 @@ networkUnplugBandwidth(virNetworkObjPtr obj, if (ret < 0) goto cleanup; /* update sum of 'floor'-s of attached NICs */ - obj->floor_sum -=3D ifaceBand->in->floor; + tmp_floor_sum -=3D ifaceBand->in->floor; + virNetworkObjSetFloorSum(obj, tmp_floor_sum); + /* return class ID */ ignore_value(virBitmapClearBit(classIdMap, iface->data.network.actual->class_i= d)); /* update status file */ if (virNetworkObjSaveStatus(driver->stateDir, obj) < 0) { - obj->floor_sum +=3D ifaceBand->in->floor; + tmp_floor_sum +=3D ifaceBand->in->floor; + virNetworkObjSetFloorSum(obj, tmp_floor_sum); ignore_value(virBitmapSetBit(classIdMap, iface->data.network.actual->class= _id)); goto cleanup; } /* update rate for non guaranteed NICs */ - new_rate -=3D obj->floor_sum; + new_rate -=3D tmp_floor_sum; if (virNetDevBandwidthUpdateRate(obj->def->bridge, 2, obj->def->bandwidth, new_rate) < = 0) VIR_WARN("Unable to update rate for 1:2 class on %s bridge", @@ -5582,6 +5589,7 @@ networkBandwidthUpdate(virDomainNetDefPtr iface, { virNetworkDriverStatePtr driver =3D networkGetDriver(); virNetworkObjPtr obj =3D NULL; + unsigned long long tmp_floor_sum; virNetDevBandwidthPtr ifaceBand =3D virDomainNetGetActualBandwidth(ifa= ce); unsigned long long new_rate =3D 0; int plug_ret; @@ -5622,16 +5630,19 @@ networkBandwidthUpdate(virDomainNetDefPtr iface, newBandwidth->in->floor) < 0) goto cleanup; =20 - obj->floor_sum -=3D ifaceBand->in->floor; - obj->floor_sum +=3D newBandwidth->in->floor; - new_rate -=3D obj->floor_sum; + tmp_floor_sum =3D virNetworkObjGetFloorSum(obj); + tmp_floor_sum -=3D ifaceBand->in->floor; + tmp_floor_sum +=3D newBandwidth->in->floor; + virNetworkObjSetFloorSum(obj, tmp_floor_sum); + new_rate -=3D tmp_floor_sum; =20 if (virNetDevBandwidthUpdateRate(obj->def->bridge, 2, obj->def->bandwidth, new_rate) < = 0 || virNetworkObjSaveStatus(driver->stateDir, obj) < 0) { /* Ouch, rollback */ - obj->floor_sum -=3D newBandwidth->in->floor; - obj->floor_sum +=3D ifaceBand->in->floor; + tmp_floor_sum -=3D newBandwidth->in->floor; + tmp_floor_sum +=3D ifaceBand->in->floor; + virNetworkObjSetFloorSum(obj, tmp_floor_sum); =20 ignore_value(virNetDevBandwidthUpdateRate(obj->def->bridge, iface->data.network.= actual->class_id, --=20 2.9.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri May 3 20:47:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1495199095635624.7059978640018; Fri, 19 May 2017 06:04:55 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A5F2480C28; Fri, 19 May 2017 13:04:51 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 74C345C546; Fri, 19 May 2017 13:04:51 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 21239180BAF9; Fri, 19 May 2017 13:04:51 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v4JD3dk5003818 for ; Fri, 19 May 2017 09:03:39 -0400 Received: by smtp.corp.redhat.com (Postfix) id BC58118C5D; Fri, 19 May 2017 13:03:39 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-116-18.phx2.redhat.com [10.3.116.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id 45F1418C50 for ; Fri, 19 May 2017 13:03:39 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com A5F2480C28 Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com A5F2480C28 From: John Ferlan To: libvir-list@redhat.com Date: Fri, 19 May 2017 09:03:17 -0400 Message-Id: <20170519130324.4624-10-jferlan@redhat.com> In-Reply-To: <20170519130324.4624-1-jferlan@redhat.com> References: <20170519130324.4624-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 09/16] network: Add virNetworkObj Get API's for @def and @newDef X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Fri, 19 May 2017 13:04:52 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" In preparation for making the object private, create a couple of API's to get the obj->def and obj->newDef. Signed-off-by: John Ferlan --- src/conf/virnetworkobj.c | 14 ++ src/conf/virnetworkobj.h | 6 + src/libvirt_private.syms | 2 + src/network/bridge_driver.c | 488 ++++++++++++++++++++++++----------------= ---- src/test/test_driver.c | 38 ++-- 5 files changed, 312 insertions(+), 236 deletions(-) diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c index a848203..488fffd 100644 --- a/src/conf/virnetworkobj.c +++ b/src/conf/virnetworkobj.c @@ -107,6 +107,20 @@ virNetworkObjEndAPI(virNetworkObjPtr *net) } =20 =20 +virNetworkDefPtr +virNetworkObjGetDef(virNetworkObjPtr obj) +{ + return obj->def; +} + + +virNetworkDefPtr +virNetworkObjGetNewDef(virNetworkObjPtr obj) +{ + return obj->newDef; +} + + pid_t virNetworkObjGetDnsmasqPid(virNetworkObjPtr obj) { diff --git a/src/conf/virnetworkobj.h b/src/conf/virnetworkobj.h index aa544ed..4b7c982 100644 --- a/src/conf/virnetworkobj.h +++ b/src/conf/virnetworkobj.h @@ -50,6 +50,12 @@ struct _virNetworkObj { virNetworkObjPtr virNetworkObjNew(void); =20 +virNetworkDefPtr +virNetworkObjGetDef(virNetworkObjPtr obj); + +virNetworkDefPtr +virNetworkObjGetNewDef(virNetworkObjPtr obj); + virMacMapPtr virNetworkObjGetMacMap(virNetworkObjPtr obj); =20 diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 150b6f1..6b4c37c 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -932,9 +932,11 @@ virNetworkObjFindByNameLocked; virNetworkObjFindByUUID; virNetworkObjFindByUUIDLocked; virNetworkObjGetClassIdMap; +virNetworkObjGetDef; virNetworkObjGetDnsmasqPid; virNetworkObjGetFloorSum; virNetworkObjGetMacMap; +virNetworkObjGetNewDef; virNetworkObjGetPersistentDef; virNetworkObjGetRadvdPid; virNetworkObjListExport; diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index cd91a1a..f8e11e2 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -213,6 +213,7 @@ networkRunHook(virNetworkObjPtr obj, int op, int sub_op) { + virNetworkDefPtr def =3D virNetworkObjGetDef(obj); virBuffer buf =3D VIR_BUFFER_INITIALIZER; char *xml =3D NULL, *net_xml =3D NULL, *dom_xml =3D NULL; int hookret; @@ -229,7 +230,7 @@ networkRunHook(virNetworkObjPtr obj, virBufferAdjustIndent(&buf, 2); if (iface && virDomainNetDefFormat(&buf, iface, NULL, 0) < 0) goto cleanup; - if (virNetworkDefFormatBuf(&buf, obj->def, 0) < 0) + if (virNetworkDefFormatBuf(&buf, def, 0) < 0) goto cleanup; if (dom && virDomainDefFormatInternal(dom, NULL, 0, &buf) < 0) goto cleanup; @@ -241,7 +242,7 @@ networkRunHook(virNetworkObjPtr obj, goto cleanup; =20 xml =3D virBufferContentAndReset(&buf); - hookret =3D virHookCall(VIR_HOOK_DRIVER_NETWORK, obj->def->name, + hookret =3D virHookCall(VIR_HOOK_DRIVER_NETWORK, def->name, op, sub_op, NULL, xml, NULL); =20 /* @@ -430,6 +431,7 @@ static int networkUpdateState(virNetworkObjPtr obj, void *opaque) { + virNetworkDefPtr def =3D virNetworkObjGetDef(obj); virNetworkDriverStatePtr driver =3D opaque; dnsmasqCapsPtr dnsmasq_caps =3D networkGetDnsmasqCaps(driver); virMacMapPtr macmap; @@ -442,17 +444,17 @@ networkUpdateState(virNetworkObjPtr obj, goto cleanup; } =20 - switch (obj->def->forward.type) { + switch (def->forward.type) { case VIR_NETWORK_FORWARD_NONE: case VIR_NETWORK_FORWARD_NAT: case VIR_NETWORK_FORWARD_ROUTE: case VIR_NETWORK_FORWARD_OPEN: /* If bridge doesn't exist, then mark it inactive */ - if (!(obj->def->bridge && virNetDevExists(obj->def->bridge) =3D=3D= 1)) + if (!(def->bridge && virNetDevExists(def->bridge) =3D=3D 1)) obj->active =3D 0; =20 if (!(macMapFile =3D virNetworkObjMacMgrFileName(driver->dnsmasqSt= ateDir, - obj->def->bridge))) + def->bridge))) goto cleanup; =20 if (!(macmap =3D virMacMapNew(macMapFile))) @@ -463,8 +465,8 @@ networkUpdateState(virNetworkObjPtr obj, break; =20 case VIR_NETWORK_FORWARD_BRIDGE: - if (obj->def->bridge) { - if (virNetDevExists(obj->def->bridge) !=3D 1) + if (def->bridge) { + if (virNetDevExists(def->bridge) !=3D 1) obj->active =3D 0; break; } @@ -484,18 +486,18 @@ networkUpdateState(virNetworkObjPtr obj, } =20 /* Try and read dnsmasq/radvd pids of active networks */ - if (obj->active && obj->def->ips && (obj->def->nips > 0)) { + if (obj->active && def->ips && (def->nips > 0)) { pid_t radvdPid; pid_t dnsmasqPid; char *radvdpidbase; =20 ignore_value(virPidFileReadIfAlive(driver->pidDir, - obj->def->name, + def->name, &dnsmasqPid, dnsmasqCapsGetBinaryPath(dnsmas= q_caps))); virNetworkObjSetDnsmasqPid(obj, dnsmasqPid); =20 - radvdpidbase =3D networkRadvdPidfileBasename(obj->def->name); + radvdpidbase =3D networkRadvdPidfileBasename(def->name); if (!radvdpidbase) goto cleanup; =20 @@ -1017,11 +1019,12 @@ networkDnsmasqConfContents(virNetworkObjPtr obj, dnsmasqContext *dctx, dnsmasqCapsPtr caps ATTRIBUTE_UNUSED) { + virNetworkDefPtr def =3D virNetworkObjGetDef(obj); virBuffer configbuf =3D VIR_BUFFER_INITIALIZER; int r, ret =3D -1; int nbleases =3D 0; size_t i; - virNetworkDNSDefPtr dns =3D &obj->def->dns; + virNetworkDNSDefPtr dns =3D &def->dns; bool wantDNS =3D dns->enable !=3D VIR_TRISTATE_BOOL_NO; virNetworkIPDefPtr tmpipdef, ipdef, ipv4def, ipv6def; bool ipv6SLAAC; @@ -1055,7 +1058,7 @@ networkDnsmasqConfContents(virNetworkObjPtr obj, "## or other application using the libvirt API.\n" "##\n## dnsmasq conf file created by libvirt\n" "strict-order\n", - obj->def->name); + def->name); =20 /* if dns is disabled, set its listening port to 0, which * tells dnsmasq to not listen @@ -1063,7 +1066,7 @@ networkDnsmasqConfContents(virNetworkObjPtr obj, if (!wantDNS) virBufferAddLit(&configbuf, "port=3D0\n"); =20 - if (wantDNS && obj->def->dns.forwarders) { + if (wantDNS && def->dns.forwarders) { /* addNoResolv should be set to true if there are any entries * that specify an IP address for requests, but no domain * qualifier (implying that all requests otherwise "unclaimed" @@ -1073,8 +1076,8 @@ networkDnsmasqConfContents(virNetworkObjPtr obj, */ bool addNoResolv =3D false; =20 - for (i =3D 0; i < obj->def->dns.nfwds; i++) { - virNetworkDNSForwarderPtr fwd =3D &obj->def->dns.forwarders[i]; + for (i =3D 0; i < def->dns.nfwds; i++) { + virNetworkDNSForwarderPtr fwd =3D &def->dns.forwarders[i]; =20 virBufferAddLit(&configbuf, "server=3D"); if (fwd->domain) @@ -1097,23 +1100,23 @@ networkDnsmasqConfContents(virNetworkObjPtr obj, virBufferAddLit(&configbuf, "no-resolv\n"); } =20 - if (obj->def->domain) { - if (obj->def->domainLocalOnly =3D=3D VIR_TRISTATE_BOOL_YES) { + if (def->domain) { + if (def->domainLocalOnly =3D=3D VIR_TRISTATE_BOOL_YES) { virBufferAsprintf(&configbuf, "local=3D/%s/\n", - obj->def->domain); + def->domain); } virBufferAsprintf(&configbuf, "domain=3D%s\n" "expand-hosts\n", - obj->def->domain); + def->domain); } =20 if (wantDNS && - networkDnsmasqConfLocalPTRs(&configbuf, obj->def) < 0) + networkDnsmasqConfLocalPTRs(&configbuf, def) < 0) goto cleanup; =20 - if (wantDNS && obj->def->dns.forwardPlainNames =3D=3D VIR_TRISTATE_BOO= L_NO) { + if (wantDNS && def->dns.forwardPlainNames =3D=3D VIR_TRISTATE_BOOL_NO)= { virBufferAddLit(&configbuf, "domain-needed\n"); /* need to specify local=3D// whether or not a domain is * specified, unless the config says we should forward "plain" @@ -1144,19 +1147,19 @@ networkDnsmasqConfContents(virNetworkObjPtr obj, virBufferAsprintf(&configbuf, "bind-dynamic\n" "interface=3D%s\n", - obj->def->bridge); + def->bridge); } else { virBufferAddLit(&configbuf, "bind-interfaces\n"); /* * --interface does not actually work with dnsmasq < 2.47, * due to DAD for ipv6 addresses on the interface. * - * virCommandAddArgList(cmd, "--interface", obj->def->bridge, NULL= ); + * virCommandAddArgList(cmd, "--interface", def->bridge, NULL); * * So listen on all defined IPv[46] addresses */ for (i =3D 0; - (tmpipdef =3D virNetworkDefGetIPByIndex(obj->def, AF_UNSPEC, = i)); + (tmpipdef =3D virNetworkDefGetIPByIndex(def, AF_UNSPEC, i)); i++) { char *ipaddr =3D virSocketAddrFormat(&tmpipdef->address); =20 @@ -1202,7 +1205,7 @@ networkDnsmasqConfContents(virNetworkObjPtr obj, * via the sender's link-local address. The only thing we can do * is set the lifetime of this route to 0, i.e. disable it. */ - if (obj->def->forward.type =3D=3D VIR_NETWORK_FORWARD_NONE) { + if (def->forward.type =3D=3D VIR_NETWORK_FORWARD_NONE) { virBufferAddLit(&configbuf, "dhcp-option=3D3\n" "no-resolv\n"); if (dnsmasqCapsGet(caps, DNSMASQ_CAPS_RA_PARAM)) { @@ -1226,14 +1229,14 @@ networkDnsmasqConfContents(virNetworkObjPtr obj, virReportError(VIR_ERR_INTERNAL_ERROR, _("Missing required 'service' " "attribute in SRV record of network '%s'"= ), - obj->def->name); + def->name); goto cleanup; } if (!dns->srvs[i].protocol) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Missing required 'service' " "attribute in SRV record of network '%s'"= ), - obj->def->name); + def->name); goto cleanup; } /* RFC2782 requires that service and protocol be preceded by @@ -1275,7 +1278,7 @@ networkDnsmasqConfContents(virNetworkObjPtr obj, =20 /* Find the first dhcp for both IPv4 and IPv6 */ for (i =3D 0, ipv4def =3D NULL, ipv6def =3D NULL, ipv6SLAAC =3D false; - (ipdef =3D virNetworkDefGetIPByIndex(obj->def, AF_UNSPEC, i)); + (ipdef =3D virNetworkDefGetIPByIndex(def, AF_UNSPEC, i)); i++) { if (VIR_SOCKET_ADDR_IS_FAMILY(&ipdef->address, AF_INET)) { if (ipdef->nranges || ipdef->nhosts) { @@ -1337,7 +1340,7 @@ networkDnsmasqConfContents(virNetworkObjPtr obj, if (prefix < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("bridge '%s' has an invalid prefix"), - obj->def->bridge); + def->bridge); goto cleanup; } for (r =3D 0; r < ipdef->nranges; r++) { @@ -1443,7 +1446,7 @@ networkDnsmasqConfContents(virNetworkObjPtr obj, virBufferAddLit(&configbuf, "enable-ra\n"); } else { for (i =3D 0; - (ipdef =3D virNetworkDefGetIPByIndex(obj->def, AF_INET6, = i)); + (ipdef =3D virNetworkDefGetIPByIndex(def, AF_INET6, i)); i++) { if (!(ipdef->nranges || ipdef->nhosts)) { char *bridgeaddr =3D virSocketAddrFormat(&ipdef->addre= ss); @@ -1478,6 +1481,7 @@ networkBuildDhcpDaemonCommandLine(virNetworkDriverSta= tePtr driver, char *pidfile, dnsmasqContext *dctx) { + virNetworkDefPtr def =3D virNetworkObjGetDef(obj); dnsmasqCapsPtr dnsmasq_caps =3D networkGetDnsmasqCaps(driver); virCommandPtr cmd =3D NULL; int ret =3D -1; @@ -1494,7 +1498,7 @@ networkBuildDhcpDaemonCommandLine(virNetworkDriverSta= tePtr driver, goto cleanup; =20 /* construct the filename */ - if (!(configfile =3D networkDnsmasqConfigFileName(driver, obj->def->na= me))) + if (!(configfile =3D networkDnsmasqConfigFileName(driver, def->name))) goto cleanup; =20 /* Write the file */ @@ -1516,7 +1520,7 @@ networkBuildDhcpDaemonCommandLine(virNetworkDriverSta= tePtr driver, /* Libvirt gains full control of leases database */ virCommandAddArgFormat(cmd, "--leasefile-ro"); virCommandAddArgFormat(cmd, "--dhcp-script=3D%s", leaseshelper_path); - virCommandAddEnvPair(cmd, "VIR_BRIDGE_NAME", obj->def->bridge); + virCommandAddEnvPair(cmd, "VIR_BRIDGE_NAME", def->bridge); =20 *cmdout =3D cmd; ret =3D 0; @@ -1533,6 +1537,7 @@ static int networkStartDhcpDaemon(virNetworkDriverStatePtr driver, virNetworkObjPtr obj) { + virNetworkDefPtr def =3D virNetworkObjGetDef(obj); virNetworkIPDefPtr ipdef; size_t i; bool needDnsmasq =3D false; @@ -1544,7 +1549,7 @@ networkStartDhcpDaemon(virNetworkDriverStatePtr drive= r, =20 /* see if there are any IP addresses that need a dhcp server */ i =3D 0; - while ((ipdef =3D virNetworkDefGetIPByIndex(obj->def, AF_UNSPEC, i))) { + while ((ipdef =3D virNetworkDefGetIPByIndex(def, AF_UNSPEC, i))) { i++; if (ipdef->nranges || ipdef->nhosts) needDnsmasq =3D true; @@ -1556,7 +1561,7 @@ networkStartDhcpDaemon(virNetworkDriverStatePtr drive= r, goto cleanup; } =20 - if (!needDnsmasq && obj->def->dns.enable =3D=3D VIR_TRISTATE_BOOL_NO) { + if (!needDnsmasq && def->dns.enable =3D=3D VIR_TRISTATE_BOOL_NO) { /* no DHCP services needed, and user disabled DNS service */ ret =3D 0; goto cleanup; @@ -1569,8 +1574,7 @@ networkStartDhcpDaemon(virNetworkDriverStatePtr drive= r, goto cleanup; } =20 - if (!(pidfile =3D virPidFileBuildPath(driver->pidDir, - obj->def->name))) + if (!(pidfile =3D virPidFileBuildPath(driver->pidDir, def->name))) goto cleanup; =20 if (virFileMakePath(driver->dnsmasqStateDir) < 0) { @@ -1580,7 +1584,7 @@ networkStartDhcpDaemon(virNetworkDriverStatePtr drive= r, goto cleanup; } =20 - dctx =3D dnsmasqContextNew(obj->def->name, driver->dnsmasqStateDir); + dctx =3D dnsmasqContextNew(def->name, driver->dnsmasqStateDir); if (dctx =3D=3D NULL) goto cleanup; =20 @@ -1607,7 +1611,7 @@ networkStartDhcpDaemon(virNetworkDriverStatePtr drive= r, * pid */ =20 - ret =3D virPidFileRead(driver->pidDir, obj->def->name, &dnsmasqPid); + ret =3D virPidFileRead(driver->pidDir, def->name, &dnsmasqPid); if (ret < 0) goto cleanup; virNetworkObjSetDnsmasqPid(obj, dnsmasqPid); @@ -1632,6 +1636,7 @@ static int networkRefreshDhcpDaemon(virNetworkDriverStatePtr driver, virNetworkObjPtr obj) { + virNetworkDefPtr def =3D virNetworkObjGetDef(obj); int ret =3D -1; size_t i; pid_t dnsmasqPid; @@ -1639,7 +1644,7 @@ networkRefreshDhcpDaemon(virNetworkDriverStatePtr dri= ver, dnsmasqContext *dctx =3D NULL; =20 /* if no IP addresses specified, nothing to do */ - if (!virNetworkDefGetIPByIndex(obj->def, AF_UNSPEC, 0)) + if (!virNetworkDefGetIPByIndex(def, AF_UNSPEC, 0)) return 0; =20 /* if there's no running dnsmasq, just start it */ @@ -1647,8 +1652,8 @@ networkRefreshDhcpDaemon(virNetworkDriverStatePtr dri= ver, if (dnsmasqPid <=3D 0 || (kill(dnsmasqPid, 0) < 0)) return networkStartDhcpDaemon(driver, obj); =20 - VIR_INFO("Refreshing dnsmasq for network %s", obj->def->bridge); - if (!(dctx =3D dnsmasqContextNew(obj->def->name, + VIR_INFO("Refreshing dnsmasq for network %s", def->bridge); + if (!(dctx =3D dnsmasqContextNew(def->name, driver->dnsmasqStateDir))) { goto cleanup; } @@ -1659,7 +1664,7 @@ networkRefreshDhcpDaemon(virNetworkDriverStatePtr dri= ver, */ ipv4def =3D NULL; for (i =3D 0; - (ipdef =3D virNetworkDefGetIPByIndex(obj->def, AF_INET, i)); + (ipdef =3D virNetworkDefGetIPByIndex(def, AF_INET, i)); i++) { if (!ipv4def && (ipdef->nranges || ipdef->nhosts)) ipv4def =3D ipdef; @@ -1667,7 +1672,7 @@ networkRefreshDhcpDaemon(virNetworkDriverStatePtr dri= ver, =20 ipv6def =3D NULL; for (i =3D 0; - (ipdef =3D virNetworkDefGetIPByIndex(obj->def, AF_INET6, i)); + (ipdef =3D virNetworkDefGetIPByIndex(def, AF_INET6, i)); i++) { if (!ipv6def && (ipdef->nranges || ipdef->nhosts)) ipv6def =3D ipdef; @@ -1679,7 +1684,7 @@ networkRefreshDhcpDaemon(virNetworkDriverStatePtr dri= ver, if (ipv6def && (networkBuildDnsmasqDhcpHostsList(dctx, ipv6def) < 0)) goto cleanup; =20 - if (networkBuildDnsmasqHostsList(dctx, &obj->def->dns) < 0) + if (networkBuildDnsmasqHostsList(dctx, &def->dns) < 0) goto cleanup; =20 if ((ret =3D dnsmasqSave(dctx)) < 0) @@ -1704,11 +1709,12 @@ static int networkRestartDhcpDaemon(virNetworkDriverStatePtr driver, virNetworkObjPtr obj) { + virNetworkDefPtr def =3D virNetworkObjGetDef(obj); pid_t dnsmasqPid =3D virNetworkObjGetDnsmasqPid(obj); =20 /* if there is a running dnsmasq, kill it */ if (dnsmasqPid > 0) { - networkKillDaemon(dnsmasqPid, "dnsmasq", obj->def->name); + networkKillDaemon(dnsmasqPid, "dnsmasq", def->name); virNetworkObjSetDnsmasqPid(obj, -1); } /* now start dnsmasq if it should be started */ @@ -1726,6 +1732,7 @@ static int networkRadvdConfContents(virNetworkObjPtr obj, char **configstr) { + virNetworkDefPtr def =3D virNetworkObjGetDef(obj); virBuffer configbuf =3D VIR_BUFFER_INITIALIZER; int ret =3D -1; size_t i; @@ -1735,9 +1742,7 @@ networkRadvdConfContents(virNetworkObjPtr obj, *configstr =3D NULL; =20 /* Check if DHCPv6 is needed */ - for (i =3D 0; - (ipdef =3D virNetworkDefGetIPByIndex(obj->def, AF_INET6, i)); - i++) { + for (i =3D 0; (ipdef =3D virNetworkDefGetIPByIndex(def, AF_INET6, i));= i++) { v6present =3D true; if (ipdef->nranges || ipdef->nhosts) { dhcp6 =3D true; @@ -1760,14 +1765,12 @@ networkRadvdConfContents(virNetworkObjPtr obj, " IgnoreIfMissing on;\n" " AdvManagedFlag %s;\n" "%s", - obj->def->bridge, + def->bridge, dhcp6 ? "on" : "off", dhcp6 ? "\n" : radvd1); =20 /* add a section for each IPv6 address in the config */ - for (i =3D 0; - (ipdef =3D virNetworkDefGetIPByIndex(obj->def, AF_INET6, i)); - i++) { + for (i =3D 0; (ipdef =3D virNetworkDefGetIPByIndex(def, AF_INET6, i));= i++) { int prefix; char *netaddr; =20 @@ -1775,7 +1778,7 @@ networkRadvdConfContents(virNetworkObjPtr obj, if (prefix < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("bridge '%s' has an invalid prefix"), - obj->def->bridge); + def->bridge); goto cleanup; } if (!(netaddr =3D virSocketAddrFormat(&ipdef->address))) @@ -1808,6 +1811,7 @@ networkRadvdConfWrite(virNetworkDriverStatePtr driver, virNetworkObjPtr obj, char **configFile) { + virNetworkDefPtr def =3D virNetworkObjGetDef(obj); int ret =3D -1; char *configStr =3D NULL; char *myConfigFile =3D NULL; @@ -1826,7 +1830,7 @@ networkRadvdConfWrite(virNetworkDriverStatePtr driver, } =20 /* construct the filename */ - if (!(*configFile =3D networkRadvdConfigFileName(driver, obj->def->nam= e))) + if (!(*configFile =3D networkRadvdConfigFileName(driver, def->name))) goto cleanup; /* write the file */ if (virFileWriteStr(*configFile, configStr, 0600) < 0) { @@ -1848,6 +1852,7 @@ static int networkStartRadvd(virNetworkDriverStatePtr driver, virNetworkObjPtr obj) { + virNetworkDefPtr def =3D virNetworkObjGetDef(obj); dnsmasqCapsPtr dnsmasq_caps =3D networkGetDnsmasqCaps(driver); pid_t radvdPid; char *pidfile =3D NULL; @@ -1864,7 +1869,7 @@ networkStartRadvd(virNetworkDriverStatePtr driver, goto cleanup; } =20 - if (!virNetworkDefGetIPByIndex(obj->def, AF_INET6, 0)) { + if (!virNetworkDefGetIPByIndex(def, AF_INET6, 0)) { /* no IPv6 addresses, so we don't need to run radvd */ ret =3D 0; goto cleanup; @@ -1892,7 +1897,7 @@ networkStartRadvd(virNetworkDriverStatePtr driver, } =20 /* construct pidfile name */ - if (!(radvdpidbase =3D networkRadvdPidfileBasename(obj->def->name))) + if (!(radvdpidbase =3D networkRadvdPidfileBasename(def->name))) goto cleanup; if (!(pidfile =3D virPidFileBuildPath(driver->pidDir, radvdpidbase))) goto cleanup; @@ -1939,6 +1944,7 @@ static int networkRefreshRadvd(virNetworkDriverStatePtr driver, virNetworkObjPtr obj) { + virNetworkDefPtr def =3D virNetworkObjGetDef(obj); dnsmasqCapsPtr dnsmasq_caps =3D networkGetDnsmasqCaps(driver); char *radvdpidbase; pid_t radvdPid; @@ -1950,8 +1956,8 @@ networkRefreshRadvd(virNetworkDriverStatePtr driver, if (radvdPid <=3D 0) return 0; /* radvd should not be running but in case it is */ - if ((networkKillDaemon(radvdPid, "radvd", obj->def->name) >=3D 0) = && - ((radvdpidbase =3D networkRadvdPidfileBasename(obj->def->name)) + if ((networkKillDaemon(radvdPid, "radvd", def->name) >=3D 0) && + ((radvdpidbase =3D networkRadvdPidfileBasename(def->name)) !=3D NULL)) { virPidFileDelete(driver->pidDir, radvdpidbase); VIR_FREE(radvdpidbase); @@ -1966,7 +1972,7 @@ networkRefreshRadvd(virNetworkDriverStatePtr driver, if (radvdPid <=3D 0 || (kill(radvdPid, 0) < 0)) return networkStartRadvd(driver, obj); =20 - if (!virNetworkDefGetIPByIndex(obj->def, AF_INET6, 0)) { + if (!virNetworkDefGetIPByIndex(def, AF_INET6, 0)) { /* no IPv6 addresses, so we don't need to run radvd */ return 0; } @@ -1983,6 +1989,7 @@ networkRefreshRadvd(virNetworkDriverStatePtr driver, static int networkRestartRadvd(virNetworkObjPtr obj) { + virNetworkDefPtr def =3D virNetworkObjGetDef(obj); char *radvdpidbase; pid_t radvdPid =3D virNeworkObjGetRadvdPid(obj); =20 @@ -1992,9 +1999,8 @@ networkRestartRadvd(virNetworkObjPtr obj) * since there's really no better recovery to be done than to * just push ahead (and that may be exactly what's needed). */ - if ((networkKillDaemon(radvdPid, "radvd", - obj->def->name) >=3D 0) && - ((radvdpidbase =3D networkRadvdPidfileBasename(obj->def->name)) + if ((networkKillDaemon(radvdPid, "radvd", def->name) >=3D 0) && + ((radvdpidbase =3D networkRadvdPidfileBasename(def->name)) !=3D NULL)) { virPidFileDelete(driver->pidDir, radvdpidbase); VIR_FREE(radvdpidbase); @@ -2011,14 +2017,16 @@ static int networkRefreshDaemonsHelper(virNetworkObjPtr obj, void *opaque) { + virNetworkDefPtr def; virNetworkDriverStatePtr driver =3D opaque; =20 virObjectLock(obj); + def =3D virNetworkObjGetDef(obj); if (virNetworkObjIsActive(obj) && - ((obj->def->forward.type =3D=3D VIR_NETWORK_FORWARD_NONE) || - (obj->def->forward.type =3D=3D VIR_NETWORK_FORWARD_NAT) || - (obj->def->forward.type =3D=3D VIR_NETWORK_FORWARD_ROUTE) || - (obj->def->forward.type =3D=3D VIR_NETWORK_FORWARD_OPEN))) { + ((def->forward.type =3D=3D VIR_NETWORK_FORWARD_NONE) || + (def->forward.type =3D=3D VIR_NETWORK_FORWARD_NAT) || + (def->forward.type =3D=3D VIR_NETWORK_FORWARD_ROUTE) || + (def->forward.type =3D=3D VIR_NETWORK_FORWARD_OPEN))) { /* Only the three L3 network types that are configured by * libvirt will have a dnsmasq or radvd daemon associated * with them. Here we send a SIGHUP to an existing @@ -2050,19 +2058,21 @@ static int networkReloadFirewallRulesHelper(virNetworkObjPtr obj, void *opaque ATTRIBUTE_UNUSED) { + virNetworkDefPtr def; =20 virObjectLock(obj); + def =3D virNetworkObjGetDef(obj); if (virNetworkObjIsActive(obj) && - ((obj->def->forward.type =3D=3D VIR_NETWORK_FORWARD_NONE) || - (obj->def->forward.type =3D=3D VIR_NETWORK_FORWARD_NAT) || - (obj->def->forward.type =3D=3D VIR_NETWORK_FORWARD_ROUTE))) { + ((def->forward.type =3D=3D VIR_NETWORK_FORWARD_NONE) || + (def->forward.type =3D=3D VIR_NETWORK_FORWARD_NAT) || + (def->forward.type =3D=3D VIR_NETWORK_FORWARD_ROUTE))) { /* Only three of the L3 network types that are configured by * libvirt need to have iptables rules reloaded. The 4th L3 * network type, forward=3D'open', doesn't need this because it * has no iptables rules. */ - networkRemoveFirewallRules(obj->def); - if (networkAddFirewallRules(obj->def) < 0) { + networkRemoveFirewallRules(def); + if (networkAddFirewallRules(def) < 0) { /* failed to add but already logged */ } } @@ -2109,22 +2119,23 @@ networkEnableIPForwarding(bool enableIPv4, static int networkSetIPv6Sysctls(virNetworkObjPtr obj) { + virNetworkDefPtr def =3D virNetworkObjGetDef(obj); char *field =3D NULL; int ret =3D -1; - bool enableIPv6 =3D !!virNetworkDefGetIPByIndex(obj->def, AF_INET6, 0= ); + bool enableIPv6 =3D !!virNetworkDefGetIPByIndex(def, AF_INET6, 0); =20 /* set disable_ipv6 if there are no ipv6 addresses defined for the * network. But also unset it if there *are* ipv6 addresses, as we * can't be sure of its default value. */ if (virAsprintf(&field, SYSCTL_PATH "/net/ipv6/conf/%s/disable_ipv6", - obj->def->bridge) < 0) + def->bridge) < 0) goto cleanup; =20 if (access(field, W_OK) < 0 && errno =3D=3D ENOENT) { if (!enableIPv6) VIR_DEBUG("ipv6 appears to already be disabled on %s", - obj->def->bridge); + def->bridge); ret =3D 0; goto cleanup; } @@ -2132,7 +2143,7 @@ networkSetIPv6Sysctls(virNetworkObjPtr obj) if (virFileWriteStr(field, enableIPv6 ? "0" : "1", 0) < 0) { virReportSystemError(errno, _("cannot write to %s to enable/disable IPv6 " - "on bridge %s"), field, obj->def->bridge); + "on bridge %s"), field, def->bridge); goto cleanup; } VIR_FREE(field); @@ -2145,7 +2156,7 @@ networkSetIPv6Sysctls(virNetworkObjPtr obj) * their own router advertisements. */ if (virAsprintf(&field, SYSCTL_PATH "/net/ipv6/conf/%s/accept_ra", - obj->def->bridge) < 0) + def->bridge) < 0) goto cleanup; =20 if (virFileWriteStr(field, "0", 0) < 0) { @@ -2159,7 +2170,7 @@ networkSetIPv6Sysctls(virNetworkObjPtr obj) * definition), must always have autoconf=3D0. */ if (virAsprintf(&field, SYSCTL_PATH "/net/ipv6/conf/%s/autoconf", - obj->def->bridge) < 0) + def->bridge) < 0) goto cleanup; =20 if (virFileWriteStr(field, "0", 0) < 0) { @@ -2180,17 +2191,17 @@ static int networkAddAddrToBridge(virNetworkObjPtr obj, virNetworkIPDefPtr ipdef) { + virNetworkDefPtr def =3D virNetworkObjGetDef(obj); int prefix =3D virNetworkIPDefPrefix(ipdef); =20 if (prefix < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("bridge '%s' has an invalid netmask or IP address= "), - obj->def->bridge); + def->bridge); return -1; } =20 - if (virNetDevIPAddrAdd(obj->def->bridge, - &ipdef->address, NULL, prefix) < 0) + if (virNetDevIPAddrAdd(def->bridge, &ipdef->address, NULL, prefix) < 0) return -1; =20 return 0; @@ -2201,11 +2212,11 @@ static int networkStartHandleMACTableManagerMode(virNetworkObjPtr obj, const char *macTapIfName) { - const char *brname =3D obj->def->bridge; + virNetworkDefPtr def =3D virNetworkObjGetDef(obj); + const char *brname =3D def->bridge; =20 if (brname && - obj->def->macTableManager - =3D=3D VIR_NETWORK_BRIDGE_MAC_TABLE_MANAGER_LIBVIRT) { + def->macTableManager =3D=3D VIR_NETWORK_BRIDGE_MAC_TABLE_MANAGER_L= IBVIRT) { if (virNetDevBridgeSetVlanFiltering(brname, true) < 0) return -1; if (macTapIfName) { @@ -2224,6 +2235,7 @@ static int networkAddRouteToBridge(virNetworkObjPtr obj, virNetDevIPRoutePtr routedef) { + virNetworkDefPtr def =3D virNetworkObjGetDef(obj); int prefix =3D virNetDevIPRouteGetPrefix(routedef); unsigned int metric =3D virNetDevIPRouteGetMetric(routedef); virSocketAddrPtr addr =3D virNetDevIPRouteGetAddress(routedef); @@ -2233,28 +2245,28 @@ networkAddRouteToBridge(virNetworkObjPtr obj, virReportError(VIR_ERR_INTERNAL_ERROR, _("network '%s' has an invalid netmask " "or IP address in route definition"), - obj->def->name); + def->name); return -1; } =20 - if (virNetDevIPRouteAdd(obj->def->bridge, addr, - prefix, gateway, metric) < 0) { + if (virNetDevIPRouteAdd(def->bridge, addr, prefix, gateway, metric) < = 0) return -1; - } + return 0; } =20 static int networkWaitDadFinish(virNetworkObjPtr obj) { + virNetworkDefPtr def =3D virNetworkObjGetDef(obj); virNetworkIPDefPtr ipdef; virSocketAddrPtr *addrs =3D NULL, addr =3D NULL; size_t naddrs =3D 0; int ret =3D -1; =20 - VIR_DEBUG("Begin waiting for IPv6 DAD on network %s", obj->def->name); + VIR_DEBUG("Begin waiting for IPv6 DAD on network %s", def->name); =20 - while ((ipdef =3D virNetworkDefGetIPByIndex(obj->def, AF_INET6, naddrs= ))) { + while ((ipdef =3D virNetworkDefGetIPByIndex(def, AF_INET6, naddrs))) { addr =3D &ipdef->address; if (VIR_APPEND_ELEMENT_COPY(addrs, naddrs, addr) < 0) goto cleanup; @@ -2265,7 +2277,7 @@ networkWaitDadFinish(virNetworkObjPtr obj) cleanup: VIR_FREE(addrs); VIR_DEBUG("Finished waiting for IPv6 DAD on network %s with status %d", - obj->def->name, ret); + def->name, ret); return ret; } =20 @@ -2274,6 +2286,7 @@ static int networkStartNetworkVirtual(virNetworkDriverStatePtr driver, virNetworkObjPtr obj) { + virNetworkDefPtr def =3D virNetworkObjGetDef(obj); size_t i; bool v4present =3D false, v6present =3D false; virErrorPtr save_err =3D NULL; @@ -2286,11 +2299,11 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr= driver, pid_t dnsmasqPid; =20 /* Check to see if any network IP collides with an existing route */ - if (networkCheckRouteCollision(obj->def) < 0) + if (networkCheckRouteCollision(def) < 0) return -1; =20 /* Create and configure the bridge device */ - if (!obj->def->bridge) { + if (!def->bridge) { /* bridge name can only be empty if the config files were * edited directly. Otherwise networkValidate() (called after * parsing the XML from networkCreateXML() and @@ -2301,27 +2314,27 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr= driver, */ virReportError(VIR_ERR_INTERNAL_ERROR, _("network '%s' has no bridge name defined"), - obj->def->name); + def->name); return -1; } - if (virNetDevBridgeCreate(obj->def->bridge) < 0) + if (virNetDevBridgeCreate(def->bridge) < 0) return -1; =20 - if (obj->def->mac_specified) { + if (def->mac_specified) { /* To set a mac for the bridge, we need to define a dummy tap * device, set its mac, then attach it to the bridge. As long * as its mac address is lower than any other interface that * gets attached, the bridge will always maintain this mac * address. */ - macTapIfName =3D networkBridgeDummyNicName(obj->def->bridge); + macTapIfName =3D networkBridgeDummyNicName(def->bridge); if (!macTapIfName) goto err0; /* Keep tun fd open and interface up to allow for IPv6 DAD to happ= en */ - if (virNetDevTapCreateInBridgePort(obj->def->bridge, - &macTapIfName, &obj->def->mac, + if (virNetDevTapCreateInBridgePort(def->bridge, + &macTapIfName, &def->mac, NULL, NULL, &tapfd, 1, NULL, NU= LL, - NULL, obj->def->mtu, NULL, + NULL, def->mtu, NULL, VIR_NETDEV_TAP_CREATE_USE_MAC_F= OR_BRIDGE | VIR_NETDEV_TAP_CREATE_IFUP | VIR_NETDEV_TAP_CREATE_PERSIST) = < 0) { @@ -2331,7 +2344,7 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr d= river, } =20 if (!(macMapFile =3D virNetworkObjMacMgrFileName(driver->dnsmasqStateD= ir, - obj->def->bridge)) || + def->bridge)) || !(macmap =3D virMacMapNew(macMapFile))) goto err1; =20 @@ -2342,12 +2355,10 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr= driver, /* delay is configured in seconds, but virNetDevBridgeSetSTPDelay * expects milliseconds */ - if (virNetDevBridgeSetSTPDelay(obj->def->bridge, - obj->def->delay * 1000) < 0) + if (virNetDevBridgeSetSTPDelay(def->bridge, def->delay * 1000) < 0) goto err1; =20 - if (virNetDevBridgeSetSTP(obj->def->bridge, - obj->def->stp ? true : false) < 0) + if (virNetDevBridgeSetSTP(def->bridge, def->stp ? true : false) < 0) goto err1; =20 /* Disable IPv6 on the bridge if there are no IPv6 addresses @@ -2357,13 +2368,11 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr= driver, goto err1; =20 /* Add "once per network" rules */ - if (obj->def->forward.type !=3D VIR_NETWORK_FORWARD_OPEN && - networkAddFirewallRules(obj->def) < 0) + if (def->forward.type !=3D VIR_NETWORK_FORWARD_OPEN && + networkAddFirewallRules(def) < 0) goto err1; =20 - for (i =3D 0; - (ipdef =3D virNetworkDefGetIPByIndex(obj->def, AF_UNSPEC, i)); - i++) { + for (i =3D 0; (ipdef =3D virNetworkDefGetIPByIndex(def, AF_UNSPEC, i))= ; i++) { if (VIR_SOCKET_ADDR_IS_FAMILY(&ipdef->address, AF_INET)) v4present =3D true; if (VIR_SOCKET_ADDR_IS_FAMILY(&ipdef->address, AF_INET6)) @@ -2378,13 +2387,13 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr= driver, goto err2; =20 /* Bring up the bridge interface */ - if (virNetDevSetOnline(obj->def->bridge, 1) < 0) + if (virNetDevSetOnline(def->bridge, 1) < 0) goto err2; =20 - for (i =3D 0; i < obj->def->nroutes; i++) { + for (i =3D 0; i < def->nroutes; i++) { virSocketAddrPtr gateway =3D NULL; =20 - routedef =3D obj->def->routes[i]; + routedef =3D def->routes[i]; gateway =3D virNetDevIPRouteGetGateway(routedef); =20 /* Add the IP route to the bridge */ @@ -2399,7 +2408,7 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr d= river, } =20 /* If forward.type !=3D NONE, turn on global IP forwarding */ - if (obj->def->forward.type !=3D VIR_NETWORK_FORWARD_NONE) { + if (def->forward.type !=3D VIR_NETWORK_FORWARD_NONE) { if (v6present && !virNetDevIPCheckIPv6Forwarding()) goto err3; /* Precise error message already provided */ =20 @@ -2435,7 +2444,7 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr d= river, VIR_FORCE_CLOSE(tapfd); } =20 - if (virNetDevBandwidthSet(obj->def->bridge, obj->def->bandwidth, true)= < 0) + if (virNetDevBandwidthSet(def->bridge, def->bandwidth, true) < 0) goto err5; =20 VIR_FREE(macTapIfName); @@ -2444,8 +2453,8 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr d= river, return 0; =20 err5: - if (obj->def->bandwidth) - virNetDevBandwidthClear(obj->def->bridge); + if (def->bandwidth) + virNetDevBandwidthClear(def->bridge); =20 err4: if (!save_err) @@ -2460,13 +2469,13 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr= driver, err3: if (!save_err) save_err =3D virSaveLastError(); - ignore_value(virNetDevSetOnline(obj->def->bridge, 0)); + ignore_value(virNetDevSetOnline(def->bridge, 0)); =20 err2: if (!save_err) save_err =3D virSaveLastError(); - if (obj->def->forward.type !=3D VIR_NETWORK_FORWARD_OPEN) - networkRemoveFirewallRules(obj->def); + if (def->forward.type !=3D VIR_NETWORK_FORWARD_OPEN) + networkRemoveFirewallRules(def); =20 err1: if (!save_err) @@ -2482,7 +2491,7 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr d= river, err0: if (!save_err) save_err =3D virSaveLastError(); - ignore_value(virNetDevBridgeDelete(obj->def->bridge)); + ignore_value(virNetDevBridgeDelete(def->bridge)); =20 if (save_err) { virSetError(save_err); @@ -2497,11 +2506,12 @@ static int networkShutdownNetworkVirtual(virNetworkDriverStatePtr driver, virNetworkObjPtr obj) { + virNetworkDefPtr def =3D virNetworkObjGetDef(obj); pid_t radvdPid; pid_t dnsmasqPid; =20 - if (obj->def->bandwidth) - virNetDevBandwidthClear(obj->def->bridge); + if (def->bandwidth) + virNetDevBandwidthClear(def->bridge); =20 virNetworkObjUnrefMacMap(obj); =20 @@ -2511,7 +2521,7 @@ networkShutdownNetworkVirtual(virNetworkDriverStatePt= r driver, =20 kill(radvdPid, SIGTERM); /* attempt to delete the pidfile we created */ - if ((radvdpidbase =3D networkRadvdPidfileBasename(obj->def->name))= ) { + if ((radvdpidbase =3D networkRadvdPidfileBasename(def->name))) { virPidFileDelete(driver->pidDir, radvdpidbase); VIR_FREE(radvdpidbase); } @@ -2521,20 +2531,20 @@ networkShutdownNetworkVirtual(virNetworkDriverState= Ptr driver, if (dnsmasqPid > 0) kill(dnsmasqPid, SIGTERM); =20 - if (obj->def->mac_specified) { - char *macTapIfName =3D networkBridgeDummyNicName(obj->def->bridge); + if (def->mac_specified) { + char *macTapIfName =3D networkBridgeDummyNicName(def->bridge); if (macTapIfName) { ignore_value(virNetDevTapDelete(macTapIfName, NULL)); VIR_FREE(macTapIfName); } } =20 - ignore_value(virNetDevSetOnline(obj->def->bridge, 0)); + ignore_value(virNetDevSetOnline(def->bridge, 0)); =20 - if (obj->def->forward.type !=3D VIR_NETWORK_FORWARD_OPEN) - networkRemoveFirewallRules(obj->def); + if (def->forward.type !=3D VIR_NETWORK_FORWARD_OPEN) + networkRemoveFirewallRules(def); =20 - ignore_value(virNetDevBridgeDelete(obj->def->bridge)); + ignore_value(virNetDevBridgeDelete(def->bridge)); =20 /* See if its still alive and really really kill it */ dnsmasqPid =3D virNetworkObjGetDnsmasqPid(obj); @@ -2691,7 +2701,7 @@ networkStartNetworkExternal(virNetworkObjPtr obj) * failure, undo anything you've done, and return -1. On success * return 0. */ - return networkCreateInterfacePool(obj->def); + return networkCreateInterfacePool(virNetworkObjGetDef(obj)); } =20 =20 @@ -2711,6 +2721,7 @@ static int networkStartNetwork(virNetworkDriverStatePtr driver, virNetworkObjPtr obj) { + virNetworkDefPtr def =3D virNetworkObjGetDef(obj); int ret =3D -1; =20 VIR_DEBUG("driver=3D%p, network=3D%p", driver, obj); @@ -2734,7 +2745,7 @@ networkStartNetwork(virNetworkDriverStatePtr driver, VIR_HOOK_SUBOP_BEGIN) < 0) goto cleanup; =20 - switch (obj->def->forward.type) { + switch (def->forward.type) { =20 case VIR_NETWORK_FORWARD_NONE: case VIR_NETWORK_FORWARD_NAT: @@ -2745,7 +2756,7 @@ networkStartNetwork(virNetworkDriverStatePtr driver, break; =20 case VIR_NETWORK_FORWARD_BRIDGE: - if (obj->def->bridge) { + if (def->bridge) { if (networkStartNetworkBridge(obj) < 0) goto cleanup; break; @@ -2779,7 +2790,7 @@ networkStartNetwork(virNetworkDriverStatePtr driver, goto cleanup; =20 obj->active =3D 1; - VIR_INFO("Network '%s' started up", obj->def->name); + VIR_INFO("Network '%s' started up", def->name); ret =3D 0; =20 cleanup: @@ -2800,23 +2811,23 @@ static int networkShutdownNetwork(virNetworkDriverStatePtr driver, virNetworkObjPtr obj) { + virNetworkDefPtr def =3D virNetworkObjGetDef(obj); int ret =3D 0; char *stateFile; =20 - VIR_INFO("Shutting down network '%s'", obj->def->name); + VIR_INFO("Shutting down network '%s'", def->name); =20 if (!virNetworkObjIsActive(obj)) return 0; =20 - stateFile =3D virNetworkConfigFile(driver->stateDir, - obj->def->name); + stateFile =3D virNetworkConfigFile(driver->stateDir, def->name); if (!stateFile) return -1; =20 unlink(stateFile); VIR_FREE(stateFile); =20 - switch (obj->def->forward.type) { + switch (def->forward.type) { =20 case VIR_NETWORK_FORWARD_NONE: case VIR_NETWORK_FORWARD_NAT: @@ -2826,7 +2837,7 @@ networkShutdownNetwork(virNetworkDriverStatePtr drive= r, break; =20 case VIR_NETWORK_FORWARD_BRIDGE: - if (obj->def->bridge) { + if (def->bridge) { ret =3D networkShutdownNetworkBridge(obj); break; } @@ -2860,6 +2871,7 @@ networkLookupByUUID(virConnectPtr conn, { virNetworkDriverStatePtr driver =3D networkGetDriver(); virNetworkObjPtr obj; + virNetworkDefPtr def; virNetworkPtr net =3D NULL; =20 obj =3D virNetworkObjFindByUUID(driver->networks, uuid); @@ -2871,11 +2883,12 @@ networkLookupByUUID(virConnectPtr conn, uuidstr); goto cleanup; } + def =3D virNetworkObjGetDef(obj); =20 - if (virNetworkLookupByUUIDEnsureACL(conn, obj->def) < 0) + if (virNetworkLookupByUUIDEnsureACL(conn, def) < 0) goto cleanup; =20 - net =3D virGetNetwork(conn, obj->def->name, obj->def->uuid); + net =3D virGetNetwork(conn, def->name, def->uuid); =20 cleanup: virNetworkObjEndAPI(&obj); @@ -2889,6 +2902,7 @@ networkLookupByName(virConnectPtr conn, { virNetworkDriverStatePtr driver =3D networkGetDriver(); virNetworkObjPtr obj; + virNetworkDefPtr def; virNetworkPtr net =3D NULL; =20 obj =3D virNetworkObjFindByName(driver->networks, name); @@ -2897,11 +2911,12 @@ networkLookupByName(virConnectPtr conn, _("no network with matching name '%s'"), name); goto cleanup; } + def =3D virNetworkObjGetDef(obj); =20 - if (virNetworkLookupByNameEnsureACL(conn, obj->def) < 0) + if (virNetworkLookupByNameEnsureACL(conn, def) < 0) goto cleanup; =20 - net =3D virGetNetwork(conn, obj->def->name, obj->def->uuid); + net =3D virGetNetwork(conn, def->name, def->uuid); =20 cleanup: virNetworkObjEndAPI(&obj); @@ -3061,7 +3076,7 @@ networkIsActive(virNetworkPtr net) if (!(obj =3D networkObjFromNetwork(net))) return ret; =20 - if (virNetworkIsActiveEnsureACL(net->conn, obj->def) < 0) + if (virNetworkIsActiveEnsureACL(net->conn, virNetworkObjGetDef(obj)) <= 0) goto cleanup; =20 ret =3D virNetworkObjIsActive(obj); @@ -3081,7 +3096,7 @@ networkIsPersistent(virNetworkPtr net) if (!(obj =3D networkObjFromNetwork(net))) return ret; =20 - if (virNetworkIsPersistentEnsureACL(net->conn, obj->def) < 0) + if (virNetworkIsPersistentEnsureACL(net->conn, virNetworkObjGetDef(obj= )) < 0) goto cleanup; =20 ret =3D obj->persistent; @@ -3460,6 +3475,7 @@ networkCreateXML(virConnectPtr conn, virNetworkDriverStatePtr driver =3D networkGetDriver(); virNetworkDefPtr def; virNetworkObjPtr obj =3D NULL; + virNetworkDefPtr objdef; virNetworkPtr net =3D NULL; virObjectEventPtr event =3D NULL; =20 @@ -3481,19 +3497,20 @@ networkCreateXML(virConnectPtr conn, VIR_NETWORK_OBJ_LIST_ADD_CHECK_LIVE= ))) goto cleanup; def =3D NULL; + objdef =3D virNetworkObjGetDef(obj); =20 if (networkStartNetwork(driver, obj) < 0) { virNetworkObjRemoveInactive(driver->networks, obj); goto cleanup; } =20 - event =3D virNetworkEventLifecycleNew(obj->def->name, - obj->def->uuid, + event =3D virNetworkEventLifecycleNew(objdef->name, + objdef->uuid, VIR_NETWORK_EVENT_STARTED, 0); =20 - VIR_INFO("Creating network '%s'", obj->def->name); - net =3D virGetNetwork(conn, obj->def->name, obj->def->uuid); + VIR_INFO("Creating network '%s'", objdef->name); + net =3D virGetNetwork(conn, objdef->name, objdef->uuid); =20 cleanup: virNetworkDefFree(def); @@ -3565,14 +3582,16 @@ networkUndefine(virNetworkPtr net) { virNetworkDriverStatePtr driver =3D networkGetDriver(); virNetworkObjPtr obj; + virNetworkDefPtr def; int ret =3D -1; bool active =3D false; virObjectEventPtr event =3D NULL; =20 if (!(obj =3D networkObjFromNetwork(net))) goto cleanup; + def =3D virNetworkObjGetDef(obj); =20 - if (virNetworkUndefineEnsureACL(net->conn, obj->def) < 0) + if (virNetworkUndefineEnsureACL(net->conn, def) < 0) goto cleanup; =20 if (virNetworkObjIsActive(obj)) @@ -3590,12 +3609,12 @@ networkUndefine(virNetworkPtr net) obj) < 0) goto cleanup; =20 - event =3D virNetworkEventLifecycleNew(obj->def->name, - obj->def->uuid, + event =3D virNetworkEventLifecycleNew(def->name, + def->uuid, VIR_NETWORK_EVENT_UNDEFINED, 0); =20 - VIR_INFO("Undefining network '%s'", obj->def->name); + VIR_INFO("Undefining network '%s'", def->name); if (!active) { if (networkRemoveInactive(driver, obj) < 0) goto cleanup; @@ -3627,6 +3646,7 @@ networkUpdate(virNetworkPtr net, { virNetworkDriverStatePtr driver =3D networkGetDriver(); virNetworkObjPtr obj =3D NULL; + virNetworkDefPtr def; int isActive, ret =3D -1; size_t i; virNetworkIPDefPtr ipdef; @@ -3640,13 +3660,14 @@ networkUpdate(virNetworkPtr net, =20 if (!(obj =3D networkObjFromNetwork(net))) goto cleanup; + def =3D virNetworkObjGetDef(obj); =20 - if (virNetworkUpdateEnsureACL(net->conn, obj->def, flags) < 0) + if (virNetworkUpdateEnsureACL(net->conn, def, flags) < 0) goto cleanup; =20 /* see if we are listening for dhcp pre-modification */ for (i =3D 0; - (ipdef =3D virNetworkDefGetIPByIndex(obj->def, AF_INET, i)); + (ipdef =3D virNetworkDefGetIPByIndex(def, AF_INET, i)); i++) { if (ipdef->nranges || ipdef->nhosts) { oldDhcpActive =3D true; @@ -3671,9 +3692,9 @@ networkUpdate(virNetworkPtr net, /* Take care of anything that must be done before updating the * live NetworkDef. */ - if (obj->def->forward.type =3D=3D VIR_NETWORK_FORWARD_NONE || - obj->def->forward.type =3D=3D VIR_NETWORK_FORWARD_NAT || - obj->def->forward.type =3D=3D VIR_NETWORK_FORWARD_ROUTE) { + if (def->forward.type =3D=3D VIR_NETWORK_FORWARD_NONE || + def->forward.type =3D=3D VIR_NETWORK_FORWARD_NAT || + def->forward.type =3D=3D VIR_NETWORK_FORWARD_ROUTE) { switch (section) { case VIR_NETWORK_SECTION_FORWARD: case VIR_NETWORK_SECTION_FORWARD_INTERFACE: @@ -3684,8 +3705,8 @@ networkUpdate(virNetworkPtr net, * old rules (and remember to load new ones after the * update). */ - if (obj->def->forward.type !=3D VIR_NETWORK_FORWARD_OPEN) { - networkRemoveFirewallRules(obj->def); + if (def->forward.type !=3D VIR_NETWORK_FORWARD_OPEN) { + networkRemoveFirewallRules(def); needFirewallRefresh =3D true; } break; @@ -3698,11 +3719,11 @@ networkUpdate(virNetworkPtr net, /* update the network config in memory/on disk */ if (virNetworkObjUpdate(obj, command, section, parentIndex, xml, flags= ) < 0) { if (needFirewallRefresh) - ignore_value(networkAddFirewallRules(obj->def)); + ignore_value(networkAddFirewallRules(def)); goto cleanup; } =20 - if (needFirewallRefresh && networkAddFirewallRules(obj->def) < 0) + if (needFirewallRefresh && networkAddFirewallRules(def) < 0) goto cleanup; =20 if (flags & VIR_NETWORK_UPDATE_AFFECT_CONFIG) { @@ -3742,8 +3763,7 @@ networkUpdate(virNetworkPtr net, */ bool newDhcpActive =3D false; =20 - for (i =3D 0; - (ipdef =3D virNetworkDefGetIPByIndex(obj->def, AF_INET, i= )); + for (i =3D 0; (ipdef =3D virNetworkDefGetIPByIndex(def, AF_INE= T, i)); i++) { if (ipdef->nranges || ipdef->nhosts) { newDhcpActive =3D true; @@ -3797,20 +3817,22 @@ networkCreate(virNetworkPtr net) { virNetworkDriverStatePtr driver =3D networkGetDriver(); virNetworkObjPtr obj; + virNetworkDefPtr def; int ret =3D -1; virObjectEventPtr event =3D NULL; =20 if (!(obj =3D networkObjFromNetwork(net))) goto cleanup; + def =3D virNetworkObjGetDef(obj); =20 - if (virNetworkCreateEnsureACL(net->conn, obj->def) < 0) + if (virNetworkCreateEnsureACL(net->conn, def) < 0) goto cleanup; =20 if ((ret =3D networkStartNetwork(driver, obj)) < 0) goto cleanup; =20 - event =3D virNetworkEventLifecycleNew(obj->def->name, - obj->def->uuid, + event =3D virNetworkEventLifecycleNew(def->name, + def->uuid, VIR_NETWORK_EVENT_STARTED, 0); =20 @@ -3827,27 +3849,29 @@ networkDestroy(virNetworkPtr net) { virNetworkDriverStatePtr driver =3D networkGetDriver(); virNetworkObjPtr obj; + virNetworkDefPtr def; int ret =3D -1; virObjectEventPtr event =3D NULL; =20 if (!(obj =3D networkObjFromNetwork(net))) goto cleanup; + def =3D virNetworkObjGetDef(obj); =20 - if (virNetworkDestroyEnsureACL(net->conn, obj->def) < 0) + if (virNetworkDestroyEnsureACL(net->conn, def) < 0) goto cleanup; =20 if (!virNetworkObjIsActive(obj)) { virReportError(VIR_ERR_OPERATION_INVALID, _("network '%s' is not active"), - obj->def->name); + def->name); goto cleanup; } =20 if ((ret =3D networkShutdownNetwork(driver, obj)) < 0) goto cleanup; =20 - event =3D virNetworkEventLifecycleNew(obj->def->name, - obj->def->uuid, + event =3D virNetworkEventLifecycleNew(def->name, + def->uuid, VIR_NETWORK_EVENT_STOPPED, 0); =20 @@ -3870,20 +3894,24 @@ networkGetXMLDesc(virNetworkPtr net, { virNetworkObjPtr obj; virNetworkDefPtr def; + virNetworkDefPtr objdef; + virNetworkDefPtr newDef; char *ret =3D NULL; =20 virCheckFlags(VIR_NETWORK_XML_INACTIVE, NULL); =20 if (!(obj =3D networkObjFromNetwork(net))) return ret; + objdef =3D virNetworkObjGetDef(obj); + newDef =3D virNetworkObjGetNewDef(obj); =20 - if (virNetworkGetXMLDescEnsureACL(net->conn, obj->def) < 0) + if (virNetworkGetXMLDescEnsureACL(net->conn, objdef) < 0) goto cleanup; =20 - if ((flags & VIR_NETWORK_XML_INACTIVE) && obj->newDef) - def =3D obj->newDef; + if ((flags & VIR_NETWORK_XML_INACTIVE) && newDef) + def =3D newDef; else - def =3D obj->def; + def =3D objdef; =20 ret =3D virNetworkDefFormat(def, flags); =20 @@ -3897,22 +3925,24 @@ static char * networkGetBridgeName(virNetworkPtr net) { virNetworkObjPtr obj; + virNetworkDefPtr def; char *bridge =3D NULL; =20 if (!(obj =3D networkObjFromNetwork(net))) return bridge; + def =3D virNetworkObjGetDef(obj); =20 - if (virNetworkGetBridgeNameEnsureACL(net->conn, obj->def) < 0) + if (virNetworkGetBridgeNameEnsureACL(net->conn, def) < 0) goto cleanup; =20 - if (!(obj->def->bridge)) { + if (!(def->bridge)) { virReportError(VIR_ERR_INTERNAL_ERROR, _("network '%s' does not have a bridge name."), - obj->def->name); + def->name); goto cleanup; } =20 - ignore_value(VIR_STRDUP(bridge, obj->def->bridge)); + ignore_value(VIR_STRDUP(bridge, def->bridge)); =20 cleanup: virNetworkObjEndAPI(&obj); @@ -3930,7 +3960,7 @@ networkGetAutostart(virNetworkPtr net, if (!(obj =3D networkObjFromNetwork(net))) return ret; =20 - if (virNetworkGetAutostartEnsureACL(net->conn, obj->def) < 0) + if (virNetworkGetAutostartEnsureACL(net->conn, virNetworkObjGetDef(obj= )) < 0) goto cleanup; =20 *autostart =3D obj->autostart; @@ -3948,14 +3978,15 @@ networkSetAutostart(virNetworkPtr net, { virNetworkDriverStatePtr driver =3D networkGetDriver(); virNetworkObjPtr obj; + virNetworkDefPtr def; char *configFile =3D NULL, *autostartLink =3D NULL; int ret =3D -1; =20 - if (!(obj =3D networkObjFromNetwork(net))) goto cleanup; + def =3D virNetworkObjGetDef(obj); =20 - if (virNetworkSetAutostartEnsureACL(net->conn, obj->def) < 0) + if (virNetworkSetAutostartEnsureACL(net->conn, def) < 0) goto cleanup; =20 if (!obj->persistent) { @@ -3967,9 +3998,11 @@ networkSetAutostart(virNetworkPtr net, autostart =3D (autostart !=3D 0); =20 if (obj->autostart !=3D autostart) { - if ((configFile =3D virNetworkConfigFile(driver->networkConfigDir,= obj->def->name)) =3D=3D NULL) + if ((configFile =3D virNetworkConfigFile(driver->networkConfigDir, + def->name)) =3D=3D NULL) goto cleanup; - if ((autostartLink =3D virNetworkConfigFile(driver->networkAutosta= rtDir, obj->def->name)) =3D=3D NULL) + if ((autostartLink =3D virNetworkConfigFile(driver->networkAutosta= rtDir, + def->name)) =3D=3D NULL) goto cleanup; =20 if (autostart) { @@ -4033,6 +4066,7 @@ networkGetDHCPLeases(virNetworkPtr net, virNetworkDHCPLeasePtr lease =3D NULL; virNetworkDHCPLeasePtr *leases_ret =3D NULL; virNetworkObjPtr obj; + virNetworkDefPtr def; virMacAddr mac_addr; =20 virCheckFlags(0, -1); @@ -4045,12 +4079,13 @@ networkGetDHCPLeases(virNetworkPtr net, =20 if (!(obj =3D networkObjFromNetwork(net))) return -1; + def =3D virNetworkObjGetDef(obj); =20 - if (virNetworkGetDHCPLeasesEnsureACL(net->conn, obj->def) < 0) + if (virNetworkGetDHCPLeasesEnsureACL(net->conn, def) < 0) goto cleanup; =20 /* Retrieve custom leases file location */ - custom_lease_file =3D networkDnsmasqLeaseFileNameCustom(driver, obj->d= ef->bridge); + custom_lease_file =3D networkDnsmasqLeaseFileNameCustom(driver, def->b= ridge); =20 /* Read entire contents */ if ((custom_lease_file_len =3D virFileReadAll(custom_lease_file, @@ -4126,8 +4161,8 @@ networkGetDHCPLeases(virNetworkPtr net, lease->type =3D ipv6 ? VIR_IP_ADDR_TYPE_IPV6 : VIR_IP_ADDR_TYP= E_IPV4; =20 /* Obtain prefix */ - for (j =3D 0; j < obj->def->nips; j++) { - ipdef_tmp =3D &obj->def->ips[j]; + for (j =3D 0; j < def->nips; j++) { + ipdef_tmp =3D &def->ips[j]; =20 if (ipv6 && VIR_SOCKET_ADDR_IS_FAMILY(&ipdef_tmp->address, AF_INET6)) { @@ -4145,7 +4180,7 @@ networkGetDHCPLeases(virNetworkPtr net, =20 if ((VIR_STRDUP(lease->mac, mac_tmp) < 0) || (VIR_STRDUP(lease->ipaddr, ip_tmp) < 0) || - (VIR_STRDUP(lease->iface, obj->def->bridge) < 0)) + (VIR_STRDUP(lease->iface, def->bridge) < 0)) goto error; =20 /* Fields that can be NULL */ @@ -4328,7 +4363,7 @@ networkAllocateActualDevice(virDomainDefPtr dom, iface->data.network.name); goto error; } - netdef =3D obj->def; + netdef =3D virNetworkObjGetDef(obj); =20 if (!virNetworkObjIsActive(obj)) { virReportError(VIR_ERR_OPERATION_INVALID, @@ -4743,7 +4778,7 @@ networkNotifyActualDevice(virDomainDefPtr dom, iface->data.network.name); goto error; } - netdef =3D obj->def; + netdef =3D virNetworkObjGetDef(obj); =20 if (!virNetworkObjIsActive(obj)) { virReportError(VIR_ERR_OPERATION_INVALID, @@ -4960,7 +4995,7 @@ networkReleaseActualDevice(virDomainDefPtr dom, iface->data.network.name); goto error; } - netdef =3D obj->def; + netdef =3D virNetworkObjGetDef(obj); =20 if (iface->data.network.actual && (netdef->forward.type =3D=3D VIR_NETWORK_FORWARD_NONE || @@ -5111,7 +5146,7 @@ networkGetNetworkAddress(const char *netname, netname); goto cleanup; } - netdef =3D obj->def; + netdef =3D virNetworkObjGetDef(obj); =20 switch (netdef->forward.type) { case VIR_NETWORK_FORWARD_NONE: @@ -5200,7 +5235,7 @@ networkGetActualType(virDomainNetDefPtr iface) iface->data.network.name); return -1; } - netdef =3D obj->def; + netdef =3D virNetworkObjGetDef(obj); =20 if ((netdef->forward.type =3D=3D VIR_NETWORK_FORWARD_NONE) || (netdef->forward.type =3D=3D VIR_NETWORK_FORWARD_NAT) || @@ -5271,7 +5306,8 @@ networkCheckBandwidth(virNetworkObjPtr obj, unsigned long long *new_rate) { int ret =3D -1; - virNetDevBandwidthPtr netBand =3D obj->def->bandwidth; + virNetworkDefPtr def =3D virNetworkObjGetDef(obj); + virNetDevBandwidthPtr netBand =3D def->bandwidth; unsigned long long tmp_floor_sum =3D virNetworkObjGetFloorSum(obj); unsigned long long tmp_new_rate =3D 0; char ifmac[VIR_MAC_STRING_BUFLEN]; @@ -5283,7 +5319,7 @@ networkCheckBandwidth(virNetworkObjPtr obj, virReportError(VIR_ERR_OPERATION_UNSUPPORTED, _("Invalid use of 'floor' on interface with MAC " "address %s - network '%s' has no inbound QoS set= "), - ifmac, obj->def->name); + ifmac, def->name); return -1; } =20 @@ -5308,8 +5344,8 @@ networkCheckBandwidth(virNetworkObjPtr obj, _("Cannot plug '%s' interface into '%s' because= it " "would overcommit 'peak' on network '%s'"), ifmac, - obj->def->bridge, - obj->def->name); + def->bridge, + def->name); goto cleanup; } } else if (tmp_floor_sum > netBand->in->average) { @@ -5319,8 +5355,8 @@ networkCheckBandwidth(virNetworkObjPtr obj, _("Cannot plug '%s' interface into '%s' because it " "would overcommit 'average' on network '%s'"), ifmac, - obj->def->bridge, - obj->def->name); + def->bridge, + def->name); goto cleanup; } =20 @@ -5365,6 +5401,7 @@ networkPlugBandwidthImpl(virNetworkObjPtr obj, unsigned long long new_rate) { virNetworkDriverStatePtr driver =3D networkGetDriver(); + virNetworkDefPtr def =3D virNetworkObjGetDef(obj); virBitmapPtr classIdMap =3D virNetworkObjGetClassIdMap(obj); unsigned long long tmp_floor_sum =3D virNetworkObjGetFloorSum(obj); ssize_t class_id =3D 0; @@ -5378,10 +5415,10 @@ networkPlugBandwidthImpl(virNetworkObjPtr obj, goto cleanup; } =20 - plug_ret =3D virNetDevBandwidthPlug(obj->def->bridge, obj->def->bandwi= dth, + plug_ret =3D virNetDevBandwidthPlug(def->bridge, def->bandwidth, &iface->mac, ifaceBand, class_id); if (plug_ret < 0) { - ignore_value(virNetDevBandwidthUnplug(obj->def->bridge, class_id)); + ignore_value(virNetDevBandwidthUnplug(def->bridge, class_id)); goto cleanup; } =20 @@ -5396,15 +5433,15 @@ networkPlugBandwidthImpl(virNetworkObjPtr obj, tmp_floor_sum -=3D ifaceBand->in->floor; virNetworkObjSetFloorSum(obj, tmp_floor_sum); iface->data.network.actual->class_id =3D 0; - ignore_value(virNetDevBandwidthUnplug(obj->def->bridge, class_id)); + ignore_value(virNetDevBandwidthUnplug(def->bridge, class_id)); goto cleanup; } /* update rate for non guaranteed NICs */ new_rate -=3D tmp_floor_sum; - if (virNetDevBandwidthUpdateRate(obj->def->bridge, 2, - obj->def->bandwidth, new_rate) < 0) + if (virNetDevBandwidthUpdateRate(def->bridge, 2, + def->bandwidth, new_rate) < 0) VIR_WARN("Unable to update rate for 1:2 class on %s bridge", - obj->def->bridge); + def->bridge); =20 ret =3D 0; cleanup: @@ -5457,6 +5494,7 @@ static int networkUnplugBandwidth(virNetworkObjPtr obj, virDomainNetDefPtr iface) { + virNetworkDefPtr def =3D virNetworkObjGetDef(obj); virBitmapPtr classIdMap =3D virNetworkObjGetClassIdMap(obj); unsigned long long tmp_floor_sum =3D virNetworkObjGetFloorSum(obj); virNetworkDriverStatePtr driver =3D networkGetDriver(); @@ -5466,18 +5504,18 @@ networkUnplugBandwidth(virNetworkObjPtr obj, =20 if (iface->data.network.actual && iface->data.network.actual->class_id) { - if (!obj->def->bandwidth || !obj->def->bandwidth->in) { + if (!def->bandwidth || !def->bandwidth->in) { VIR_WARN("Network %s has no bandwidth but unplug requested", - obj->def->name); + def->name); goto cleanup; } /* we must remove class from bridge */ - new_rate =3D obj->def->bandwidth->in->average; + new_rate =3D def->bandwidth->in->average; =20 - if (obj->def->bandwidth->in->peak > 0) - new_rate =3D obj->def->bandwidth->in->peak; + if (def->bandwidth->in->peak > 0) + new_rate =3D def->bandwidth->in->peak; =20 - ret =3D virNetDevBandwidthUnplug(obj->def->bridge, + ret =3D virNetDevBandwidthUnplug(def->bridge, iface->data.network.actual->class_i= d); if (ret < 0) goto cleanup; @@ -5498,10 +5536,10 @@ networkUnplugBandwidth(virNetworkObjPtr obj, } /* update rate for non guaranteed NICs */ new_rate -=3D tmp_floor_sum; - if (virNetDevBandwidthUpdateRate(obj->def->bridge, 2, - obj->def->bandwidth, new_rate) < = 0) + if (virNetDevBandwidthUpdateRate(def->bridge, 2, + def->bandwidth, new_rate) < 0) VIR_WARN("Unable to update rate for 1:2 class on %s bridge", - obj->def->bridge); + def->bridge); /* no class is associated any longer */ iface->data.network.actual->class_id =3D 0; } @@ -5515,14 +5553,14 @@ static void networkNetworkObjTaint(virNetworkObjPtr obj, virNetworkTaintFlags taint) { + virNetworkDefPtr def =3D virNetworkObjGetDef(obj); + if (virNetworkObjTaint(obj, taint)) { char uuidstr[VIR_UUID_STRING_BUFLEN]; - virUUIDFormat(obj->def->uuid, uuidstr); + virUUIDFormat(def->uuid, uuidstr); =20 VIR_WARN("Network name=3D'%s' uuid=3D%s is tainted: %s", - obj->def->name, - uuidstr, - virNetworkTaintTypeToString(taint)); + def->name, uuidstr, virNetworkTaintTypeToString(taint)); } } =20 @@ -5589,6 +5627,7 @@ networkBandwidthUpdate(virDomainNetDefPtr iface, { virNetworkDriverStatePtr driver =3D networkGetDriver(); virNetworkObjPtr obj =3D NULL; + virNetworkDefPtr def; unsigned long long tmp_floor_sum; virNetDevBandwidthPtr ifaceBand =3D virDomainNetGetActualBandwidth(ifa= ce); unsigned long long new_rate =3D 0; @@ -5605,6 +5644,7 @@ networkBandwidthUpdate(virDomainNetDefPtr iface, iface->data.network.name); return ret; } + def =3D virNetworkObjGetDef(obj); =20 if ((plug_ret =3D networkCheckBandwidth(obj, newBandwidth, ifaceBand, iface->mac, &new_rate)) < 0) { @@ -5624,9 +5664,9 @@ networkBandwidthUpdate(virDomainNetDefPtr iface, newBandwidth->in && newBandwidth->in->floor) { /* Either we just need to update @floor .. */ =20 - if (virNetDevBandwidthUpdateRate(obj->def->bridge, + if (virNetDevBandwidthUpdateRate(def->bridge, iface->data.network.actual->class= _id, - obj->def->bandwidth, + def->bandwidth, newBandwidth->in->floor) < 0) goto cleanup; =20 @@ -5636,17 +5676,17 @@ networkBandwidthUpdate(virDomainNetDefPtr iface, virNetworkObjSetFloorSum(obj, tmp_floor_sum); new_rate -=3D tmp_floor_sum; =20 - if (virNetDevBandwidthUpdateRate(obj->def->bridge, 2, - obj->def->bandwidth, new_rate) < = 0 || + if (virNetDevBandwidthUpdateRate(def->bridge, 2, + def->bandwidth, new_rate) < 0 || virNetworkObjSaveStatus(driver->stateDir, obj) < 0) { /* Ouch, rollback */ tmp_floor_sum -=3D newBandwidth->in->floor; tmp_floor_sum +=3D ifaceBand->in->floor; virNetworkObjSetFloorSum(obj, tmp_floor_sum); =20 - ignore_value(virNetDevBandwidthUpdateRate(obj->def->bridge, + ignore_value(virNetDevBandwidthUpdateRate(def->bridge, iface->data.network.= actual->class_id, - obj->def->bandwidth, + def->bandwidth, ifaceBand->in->floor= )); goto cleanup; } diff --git a/src/test/test_driver.c b/src/test/test_driver.c index 46f0a9a..ee473ba 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -3230,12 +3230,14 @@ testNetworkLookupByUUID(virConnectPtr conn, { testDriverPtr privconn =3D conn->privateData; virNetworkObjPtr obj; + virNetworkDefPtr def; virNetworkPtr net =3D NULL; =20 if (!(obj =3D testNetworkObjFindByUUID(privconn, uuid))) goto cleanup; + def =3D virNetworkObjGetDef(obj); =20 - net =3D virGetNetwork(conn, obj->def->name, obj->def->uuid); + net =3D virGetNetwork(conn, def->name, def->uuid); =20 cleanup: virNetworkObjEndAPI(&obj); @@ -3264,12 +3266,14 @@ testNetworkLookupByName(virConnectPtr conn, { testDriverPtr privconn =3D conn->privateData; virNetworkObjPtr obj; + virNetworkDefPtr def; virNetworkPtr net =3D NULL; =20 if (!(obj =3D testNetworkObjFindByName(privconn, name))) goto cleanup; + def =3D virNetworkObjGetDef(obj); =20 - net =3D virGetNetwork(conn, obj->def->name, obj->def->uuid); + net =3D virGetNetwork(conn, def->name, def->uuid); =20 cleanup: virNetworkObjEndAPI(&obj); @@ -3384,6 +3388,7 @@ testNetworkCreateXML(virConnectPtr conn, const char *= xml) testDriverPtr privconn =3D conn->privateData; virNetworkDefPtr def; virNetworkObjPtr obj =3D NULL; + virNetworkDefPtr objdef; virNetworkPtr net =3D NULL; virObjectEventPtr event =3D NULL; =20 @@ -3395,13 +3400,14 @@ testNetworkCreateXML(virConnectPtr conn, const char= *xml) VIR_NETWORK_OBJ_LIST_ADD_CHECK_LIVE= ))) goto cleanup; def =3D NULL; + objdef =3D virNetworkObjGetDef(obj); obj->active =3D 1; =20 - event =3D virNetworkEventLifecycleNew(obj->def->name, obj->def->uuid, + event =3D virNetworkEventLifecycleNew(objdef->name, objdef->uuid, VIR_NETWORK_EVENT_STARTED, 0); =20 - net =3D virGetNetwork(conn, obj->def->name, obj->def->uuid); + net =3D virGetNetwork(conn, objdef->name, objdef->uuid); =20 cleanup: virNetworkDefFree(def); @@ -3418,6 +3424,7 @@ testNetworkDefineXML(virConnectPtr conn, testDriverPtr privconn =3D conn->privateData; virNetworkDefPtr def; virNetworkObjPtr obj =3D NULL; + virNetworkDefPtr objdef; virNetworkPtr net =3D NULL; virObjectEventPtr event =3D NULL; =20 @@ -3427,12 +3434,13 @@ testNetworkDefineXML(virConnectPtr conn, if (!(obj =3D virNetworkObjAssignDef(privconn->networks, def, 0))) goto cleanup; def =3D NULL; + objdef =3D virNetworkObjGetDef(obj); =20 - event =3D virNetworkEventLifecycleNew(obj->def->name, obj->def->uuid, + event =3D virNetworkEventLifecycleNew(objdef->name, objdef->uuid, VIR_NETWORK_EVENT_DEFINED, 0); =20 - net =3D virGetNetwork(conn, obj->def->name, obj->def->uuid); + net =3D virGetNetwork(conn, objdef->name, objdef->uuid); =20 cleanup: virNetworkDefFree(def); @@ -3521,11 +3529,13 @@ testNetworkCreate(virNetworkPtr net) { testDriverPtr privconn =3D net->conn->privateData; virNetworkObjPtr obj; + virNetworkDefPtr def; int ret =3D -1; virObjectEventPtr event =3D NULL; =20 if (!(obj =3D testNetworkObjFindByName(privconn, net->name))) goto cleanup; + def =3D virNetworkObjGetDef(obj); =20 if (virNetworkObjIsActive(obj)) { virReportError(VIR_ERR_OPERATION_INVALID, @@ -3534,7 +3544,7 @@ testNetworkCreate(virNetworkPtr net) } =20 obj->active =3D 1; - event =3D virNetworkEventLifecycleNew(obj->def->name, obj->def->uuid, + event =3D virNetworkEventLifecycleNew(def->name, def->uuid, VIR_NETWORK_EVENT_STARTED, 0); ret =3D 0; @@ -3551,14 +3561,16 @@ testNetworkDestroy(virNetworkPtr net) { testDriverPtr privconn =3D net->conn->privateData; virNetworkObjPtr obj; + virNetworkDefPtr def; int ret =3D -1; virObjectEventPtr event =3D NULL; =20 if (!(obj =3D testNetworkObjFindByName(privconn, net->name))) goto cleanup; + def =3D virNetworkObjGetDef(obj); =20 obj->active =3D 0; - event =3D virNetworkEventLifecycleNew(obj->def->name, obj->def->uuid, + event =3D virNetworkEventLifecycleNew(def->name, def->uuid, VIR_NETWORK_EVENT_STOPPED, 0); if (!obj->persistent) @@ -3586,7 +3598,7 @@ testNetworkGetXMLDesc(virNetworkPtr net, if (!(obj =3D testNetworkObjFindByName(privconn, net->name))) goto cleanup; =20 - ret =3D virNetworkDefFormat(obj->def, flags); + ret =3D virNetworkDefFormat(virNetworkObjGetDef(obj), flags); =20 cleanup: virNetworkObjEndAPI(&obj); @@ -3600,18 +3612,20 @@ testNetworkGetBridgeName(virNetworkPtr net) testDriverPtr privconn =3D net->conn->privateData; char *bridge =3D NULL; virNetworkObjPtr obj; + virNetworkDefPtr def; =20 if (!(obj =3D testNetworkObjFindByName(privconn, net->name))) goto cleanup; + def =3D virNetworkObjGetDef(obj); =20 - if (!(obj->def->bridge)) { + if (!(def->bridge)) { virReportError(VIR_ERR_INTERNAL_ERROR, _("network '%s' does not have a bridge name."), - obj->def->name); + def->name); goto cleanup; } =20 - ignore_value(VIR_STRDUP(bridge, obj->def->bridge)); + ignore_value(VIR_STRDUP(bridge, def->bridge)); =20 cleanup: virNetworkObjEndAPI(&obj); --=20 2.9.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri May 3 20:47:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1495199175669438.75278315143976; Fri, 19 May 2017 06:06:15 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id EBC908048B; Fri, 19 May 2017 13:06:10 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id C18105C54E; Fri, 19 May 2017 13:06:10 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 683E2180BAF8; Fri, 19 May 2017 13:06:10 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v4JD3eM5003826 for ; Fri, 19 May 2017 09:03:40 -0400 Received: by smtp.corp.redhat.com (Postfix) id 3099418C50; Fri, 19 May 2017 13:03:40 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-116-18.phx2.redhat.com [10.3.116.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id E3C7A60BE1 for ; Fri, 19 May 2017 13:03:39 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com EBC908048B Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com EBC908048B From: John Ferlan To: libvir-list@redhat.com Date: Fri, 19 May 2017 09:03:18 -0400 Message-Id: <20170519130324.4624-11-jferlan@redhat.com> In-Reply-To: <20170519130324.4624-1-jferlan@redhat.com> References: <20170519130324.4624-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 10/16] network: Introduce virNetworkObj{Get|Set}Autostart X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Fri, 19 May 2017 13:06:11 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" In preparation for privatizing the virNetworkObj structure, move the guts of the Get/Set Autostart from the driver into virnetworkobj. Alter the driv= er to make the calls to the networkobj code. Signed-off-by: John Ferlan --- src/conf/virnetworkobj.c | 74 +++++++++++++++++++++++++++++++++++++++++= ++++ src/conf/virnetworkobj.h | 11 ++++++- src/libvirt_private.syms | 2 ++ src/network/bridge_driver.c | 53 ++++---------------------------- src/test/test_driver.c | 6 ++-- 5 files changed, 96 insertions(+), 50 deletions(-) diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c index 488fffd..a21aa26 100644 --- a/src/conf/virnetworkobj.c +++ b/src/conf/virnetworkobj.c @@ -121,6 +121,80 @@ virNetworkObjGetNewDef(virNetworkObjPtr obj) } =20 =20 +int +virNetworkObjGetAutostart(virNetworkObjPtr obj) +{ + return obj->autostart; +} + + +int +virNetworkObjSetAutostart(virNetworkObjPtr obj, + const char *configDir, + const char *autostartDir, + int autostart) +{ + virNetworkDefPtr def =3D obj->def; + char *configFile =3D NULL; + char *autostartLink =3D NULL; + int ret =3D -1; + + if (!obj->persistent) { + virReportError(VIR_ERR_OPERATION_INVALID, + _("cannot set autostart for transient network '%s'"= ), + def->name); + return -1; + } + + autostart =3D (autostart !=3D 0); + + if (obj->autostart !=3D autostart) { + if (configDir && autostartDir) { + if (!(configFile =3D virNetworkConfigFile(configDir, def->name= ))) + goto cleanup; + + if (!(autostartLink =3D virNetworkConfigFile(autostartDir, + def->name))) + goto cleanup; + + if (autostart) { + if (virFileMakePath(autostartDir) < 0) { + virReportSystemError(errno, + _("cannot create autostart dir '%= s'"), + autostartDir); + goto cleanup; + } + + if (symlink(configFile, autostartLink) < 0) { + virReportSystemError(errno, + _("failed to create symlink '%s' " + "to '%s'"), + autostartLink, configFile); + goto cleanup; + } + } else { + if (unlink(autostartLink) < 0 && + errno !=3D ENOENT && errno !=3D ENOTDIR) { + virReportSystemError(errno, + _("failed to delete symlink '%s'"= ), + autostartLink); + goto cleanup; + } + } + } + + obj->autostart =3D autostart; + } + + ret =3D 0; + + cleanup: + VIR_FREE(configFile); + VIR_FREE(autostartLink); + return ret; +} + + pid_t virNetworkObjGetDnsmasqPid(virNetworkObjPtr obj) { diff --git a/src/conf/virnetworkobj.h b/src/conf/virnetworkobj.h index 4b7c982..55a5331 100644 --- a/src/conf/virnetworkobj.h +++ b/src/conf/virnetworkobj.h @@ -32,7 +32,7 @@ struct _virNetworkObj { pid_t dnsmasqPid; pid_t radvdPid; unsigned int active : 1; - unsigned int autostart : 1; + int autostart; unsigned int persistent : 1; =20 virNetworkDefPtr def; /* The current definition */ @@ -56,6 +56,15 @@ virNetworkObjGetDef(virNetworkObjPtr obj); virNetworkDefPtr virNetworkObjGetNewDef(virNetworkObjPtr obj); =20 +int +virNetworkObjGetAutostart(virNetworkObjPtr obj); + +int +virNetworkObjSetAutostart(virNetworkObjPtr obj, + const char *configDir, + const char *autostartDir, + int autostart); + virMacMapPtr virNetworkObjGetMacMap(virNetworkObjPtr obj); =20 diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 6b4c37c..b148eeb 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -931,6 +931,7 @@ virNetworkObjFindByName; virNetworkObjFindByNameLocked; virNetworkObjFindByUUID; virNetworkObjFindByUUIDLocked; +virNetworkObjGetAutostart; virNetworkObjGetClassIdMap; virNetworkObjGetDef; virNetworkObjGetDnsmasqPid; @@ -954,6 +955,7 @@ virNetworkObjNew; virNetworkObjRemoveInactive; virNetworkObjReplacePersistentDef; virNetworkObjSaveStatus; +virNetworkObjSetAutostart; virNetworkObjSetDefTransient; virNetworkObjSetDnsmasqPid; virNetworkObjSetFloorSum; diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index f8e11e2..029f1b5 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -525,7 +525,7 @@ networkAutostartConfig(virNetworkObjPtr obj, int ret =3D -1; =20 virObjectLock(obj); - if (obj->autostart && + if (virNetworkObjGetAutostart(obj) && !virNetworkObjIsActive(obj) && networkStartNetwork(driver, obj) < 0) goto cleanup; @@ -3963,7 +3963,7 @@ networkGetAutostart(virNetworkPtr net, if (virNetworkGetAutostartEnsureACL(net->conn, virNetworkObjGetDef(obj= )) < 0) goto cleanup; =20 - *autostart =3D obj->autostart; + *autostart =3D virNetworkObjGetAutostart(obj); ret =3D 0; =20 cleanup: @@ -3978,63 +3978,22 @@ networkSetAutostart(virNetworkPtr net, { virNetworkDriverStatePtr driver =3D networkGetDriver(); virNetworkObjPtr obj; - virNetworkDefPtr def; - char *configFile =3D NULL, *autostartLink =3D NULL; int ret =3D -1; =20 if (!(obj =3D networkObjFromNetwork(net))) goto cleanup; - def =3D virNetworkObjGetDef(obj); =20 - if (virNetworkSetAutostartEnsureACL(net->conn, def) < 0) + if (virNetworkSetAutostartEnsureACL(net->conn, + virNetworkObjGetDef(obj)) < 0) goto cleanup; =20 - if (!obj->persistent) { - virReportError(VIR_ERR_OPERATION_INVALID, - "%s", _("cannot set autostart for transient network= ")); + if (virNetworkObjSetAutostart(obj, driver->networkConfigDir, + driver->networkAutostartDir, autostart) = < 0) goto cleanup; - } - - autostart =3D (autostart !=3D 0); =20 - if (obj->autostart !=3D autostart) { - if ((configFile =3D virNetworkConfigFile(driver->networkConfigDir, - def->name)) =3D=3D NULL) - goto cleanup; - if ((autostartLink =3D virNetworkConfigFile(driver->networkAutosta= rtDir, - def->name)) =3D=3D NULL) - goto cleanup; - - if (autostart) { - if (virFileMakePath(driver->networkAutostartDir) < 0) { - virReportSystemError(errno, - _("cannot create autostart directory = '%s'"), - driver->networkAutostartDir); - goto cleanup; - } - - if (symlink(configFile, autostartLink) < 0) { - virReportSystemError(errno, - _("Failed to create symlink '%s' to '= %s'"), - autostartLink, configFile); - goto cleanup; - } - } else { - if (unlink(autostartLink) < 0 && errno !=3D ENOENT && errno != =3D ENOTDIR) { - virReportSystemError(errno, - _("Failed to delete symlink '%s'"), - autostartLink); - goto cleanup; - } - } - - obj->autostart =3D autostart; - } ret =3D 0; =20 cleanup: - VIR_FREE(configFile); - VIR_FREE(autostartLink); virNetworkObjEndAPI(&obj); return ret; } diff --git a/src/test/test_driver.c b/src/test/test_driver.c index ee473ba..e14fc63 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -3644,7 +3644,7 @@ testNetworkGetAutostart(virNetworkPtr net, if (!(obj =3D testNetworkObjFindByName(privconn, net->name))) goto cleanup; =20 - *autostart =3D obj->autostart; + *autostart =3D virNetworkObjGetAutostart(obj); ret =3D 0; =20 cleanup: @@ -3664,7 +3664,9 @@ testNetworkSetAutostart(virNetworkPtr net, if (!(obj =3D testNetworkObjFindByName(privconn, net->name))) goto cleanup; =20 - obj->autostart =3D autostart ? 1 : 0; + if (virNetworkObjSetAutostart(obj, NULL, NULL, autostart) < 0) + goto cleanup; + ret =3D 0; =20 cleanup: --=20 2.9.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri May 3 20:47:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1495199177263195.06114118740436; Fri, 19 May 2017 06:06:17 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id B2A3F80C21; Fri, 19 May 2017 13:06:14 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 8FE237D96A; Fri, 19 May 2017 13:06:14 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 45042180BAFA; Fri, 19 May 2017 13:06:14 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v4JD3eN9003832 for ; Fri, 19 May 2017 09:03:40 -0400 Received: by smtp.corp.redhat.com (Postfix) id 9A01918C66; Fri, 19 May 2017 13:03:40 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-116-18.phx2.redhat.com [10.3.116.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5897760BE1 for ; Fri, 19 May 2017 13:03:40 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com B2A3F80C21 Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com B2A3F80C21 From: John Ferlan To: libvir-list@redhat.com Date: Fri, 19 May 2017 09:03:19 -0400 Message-Id: <20170519130324.4624-12-jferlan@redhat.com> In-Reply-To: <20170519130324.4624-1-jferlan@redhat.com> References: <20170519130324.4624-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 11/16] network: Introduce virNetworkObj{Is|Set}Active X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Fri, 19 May 2017 13:06:15 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" In order to privatize the virNetworkObj create accessors in virnetworkobj in order to handle the get/set of the active value. Also rather than an unsigned int, convert it to a boolean to match other drivers representation and the reality of what it is. Signed-off-by: John Ferlan --- src/conf/virnetworkobj.c | 17 ++++++++++++++++- src/conf/virnetworkobj.h | 15 ++++++++------- src/libvirt_private.syms | 2 ++ src/network/bridge_driver.c | 10 +++++----- src/test/test_driver.c | 8 ++++---- 5 files changed, 35 insertions(+), 17 deletions(-) diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c index a21aa26..5918bce 100644 --- a/src/conf/virnetworkobj.c +++ b/src/conf/virnetworkobj.c @@ -121,6 +121,21 @@ virNetworkObjGetNewDef(virNetworkObjPtr obj) } =20 =20 +bool +virNetworkObjIsActive(virNetworkObjPtr obj) +{ + return obj->active; +} + + +void +virNetworkObjSetActive(virNetworkObjPtr obj, + bool active) +{ + obj->active =3D active; +} + + int virNetworkObjGetAutostart(virNetworkObjPtr obj) { @@ -1005,7 +1020,7 @@ virNetworkLoadState(virNetworkObjListPtr nets, net->floor_sum =3D floor_sum_val; =20 net->taint =3D taint; - net->active =3D 1; /* any network with a state file is by definition a= ctive */ + net->active =3D true; /* any network with a state file is by definitio= n active */ =20 cleanup: VIR_FREE(configFile); diff --git a/src/conf/virnetworkobj.h b/src/conf/virnetworkobj.h index 55a5331..60f0e0e 100644 --- a/src/conf/virnetworkobj.h +++ b/src/conf/virnetworkobj.h @@ -31,7 +31,7 @@ struct _virNetworkObj { =20 pid_t dnsmasqPid; pid_t radvdPid; - unsigned int active : 1; + bool active; int autostart; unsigned int persistent : 1; =20 @@ -56,6 +56,13 @@ virNetworkObjGetDef(virNetworkObjPtr obj); virNetworkDefPtr virNetworkObjGetNewDef(virNetworkObjPtr obj); =20 +bool +virNetworkObjIsActive(virNetworkObjPtr obj); + +void +virNetworkObjSetActive(virNetworkObjPtr obj, + bool active); + int virNetworkObjGetAutostart(virNetworkObjPtr obj); =20 @@ -121,12 +128,6 @@ virNetworkObjEndAPI(virNetworkObjPtr *net); typedef struct _virNetworkObjList virNetworkObjList; typedef virNetworkObjList *virNetworkObjListPtr; =20 -static inline int -virNetworkObjIsActive(const virNetworkObj *net) -{ - return net->active; -} - virNetworkObjListPtr virNetworkObjListNew(void); =20 diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index b148eeb..85f4cbd 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -940,6 +940,7 @@ virNetworkObjGetMacMap; virNetworkObjGetNewDef; virNetworkObjGetPersistentDef; virNetworkObjGetRadvdPid; +virNetworkObjIsActive; virNetworkObjListExport; virNetworkObjListForEach; virNetworkObjListGetNames; @@ -955,6 +956,7 @@ virNetworkObjNew; virNetworkObjRemoveInactive; virNetworkObjReplacePersistentDef; virNetworkObjSaveStatus; +virNetworkObjSetActive; virNetworkObjSetAutostart; virNetworkObjSetDefTransient; virNetworkObjSetDnsmasqPid; diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index 029f1b5..8ac5c7b 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -451,7 +451,7 @@ networkUpdateState(virNetworkObjPtr obj, case VIR_NETWORK_FORWARD_OPEN: /* If bridge doesn't exist, then mark it inactive */ if (!(def->bridge && virNetDevExists(def->bridge) =3D=3D 1)) - obj->active =3D 0; + virNetworkObjSetActive(obj, false); =20 if (!(macMapFile =3D virNetworkObjMacMgrFileName(driver->dnsmasqSt= ateDir, def->bridge))) @@ -467,7 +467,7 @@ networkUpdateState(virNetworkObjPtr obj, case VIR_NETWORK_FORWARD_BRIDGE: if (def->bridge) { if (virNetDevExists(def->bridge) !=3D 1) - obj->active =3D 0; + virNetworkObjSetActive(obj, false); break; } /* intentionally drop through to common case for all @@ -486,7 +486,7 @@ networkUpdateState(virNetworkObjPtr obj, } =20 /* Try and read dnsmasq/radvd pids of active networks */ - if (obj->active && def->ips && (def->nips > 0)) { + if (virNetworkObjIsActive(obj) && def->ips && (def->nips > 0)) { pid_t radvdPid; pid_t dnsmasqPid; char *radvdpidbase; @@ -2789,7 +2789,7 @@ networkStartNetwork(virNetworkDriverStatePtr driver, if (virNetworkObjSaveStatus(driver->stateDir, obj) < 0) goto cleanup; =20 - obj->active =3D 1; + virNetworkObjSetActive(obj, true); VIR_INFO("Network '%s' started up", def->name); ret =3D 0; =20 @@ -2859,7 +2859,7 @@ networkShutdownNetwork(virNetworkDriverStatePtr drive= r, networkRunHook(obj, NULL, NULL, VIR_HOOK_NETWORK_OP_STOPPED, VIR_HOOK_SUBOP_END); =20 - obj->active =3D 0; + virNetworkObjSetActive(obj, false); virNetworkObjUnsetDefTransient(obj); return ret; } diff --git a/src/test/test_driver.c b/src/test/test_driver.c index e14fc63..ff03d30 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -986,7 +986,7 @@ testParseNetworks(testDriverPtr privconn, goto error; } =20 - obj->active =3D 1; + virNetworkObjSetActive(obj, true); virNetworkObjEndAPI(&obj); } =20 @@ -3401,7 +3401,7 @@ testNetworkCreateXML(virConnectPtr conn, const char *= xml) goto cleanup; def =3D NULL; objdef =3D virNetworkObjGetDef(obj); - obj->active =3D 1; + virNetworkObjSetActive(obj, true); =20 event =3D virNetworkEventLifecycleNew(objdef->name, objdef->uuid, VIR_NETWORK_EVENT_STARTED, @@ -3543,7 +3543,7 @@ testNetworkCreate(virNetworkPtr net) goto cleanup; } =20 - obj->active =3D 1; + virNetworkObjSetActive(obj, true); event =3D virNetworkEventLifecycleNew(def->name, def->uuid, VIR_NETWORK_EVENT_STARTED, 0); @@ -3569,7 +3569,7 @@ testNetworkDestroy(virNetworkPtr net) goto cleanup; def =3D virNetworkObjGetDef(obj); =20 - obj->active =3D 0; + virNetworkObjSetActive(obj, false); event =3D virNetworkEventLifecycleNew(def->name, def->uuid, VIR_NETWORK_EVENT_STOPPED, 0); --=20 2.9.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri May 3 20:47:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1495199182302141.0719757105818; Fri, 19 May 2017 06:06:22 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id C47BB75F; Fri, 19 May 2017 13:06:18 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 90EEF4D9E9; Fri, 19 May 2017 13:06:18 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 426B9180BAFC; Fri, 19 May 2017 13:06:18 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v4JD3fiq003837 for ; Fri, 19 May 2017 09:03:41 -0400 Received: by smtp.corp.redhat.com (Postfix) id 1198518C50; Fri, 19 May 2017 13:03:41 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-116-18.phx2.redhat.com [10.3.116.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id C39E160BE1 for ; Fri, 19 May 2017 13:03:40 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com C47BB75F Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com C47BB75F From: John Ferlan To: libvir-list@redhat.com Date: Fri, 19 May 2017 09:03:20 -0400 Message-Id: <20170519130324.4624-13-jferlan@redhat.com> In-Reply-To: <20170519130324.4624-1-jferlan@redhat.com> References: <20170519130324.4624-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 12/16] network: Introduce virNetworkObjIsPersistent X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Fri, 19 May 2017 13:06:19 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" In preparation to privatize the virNetworkObj - create an accessor function to get the current @persistent value. Also change the value to a bool rath= er than an unsigned int (since that's how it's generated anyway). Signed-off-by: John Ferlan --- 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, } =20 =20 +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; =20 virNetworkDefPtr def; /* The current definition */ virNetworkDefPtr newDef; /* New definition to activate at shutdown */ @@ -63,6 +63,9 @@ void virNetworkObjSetActive(virNetworkObjPtr obj, bool active); =20 +bool +virNetworkObjIsPersistent(virNetworkObjPtr obj); + int virNetworkObjGetAutostart(virNetworkObjPtr obj); =20 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; =20 - ret =3D obj->persistent; + ret =3D virNetworkObjIsPersistent(obj); =20 cleanup: virNetworkObjEndAPI(&obj); @@ -3597,7 +3597,7 @@ networkUndefine(virNetworkPtr net) if (virNetworkObjIsActive(obj)) active =3D true; =20 - 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); =20 - if (!obj->persistent && networkRemoveInactive(driver, obj) < 0) { + if (!virNetworkObjIsPersistent(obj) && + networkRemoveInactive(driver, obj) < 0) { ret =3D -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 =3D testNetworkObjFindByUUID(privconn, net->uuid))) goto cleanup; =20 - ret =3D obj->persistent; + ret =3D virNetworkObjIsPersistent(obj); =20 cleanup: virNetworkObjEndAPI(&obj); @@ -3573,7 +3573,7 @@ testNetworkDestroy(virNetworkPtr net) event =3D virNetworkEventLifecycleNew(def->name, def->uuid, VIR_NETWORK_EVENT_STOPPED, 0); - if (!obj->persistent) + if (!virNetworkObjIsPersistent(obj)) virNetworkObjRemoveInactive(privconn->networks, obj); =20 ret =3D 0; --=20 2.9.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri May 3 20:47:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1495199040751952.2381670373128; Fri, 19 May 2017 06:04:00 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 179167571A; Fri, 19 May 2017 13:03:57 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D646B74AB2; Fri, 19 May 2017 13:03:56 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 83D99180BAF9; Fri, 19 May 2017 13:03:56 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v4JD3fSB003845 for ; Fri, 19 May 2017 09:03:41 -0400 Received: by smtp.corp.redhat.com (Postfix) id D8B6C18871; Fri, 19 May 2017 13:03:41 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-116-18.phx2.redhat.com [10.3.116.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8E79C5C6A0 for ; Fri, 19 May 2017 13:03:41 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 179167571A Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 179167571A From: John Ferlan To: libvir-list@redhat.com Date: Fri, 19 May 2017 09:03:21 -0400 Message-Id: <20170519130324.4624-14-jferlan@redhat.com> In-Reply-To: <20170519130324.4624-1-jferlan@redhat.com> References: <20170519130324.4624-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 13/16] network: Consistent use of @obj for virnetworkobj X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Fri, 19 May 2017 13:03:58 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Consistently use @obj for a virNetworkObjPtr. Signed-off-by: John Ferlan --- src/conf/virnetworkobj.c | 333 +++++++++++++++++++++++--------------------= ---- 1 file changed, 166 insertions(+), 167 deletions(-) diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c index 229375a..4f32767 100644 --- a/src/conf/virnetworkobj.c +++ b/src/conf/virnetworkobj.c @@ -71,39 +71,39 @@ VIR_ONCE_GLOBAL_INIT(virNetworkObj) virNetworkObjPtr virNetworkObjNew(void) { - virNetworkObjPtr net; + virNetworkObjPtr obj; =20 if (virNetworkObjInitialize() < 0) return NULL; =20 - if (!(net =3D virObjectLockableNew(virNetworkObjClass))) + if (!(obj =3D virObjectLockableNew(virNetworkObjClass))) return NULL; =20 - if (!(net->classIdMap =3D virBitmapNew(CLASS_ID_BITMAP_SIZE))) + if (!(obj->classIdMap =3D virBitmapNew(CLASS_ID_BITMAP_SIZE))) goto error; =20 /* The first three class IDs are already taken */ - ignore_value(virBitmapSetBit(net->classIdMap, 0)); - ignore_value(virBitmapSetBit(net->classIdMap, 1)); - ignore_value(virBitmapSetBit(net->classIdMap, 2)); + ignore_value(virBitmapSetBit(obj->classIdMap, 0)); + ignore_value(virBitmapSetBit(obj->classIdMap, 1)); + ignore_value(virBitmapSetBit(obj->classIdMap, 2)); =20 - return net; + return obj; =20 error: - virObjectUnref(net); + virObjectUnref(obj); return NULL; } =20 =20 void -virNetworkObjEndAPI(virNetworkObjPtr *net) +virNetworkObjEndAPI(virNetworkObjPtr *obj) { - if (!*net) + if (!*obj) return; =20 - virObjectUnlock(*net); - virObjectUnref(*net); - *net =3D NULL; + virObjectUnlock(*obj); + virObjectUnref(*obj); + *obj =3D NULL; } =20 =20 @@ -399,15 +399,15 @@ virNetworkObjPtr virNetworkObjFindByUUIDLocked(virNetworkObjListPtr nets, const unsigned char *uuid) { - virNetworkObjPtr ret =3D NULL; + virNetworkObjPtr obj =3D NULL; char uuidstr[VIR_UUID_STRING_BUFLEN]; =20 virUUIDFormat(uuid, uuidstr); =20 - ret =3D virHashLookup(nets->objs, uuidstr); - if (ret) - virObjectRef(ret); - return ret; + obj =3D virHashLookup(nets->objs, uuidstr); + if (obj) + virObjectRef(obj); + return obj; } =20 =20 @@ -425,14 +425,14 @@ virNetworkObjPtr virNetworkObjFindByUUID(virNetworkObjListPtr nets, const unsigned char *uuid) { - virNetworkObjPtr ret; + virNetworkObjPtr obj; =20 virObjectLock(nets); - ret =3D virNetworkObjFindByUUIDLocked(nets, uuid); + obj =3D virNetworkObjFindByUUIDLocked(nets, uuid); virObjectUnlock(nets); - if (ret) - virObjectLock(ret); - return ret; + if (obj) + virObjectLock(obj); + return obj; } =20 =20 @@ -441,13 +441,13 @@ virNetworkObjSearchName(const void *payload, const void *name ATTRIBUTE_UNUSED, const void *data) { - virNetworkObjPtr net =3D (virNetworkObjPtr) payload; + virNetworkObjPtr obj =3D (virNetworkObjPtr) payload; int want =3D 0; =20 - virObjectLock(net); - if (STREQ(net->def->name, (const char *)data)) + virObjectLock(obj); + if (STREQ(obj->def->name, (const char *)data)) want =3D 1; - virObjectUnlock(net); + virObjectUnlock(obj); return want; } =20 @@ -465,12 +465,12 @@ virNetworkObjPtr virNetworkObjFindByNameLocked(virNetworkObjListPtr nets, const char *name) { - virNetworkObjPtr ret =3D NULL; + virNetworkObjPtr obj =3D NULL; =20 - ret =3D virHashSearch(nets->objs, virNetworkObjSearchName, name); - if (ret) - virObjectRef(ret); - return ret; + obj =3D virHashSearch(nets->objs, virNetworkObjSearchName, name); + if (obj) + virObjectRef(obj); + return obj; } =20 =20 @@ -488,14 +488,14 @@ virNetworkObjPtr virNetworkObjFindByName(virNetworkObjListPtr nets, const char *name) { - virNetworkObjPtr ret; + virNetworkObjPtr obj; =20 virObjectLock(nets); - ret =3D virNetworkObjFindByNameLocked(nets, name); + obj =3D virNetworkObjFindByNameLocked(nets, name); virObjectUnlock(nets); - if (ret) - virObjectLock(ret); - return ret; + if (obj) + virObjectLock(obj); + return obj; } =20 =20 @@ -514,21 +514,21 @@ virNetworkObjTaint(virNetworkObjPtr obj, =20 =20 static void -virNetworkObjDispose(void *obj) +virNetworkObjDispose(void *opaque) { - virNetworkObjPtr net =3D obj; + virNetworkObjPtr obj =3D opaque; =20 - virNetworkDefFree(net->def); - virNetworkDefFree(net->newDef); - virBitmapFree(net->classIdMap); - virObjectUnref(net->macmap); + virNetworkDefFree(obj->def); + virNetworkDefFree(obj->newDef); + virBitmapFree(obj->classIdMap); + virObjectUnref(obj->macmap); } =20 =20 static void -virNetworkObjListDispose(void *obj) +virNetworkObjListDispose(void *opaque) { - virNetworkObjListPtr nets =3D obj; + virNetworkObjListPtr nets =3D opaque; =20 virHashFree(nets->objs); } @@ -551,7 +551,7 @@ virNetworkObjListDispose(void *obj) * */ void -virNetworkObjUpdateAssignDef(virNetworkObjPtr network, +virNetworkObjUpdateAssignDef(virNetworkObjPtr obj, virNetworkDefPtr def, bool live) { @@ -560,38 +560,38 @@ virNetworkObjUpdateAssignDef(virNetworkObjPtr network, * existing persistent (!live) def to be restored when the * network is destroyed, unless there is one already saved. */ - if (network->persistent && !network->newDef) - network->newDef =3D network->def; + if (obj->persistent && !obj->newDef) + obj->newDef =3D obj->def; else - virNetworkDefFree(network->def); - network->def =3D def; + virNetworkDefFree(obj->def); + obj->def =3D def; } else { /* !live */ - virNetworkDefFree(network->newDef); - if (virNetworkObjIsActive(network)) { + virNetworkDefFree(obj->newDef); + if (virNetworkObjIsActive(obj)) { /* save new configuration to be restored on network * shutdown, leaving current live def alone */ - network->newDef =3D def; + obj->newDef =3D def; } else { /* !live and !active */ - if (network->def && !network->persistent) { + if (obj->def && !obj->persistent) { /* network isn't (yet) marked active or persistent, * but already has a "live" def set. This means we are * currently setting the persistent def as a part of * the process of starting the network, so we need to * preserve the "not yet live" def in network->def. */ - network->newDef =3D def; + obj->newDef =3D def; } else { /* either there is no live def set, or this network * was already set as persistent, so the proper thing * is to overwrite network->def. */ - network->newDef =3D NULL; - virNetworkDefFree(network->def); - network->def =3D def; + obj->newDef =3D NULL; + virNetworkDefFree(obj->def); + obj->def =3D def; } } - network->persistent =3D !!def; + obj->persistent =3D !!def; } } =20 @@ -611,65 +611,64 @@ virNetworkObjAssignDefLocked(virNetworkObjListPtr net= s, virNetworkDefPtr def, unsigned int flags) { - virNetworkObjPtr network; + virNetworkObjPtr obj; virNetworkObjPtr ret =3D NULL; char uuidstr[VIR_UUID_STRING_BUFLEN]; =20 /* See if a network with matching UUID already exists */ - if ((network =3D virNetworkObjFindByUUIDLocked(nets, def->uuid))) { - virObjectLock(network); + if ((obj =3D virNetworkObjFindByUUIDLocked(nets, def->uuid))) { + virObjectLock(obj); /* UUID matches, but if names don't match, refuse it */ - if (STRNEQ(network->def->name, def->name)) { - virUUIDFormat(network->def->uuid, uuidstr); + if (STRNEQ(obj->def->name, def->name)) { + virUUIDFormat(obj->def->uuid, uuidstr); virReportError(VIR_ERR_OPERATION_FAILED, _("network '%s' is already defined with uuid %s= "), - network->def->name, uuidstr); + obj->def->name, uuidstr); goto cleanup; } =20 if (flags & VIR_NETWORK_OBJ_LIST_ADD_CHECK_LIVE) { /* UUID & name match, but if network is already active, refuse= it */ - if (virNetworkObjIsActive(network)) { + if (virNetworkObjIsActive(obj)) { virReportError(VIR_ERR_OPERATION_INVALID, _("network is already active as '%s'"), - network->def->name); + obj->def->name); goto cleanup; } } =20 - virNetworkObjUpdateAssignDef(network, - def, + virNetworkObjUpdateAssignDef(obj, def, !!(flags & VIR_NETWORK_OBJ_LIST_ADD_L= IVE)); } else { /* UUID does not match, but if a name matches, refuse it */ - if ((network =3D virNetworkObjFindByNameLocked(nets, def->name))) { - virObjectLock(network); - virUUIDFormat(network->def->uuid, uuidstr); + if ((obj =3D virNetworkObjFindByNameLocked(nets, def->name))) { + virObjectLock(obj); + virUUIDFormat(obj->def->uuid, uuidstr); virReportError(VIR_ERR_OPERATION_FAILED, _("network '%s' already exists with uuid %s"), def->name, uuidstr); goto cleanup; } =20 - if (!(network =3D virNetworkObjNew())) + if (!(obj =3D virNetworkObjNew())) goto cleanup; =20 - virObjectLock(network); + virObjectLock(obj); =20 virUUIDFormat(def->uuid, uuidstr); - if (virHashAddEntry(nets->objs, uuidstr, network) < 0) + if (virHashAddEntry(nets->objs, uuidstr, obj) < 0) goto cleanup; =20 - network->def =3D def; - network->persistent =3D !(flags & VIR_NETWORK_OBJ_LIST_ADD_LIVE); - virObjectRef(network); + obj->def =3D def; + obj->persistent =3D !(flags & VIR_NETWORK_OBJ_LIST_ADD_LIVE); + virObjectRef(obj); } =20 - ret =3D network; - network =3D NULL; + ret =3D obj; + obj =3D NULL; =20 cleanup: - virNetworkObjEndAPI(&network); + virNetworkObjEndAPI(&obj); return ret; } =20 @@ -694,12 +693,12 @@ virNetworkObjAssignDef(virNetworkObjListPtr nets, virNetworkDefPtr def, unsigned int flags) { - virNetworkObjPtr network; + virNetworkObjPtr obj; =20 virObjectLock(nets); - network =3D virNetworkObjAssignDefLocked(nets, def, flags); + obj =3D virNetworkObjAssignDefLocked(nets, def, flags); virObjectUnlock(nets); - return network; + return obj; } =20 =20 @@ -718,17 +717,17 @@ virNetworkObjAssignDef(virNetworkObjListPtr nets, * Returns 0 on success, -1 on failure */ int -virNetworkObjSetDefTransient(virNetworkObjPtr network, +virNetworkObjSetDefTransient(virNetworkObjPtr obj, bool live) { - if (!virNetworkObjIsActive(network) && !live) + if (!virNetworkObjIsActive(obj) && !live) return 0; =20 - if (!network->persistent || network->newDef) + if (!obj->persistent || obj->newDef) return 0; =20 - network->newDef =3D virNetworkDefCopy(network->def, VIR_NETWORK_XML_IN= ACTIVE); - return network->newDef ? 0 : -1; + obj->newDef =3D virNetworkDefCopy(obj->def, VIR_NETWORK_XML_INACTIVE); + return obj->newDef ? 0 : -1; } =20 =20 @@ -737,12 +736,12 @@ virNetworkObjSetDefTransient(virNetworkObjPtr network, * This *undoes* what virNetworkObjSetDefTransient did. */ void -virNetworkObjUnsetDefTransient(virNetworkObjPtr network) +virNetworkObjUnsetDefTransient(virNetworkObjPtr obj) { - if (network->newDef) { - virNetworkDefFree(network->def); - network->def =3D network->newDef; - network->newDef =3D NULL; + if (obj->newDef) { + virNetworkDefFree(obj->def); + obj->def =3D obj->newDef; + obj->newDef =3D NULL; } } =20 @@ -757,12 +756,12 @@ virNetworkObjUnsetDefTransient(virNetworkObjPtr netwo= rk) * Returns NULL on error, virNetworkDefPtr on success. */ virNetworkDefPtr -virNetworkObjGetPersistentDef(virNetworkObjPtr network) +virNetworkObjGetPersistentDef(virNetworkObjPtr obj) { - if (network->newDef) - return network->newDef; + if (obj->newDef) + return obj->newDef; else - return network->def; + return obj->def; } =20 =20 @@ -778,15 +777,15 @@ virNetworkObjGetPersistentDef(virNetworkObjPtr networ= k) * Returns -1 on error, 0 on success */ int -virNetworkObjReplacePersistentDef(virNetworkObjPtr network, +virNetworkObjReplacePersistentDef(virNetworkObjPtr obj, virNetworkDefPtr def) { - if (virNetworkObjIsActive(network)) { - virNetworkDefFree(network->newDef); - network->newDef =3D def; + if (virNetworkObjIsActive(obj)) { + virNetworkDefFree(obj->newDef); + obj->newDef =3D def; } else { - virNetworkDefFree(network->def); - network->def =3D def; + virNetworkDefFree(obj->def); + obj->def =3D def; } return 0; } @@ -804,13 +803,13 @@ virNetworkObjReplacePersistentDef(virNetworkObjPtr ne= twork, * Returns 0 on success, -1 on error. */ static int -virNetworkObjConfigChangeSetup(virNetworkObjPtr network, +virNetworkObjConfigChangeSetup(virNetworkObjPtr obj, unsigned int flags) { bool isActive; int ret =3D -1; =20 - isActive =3D virNetworkObjIsActive(network); + isActive =3D virNetworkObjIsActive(obj); =20 if (!isActive && (flags & VIR_NETWORK_UPDATE_AFFECT_LIVE)) { virReportError(VIR_ERR_OPERATION_INVALID, "%s", @@ -819,7 +818,7 @@ virNetworkObjConfigChangeSetup(virNetworkObjPtr network, } =20 if (flags & VIR_NETWORK_UPDATE_AFFECT_CONFIG) { - if (!network->persistent) { + if (!obj->persistent) { virReportError(VIR_ERR_OPERATION_INVALID, "%s", _("cannot change persistent config of a " "transient network")); @@ -828,7 +827,7 @@ virNetworkObjConfigChangeSetup(virNetworkObjPtr network, /* this should already have been done by the driver, but do it * anyway just in case. */ - if (isActive && (virNetworkObjSetDefTransient(network, false) < 0)) + if (isActive && (virNetworkObjSetDefTransient(obj, false) < 0)) goto cleanup; } =20 @@ -840,27 +839,27 @@ virNetworkObjConfigChangeSetup(virNetworkObjPtr netwo= rk, =20 void virNetworkObjRemoveInactive(virNetworkObjListPtr nets, - virNetworkObjPtr net) + virNetworkObjPtr obj) { char uuidstr[VIR_UUID_STRING_BUFLEN]; =20 - virUUIDFormat(net->def->uuid, uuidstr); - virObjectRef(net); - virObjectUnlock(net); + virUUIDFormat(obj->def->uuid, uuidstr); + virObjectRef(obj); + virObjectUnlock(obj); virObjectLock(nets); - virObjectLock(net); + virObjectLock(obj); virHashRemoveEntry(nets->objs, uuidstr); virObjectUnlock(nets); - virObjectUnref(net); + virObjectUnref(obj); } =20 =20 static char * -virNetworkObjFormat(virNetworkObjPtr net, +virNetworkObjFormat(virNetworkObjPtr obj, unsigned int flags) { virBuffer buf =3D VIR_BUFFER_INITIALIZER; - char *classIdStr =3D virBitmapFormat(net->classIdMap); + char *classIdStr =3D virBitmapFormat(obj->classIdMap); size_t i; =20 if (!classIdStr) @@ -869,16 +868,16 @@ virNetworkObjFormat(virNetworkObjPtr net, virBufferAddLit(&buf, "\n"); virBufferAdjustIndent(&buf, 2); virBufferAsprintf(&buf, "\n", classIdStr); - virBufferAsprintf(&buf, "\n", net->floor_sum); + virBufferAsprintf(&buf, "\n", obj->floor_sum); VIR_FREE(classIdStr); =20 for (i =3D 0; i < VIR_NETWORK_TAINT_LAST; i++) { - if (net->taint & (1 << i)) + if (obj->taint & (1 << i)) virBufferAsprintf(&buf, "\n", virNetworkTaintTypeToString(i)); } =20 - if (virNetworkDefFormatBuf(&buf, net->def, flags) < 0) + if (virNetworkDefFormatBuf(&buf, obj->def, flags) < 0) goto error; =20 virBufferAdjustIndent(&buf, -2); @@ -897,16 +896,16 @@ virNetworkObjFormat(virNetworkObjPtr net, =20 int virNetworkObjSaveStatus(const char *statusDir, - virNetworkObjPtr network) + virNetworkObjPtr obj) { int ret =3D -1; int flags =3D 0; char *xml; =20 - if (!(xml =3D virNetworkObjFormat(network, flags))) + if (!(xml =3D virNetworkObjFormat(obj, flags))) goto cleanup; =20 - if (virNetworkSaveXML(statusDir, network->def, xml)) + if (virNetworkSaveXML(statusDir, obj->def, xml)) goto cleanup; =20 ret =3D 0; @@ -923,7 +922,7 @@ virNetworkLoadState(virNetworkObjListPtr nets, { char *configFile =3D NULL; virNetworkDefPtr def =3D NULL; - virNetworkObjPtr net =3D NULL; + virNetworkObjPtr obj =3D NULL; xmlDocPtr xml =3D NULL; xmlNodePtr node =3D NULL, *nodes =3D NULL; xmlXPathContextPtr ctxt =3D NULL; @@ -1012,28 +1011,28 @@ virNetworkLoadState(virNetworkObjListPtr nets, } =20 /* create the object */ - if (!(net =3D virNetworkObjAssignDef(nets, def, + if (!(obj =3D virNetworkObjAssignDef(nets, def, VIR_NETWORK_OBJ_LIST_ADD_LIVE))) goto error; /* do not put any "goto error" below this comment */ =20 /* assign status data stored in the network object */ if (classIdMap) { - virBitmapFree(net->classIdMap); - net->classIdMap =3D classIdMap; + virBitmapFree(obj->classIdMap); + obj->classIdMap =3D classIdMap; } =20 if (floor_sum_val > 0) - net->floor_sum =3D floor_sum_val; + obj->floor_sum =3D floor_sum_val; =20 - net->taint =3D taint; - net->active =3D true; /* any network with a state file is by definitio= n active */ + obj->taint =3D taint; + obj->active =3D true; /* network with a state file is by definition ac= tive */ =20 cleanup: VIR_FREE(configFile); xmlFreeDoc(xml); xmlXPathFreeContext(ctxt); - return net; + return obj; =20 error: VIR_FREE(nodes); @@ -1051,7 +1050,7 @@ virNetworkLoadConfig(virNetworkObjListPtr nets, { char *configFile =3D NULL, *autostartLink =3D NULL; virNetworkDefPtr def =3D NULL; - virNetworkObjPtr net; + virNetworkObjPtr obj; int autostart; =20 if ((configFile =3D virNetworkConfigFile(configDir, name)) =3D=3D NULL) @@ -1088,15 +1087,15 @@ virNetworkLoadConfig(virNetworkObjListPtr nets, def->mac_specified =3D false; } =20 - if (!(net =3D virNetworkObjAssignDef(nets, def, 0))) + if (!(obj =3D virNetworkObjAssignDef(nets, def, 0))) goto error; =20 - net->autostart =3D autostart; + obj->autostart =3D autostart; =20 VIR_FREE(configFile); VIR_FREE(autostartLink); =20 - return net; + return obj; =20 error: VIR_FREE(configFile); @@ -1119,13 +1118,13 @@ virNetworkObjLoadAllState(virNetworkObjListPtr nets, return rc; =20 while ((ret =3D virDirRead(dir, &entry, stateDir)) > 0) { - virNetworkObjPtr net; + virNetworkObjPtr obj; =20 if (!virFileStripSuffix(entry->d_name, ".xml")) continue; =20 - net =3D virNetworkLoadState(nets, stateDir, entry->d_name); - virNetworkObjEndAPI(&net); + obj =3D virNetworkLoadState(nets, stateDir, entry->d_name); + virNetworkObjEndAPI(&obj); } =20 VIR_DIR_CLOSE(dir); @@ -1147,18 +1146,18 @@ virNetworkObjLoadAllConfigs(virNetworkObjListPtr ne= ts, return rc; =20 while ((ret =3D virDirRead(dir, &entry, configDir)) > 0) { - virNetworkObjPtr net; + virNetworkObjPtr obj; =20 if (!virFileStripSuffix(entry->d_name, ".xml")) continue; =20 /* NB: ignoring errors, so one malformed config doesn't kill the whole process */ - net =3D virNetworkLoadConfig(nets, + obj =3D virNetworkLoadConfig(nets, configDir, autostartDir, entry->d_name); - virNetworkObjEndAPI(&net); + virNetworkObjEndAPI(&obj); } =20 VIR_DIR_CLOSE(dir); @@ -1169,20 +1168,20 @@ virNetworkObjLoadAllConfigs(virNetworkObjListPtr ne= ts, int virNetworkObjDeleteConfig(const char *configDir, const char *autostartDir, - virNetworkObjPtr net) + virNetworkObjPtr obj) { char *configFile =3D NULL; char *autostartLink =3D NULL; int ret =3D -1; =20 - if ((configFile =3D virNetworkConfigFile(configDir, net->def->name)) = =3D=3D NULL) + if (!(configFile =3D virNetworkConfigFile(configDir, obj->def->name))) goto error; - if ((autostartLink =3D virNetworkConfigFile(autostartDir, net->def->na= me)) =3D=3D NULL) + if (!(autostartLink =3D virNetworkConfigFile(autostartDir, obj->def->n= ame))) goto error; =20 /* Not fatal if this doesn't work */ unlink(autostartLink); - net->autostart =3D 0; + obj->autostart =3D 0; =20 if (unlink(configFile) < 0) { virReportSystemError(errno, @@ -1211,22 +1210,22 @@ virNetworkObjBridgeInUseHelper(const void *payload, const void *opaque) { int ret; - virNetworkObjPtr net =3D (virNetworkObjPtr) payload; + virNetworkObjPtr obj =3D (virNetworkObjPtr) payload; const struct virNetworkObjBridgeInUseHelperData *data =3D opaque; =20 - virObjectLock(net); + virObjectLock(obj); if (data->skipname && - ((net->def && STREQ(net->def->name, data->skipname)) || - (net->newDef && STREQ(net->newDef->name, data->skipname)))) + ((obj->def && STREQ(obj->def->name, data->skipname)) || + (obj->newDef && STREQ(obj->newDef->name, data->skipname)))) ret =3D 0; - else if ((net->def && net->def->bridge && - STREQ(net->def->bridge, data->bridge)) || - (net->newDef && net->newDef->bridge && - STREQ(net->newDef->bridge, data->bridge))) + else if ((obj->def && obj->def->bridge && + STREQ(obj->def->bridge, data->bridge)) || + (obj->newDef && obj->newDef->bridge && + STREQ(obj->newDef->bridge, data->bridge))) ret =3D 1; else ret =3D 0; - virObjectUnlock(net); + virObjectUnlock(obj); return ret; } =20 @@ -1262,7 +1261,7 @@ virNetworkObjBridgeInUse(virNetworkObjListPtr nets, * Returns: -1 on error, 0 on success. */ int -virNetworkObjUpdate(virNetworkObjPtr network, +virNetworkObjUpdate(virNetworkObjPtr obj, unsigned int command, /* virNetworkUpdateCommand */ unsigned int section, /* virNetworkUpdateSection */ int parentIndex, @@ -1273,14 +1272,14 @@ virNetworkObjUpdate(virNetworkObjPtr network, virNetworkDefPtr livedef =3D NULL, configdef =3D NULL; =20 /* normalize config data, and check for common invalid requests. */ - if (virNetworkObjConfigChangeSetup(network, flags) < 0) + if (virNetworkObjConfigChangeSetup(obj, flags) < 0) goto cleanup; =20 if (flags & VIR_NETWORK_UPDATE_AFFECT_LIVE) { virNetworkDefPtr checkdef; =20 /* work on a copy of the def */ - if (!(livedef =3D virNetworkDefCopy(network->def, 0))) + if (!(livedef =3D virNetworkDefCopy(obj->def, 0))) goto cleanup; if (virNetworkDefUpdateSection(livedef, command, section, parentIndex, xml, flags) < 0) { @@ -1298,7 +1297,7 @@ virNetworkObjUpdate(virNetworkObjPtr network, virNetworkDefPtr checkdef; =20 /* work on a copy of the def */ - if (!(configdef =3D virNetworkDefCopy(virNetworkObjGetPersistentDe= f(network), + if (!(configdef =3D virNetworkDefCopy(virNetworkObjGetPersistentDe= f(obj), VIR_NETWORK_XML_INACTIVE))) { goto cleanup; } @@ -1315,14 +1314,14 @@ virNetworkObjUpdate(virNetworkObjPtr network, =20 if (configdef) { /* successfully modified copy, now replace original */ - if (virNetworkObjReplacePersistentDef(network, configdef) < 0) + if (virNetworkObjReplacePersistentDef(obj, configdef) < 0) goto cleanup; configdef =3D NULL; } if (livedef) { /* successfully modified copy, now replace original */ - virNetworkDefFree(network->def); - network->def =3D livedef; + virNetworkDefFree(obj->def); + obj->def =3D livedef; livedef =3D NULL; } =20 @@ -1336,31 +1335,31 @@ virNetworkObjUpdate(virNetworkObjPtr network, =20 #define MATCH(FLAG) (flags & (FLAG)) static bool -virNetworkMatch(virNetworkObjPtr netobj, +virNetworkMatch(virNetworkObjPtr obj, unsigned int flags) { /* filter by active state */ if (MATCH(VIR_CONNECT_LIST_NETWORKS_FILTERS_ACTIVE) && !((MATCH(VIR_CONNECT_LIST_NETWORKS_ACTIVE) && - virNetworkObjIsActive(netobj)) || + virNetworkObjIsActive(obj)) || (MATCH(VIR_CONNECT_LIST_NETWORKS_INACTIVE) && - !virNetworkObjIsActive(netobj)))) + !virNetworkObjIsActive(obj)))) return false; =20 /* filter by persistence */ if (MATCH(VIR_CONNECT_LIST_NETWORKS_FILTERS_PERSISTENT) && !((MATCH(VIR_CONNECT_LIST_NETWORKS_PERSISTENT) && - netobj->persistent) || + obj->persistent) || (MATCH(VIR_CONNECT_LIST_NETWORKS_TRANSIENT) && - !netobj->persistent))) + !obj->persistent))) return false; =20 /* filter by autostart option */ if (MATCH(VIR_CONNECT_LIST_NETWORKS_FILTERS_AUTOSTART) && !((MATCH(VIR_CONNECT_LIST_NETWORKS_AUTOSTART) && - netobj->autostart) || + obj->autostart) || (MATCH(VIR_CONNECT_LIST_NETWORKS_NO_AUTOSTART) && - !netobj->autostart))) + !obj->autostart))) return false; =20 return true; --=20 2.9.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri May 3 20:47:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1495199045913783.9244634798112; Fri, 19 May 2017 06:04:05 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 1571A793FC; Fri, 19 May 2017 13:04:01 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D9F375C7C4; Fri, 19 May 2017 13:04:00 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 82312180BAFC; Fri, 19 May 2017 13:04:00 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v4JD3g7m003857 for ; Fri, 19 May 2017 09:03:42 -0400 Received: by smtp.corp.redhat.com (Postfix) id 4DB2A18871; Fri, 19 May 2017 13:03:42 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-116-18.phx2.redhat.com [10.3.116.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0CEFB5C6A0 for ; Fri, 19 May 2017 13:03:41 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 1571A793FC Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 1571A793FC From: John Ferlan To: libvir-list@redhat.com Date: Fri, 19 May 2017 09:03:22 -0400 Message-Id: <20170519130324.4624-15-jferlan@redhat.com> In-Reply-To: <20170519130324.4624-1-jferlan@redhat.com> References: <20170519130324.4624-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 14/16] network: Adjust virNetworkObjNew call and return X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Fri, 19 May 2017 13:04:02 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Have the call take a virNetworkDefPtr and save it in the object. Have virNetworkObjNew return a locked obj Avoids the need for a virNetworkObjSetDef type API for the one test need. Update the test code and do some other name changes to make it look like other code. Signed-off-by: John Ferlan --- src/conf/virnetworkobj.c | 10 +++++----- src/conf/virnetworkobj.h | 2 +- tests/networkxml2conftest.c | 13 +++++++------ 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c index 4f32767..fa1e396 100644 --- a/src/conf/virnetworkobj.c +++ b/src/conf/virnetworkobj.c @@ -69,7 +69,7 @@ virNetworkObjOnceInit(void) VIR_ONCE_GLOBAL_INIT(virNetworkObj) =20 virNetworkObjPtr -virNetworkObjNew(void) +virNetworkObjNew(virNetworkDefPtr def) { virNetworkObjPtr obj; =20 @@ -87,6 +87,9 @@ virNetworkObjNew(void) ignore_value(virBitmapSetBit(obj->classIdMap, 1)); ignore_value(virBitmapSetBit(obj->classIdMap, 2)); =20 + virObjectLock(obj); + obj->def =3D def; + return obj; =20 error: @@ -650,16 +653,13 @@ virNetworkObjAssignDefLocked(virNetworkObjListPtr net= s, goto cleanup; } =20 - if (!(obj =3D virNetworkObjNew())) + if (!(obj =3D virNetworkObjNew(def))) goto cleanup; =20 - virObjectLock(obj); - virUUIDFormat(def->uuid, uuidstr); if (virHashAddEntry(nets->objs, uuidstr, obj) < 0) goto cleanup; =20 - obj->def =3D def; obj->persistent =3D !(flags & VIR_NETWORK_OBJ_LIST_ADD_LIVE); virObjectRef(obj); } diff --git a/src/conf/virnetworkobj.h b/src/conf/virnetworkobj.h index 666c2a5..b81ffa8 100644 --- a/src/conf/virnetworkobj.h +++ b/src/conf/virnetworkobj.h @@ -48,7 +48,7 @@ struct _virNetworkObj { }; =20 virNetworkObjPtr -virNetworkObjNew(void); +virNetworkObjNew(virNetworkDefPtr def); =20 virNetworkDefPtr virNetworkObjGetDef(virNetworkObjPtr obj); diff --git a/tests/networkxml2conftest.c b/tests/networkxml2conftest.c index ab3c13a..6cbfa55 100644 --- a/tests/networkxml2conftest.c +++ b/tests/networkxml2conftest.c @@ -23,20 +23,21 @@ testCompareXMLToConfFiles(const char *inxml, const char= *outconf, dnsmasqCapsPtr { char *actual =3D NULL; int ret =3D -1; - virNetworkDefPtr dev =3D NULL; + virNetworkDefPtr def =3D NULL; virNetworkObjPtr obj =3D NULL; + virNetworkDefPtr objdef; virCommandPtr cmd =3D NULL; char *pidfile =3D NULL; dnsmasqContext *dctx =3D NULL; =20 - if (!(dev =3D virNetworkDefParseFile(inxml))) + if (!(def =3D virNetworkDefParseFile(inxml))) goto fail; =20 - if (!(obj =3D virNetworkObjNew())) + if (!(obj =3D virNetworkObjNew(def))) goto fail; + objdef =3D virNetworkObjGetDef(obj); =20 - obj->def =3D dev; - dctx =3D dnsmasqContextNew(dev->name, "/var/lib/libvirt/dnsmasq"); + dctx =3D dnsmasqContextNew(objdef->name, "/var/lib/libvirt/dnsmasq"); =20 if (dctx =3D=3D NULL) goto fail; @@ -66,7 +67,7 @@ testCompareXMLToConfFiles(const char *inxml, const char *= outconf, dnsmasqCapsPtr VIR_FREE(actual); VIR_FREE(pidfile); virCommandFree(cmd); - virObjectUnref(obj); + virNetworkObjEndAPI(&obj); dnsmasqContextFree(dctx); return ret; } --=20 2.9.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri May 3 20:47:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1495199187104985.7981346330951; Fri, 19 May 2017 06:06:27 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 6618419CBE9; Fri, 19 May 2017 13:06:22 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 3B0F17D96C; Fri, 19 May 2017 13:06:22 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id E0380180BAFD; Fri, 19 May 2017 13:06:21 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v4JD3gfH003863 for ; Fri, 19 May 2017 09:03:42 -0400 Received: by smtp.corp.redhat.com (Postfix) id B793318C5F; Fri, 19 May 2017 13:03:42 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-116-18.phx2.redhat.com [10.3.116.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id 74A1A60BE1 for ; Fri, 19 May 2017 13:03:42 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 6618419CBE9 Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 6618419CBE9 From: John Ferlan To: libvir-list@redhat.com Date: Fri, 19 May 2017 09:03:23 -0400 Message-Id: <20170519130324.4624-16-jferlan@redhat.com> In-Reply-To: <20170519130324.4624-1-jferlan@redhat.com> References: <20170519130324.4624-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 15/16] network: Modify naming for virNetworkObjList* fetching APIs X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Fri, 19 May 2017 13:06:23 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Use the structure names in the @data setup - makes it easier that going back to find the struct. Use the @maxnames instead of @nnames since that's what it is. Modify the @filter to be @aclfilter and change the typedef from virNetworkObjListFilter to virNetworkObjListACLFilter. Signed-off-by: John Ferlan --- src/conf/virnetworkobj.c | 39 ++++++++++++++++++++++----------------- src/conf/virnetworkobj.h | 12 ++++++------ src/network/bridge_driver.c | 8 ++++---- src/test/test_driver.c | 8 ++++---- 4 files changed, 36 insertions(+), 31 deletions(-) diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c index fa1e396..cc45a00 100644 --- a/src/conf/virnetworkobj.c +++ b/src/conf/virnetworkobj.c @@ -1370,7 +1370,7 @@ virNetworkMatch(virNetworkObjPtr obj, struct virNetworkObjListData { virConnectPtr conn; virNetworkPtr *nets; - virNetworkObjListFilter filter; + virNetworkObjListACLFilter aclfilter; unsigned int flags; int nnets; bool error; @@ -1390,8 +1390,8 @@ virNetworkObjListPopulate(void *payload, =20 virObjectLock(obj); =20 - if (data->filter && - !data->filter(data->conn, obj->def)) + if (data->aclfilter && + !data->aclfilter(data->conn, obj->def)) goto cleanup; =20 if (!virNetworkMatch(obj, data->flags)) @@ -1419,11 +1419,13 @@ int virNetworkObjListExport(virConnectPtr conn, virNetworkObjListPtr netobjs, virNetworkPtr **nets, - virNetworkObjListFilter filter, + virNetworkObjListACLFilter aclfilter, unsigned int flags) { int ret =3D -1; - struct virNetworkObjListData data =3D { conn, NULL, filter, flags, 0, = false}; + struct virNetworkObjListData data =3D { + .conn =3D conn, .nets =3D NULL, .aclfilter =3D aclfilter, .flags = =3D flags, + .nnets =3D 0, .error =3D false }; =20 virObjectLock(netobjs); if (nets && VIR_ALLOC_N(data.nets, virHashSize(netobjs->objs) + 1) < 0) @@ -1489,7 +1491,8 @@ virNetworkObjListForEach(virNetworkObjListPtr nets, virNetworkObjListIterator callback, void *opaque) { - struct virNetworkObjListForEachHelperData data =3D {callback, opaque, = 0}; + struct virNetworkObjListForEachHelperData data =3D { + .callback =3D callback, .opaque =3D opaque, .ret =3D 0}; virObjectLock(nets); virHashForEach(nets->objs, virNetworkObjListForEachHelper, &data); virObjectUnlock(nets); @@ -1499,9 +1502,9 @@ virNetworkObjListForEach(virNetworkObjListPtr nets, =20 struct virNetworkObjListGetHelperData { virConnectPtr conn; - virNetworkObjListFilter filter; + virNetworkObjListACLFilter aclfilter; char **names; - int nnames; + int maxnames; bool active; int got; bool error; @@ -1518,14 +1521,14 @@ virNetworkObjListGetHelper(void *payload, if (data->error) return 0; =20 - if (data->nnames >=3D 0 && - data->got =3D=3D data->nnames) + if (data->maxnames >=3D 0 && + data->got =3D=3D data->maxnames) return 0; =20 virObjectLock(obj); =20 - if (data->filter && - !data->filter(data->conn, obj->def)) + if (data->aclfilter && + !data->aclfilter(data->conn, obj->def)) goto cleanup; =20 if ((data->active && virNetworkObjIsActive(obj)) || @@ -1548,14 +1551,15 @@ int virNetworkObjListGetNames(virNetworkObjListPtr nets, bool active, char **names, - int nnames, - virNetworkObjListFilter filter, + int maxnames, + virNetworkObjListACLFilter aclfilter, virConnectPtr conn) { int ret =3D -1; =20 struct virNetworkObjListGetHelperData data =3D { - conn, filter, names, nnames, active, 0, false}; + .conn =3D conn, .aclfilter =3D aclfilter, .names =3D names, + .maxnames =3D maxnames, .active =3D active, .got =3D 0, .error =3D= false}; =20 virObjectLock(nets); virHashForEach(nets->objs, virNetworkObjListGetHelper, &data); @@ -1577,11 +1581,12 @@ virNetworkObjListGetNames(virNetworkObjListPtr nets, int virNetworkObjListNumOfNetworks(virNetworkObjListPtr nets, bool active, - virNetworkObjListFilter filter, + virNetworkObjListACLFilter aclfilter, virConnectPtr conn) { struct virNetworkObjListGetHelperData data =3D { - conn, filter, NULL, -1, active, 0, false}; + .conn =3D conn, .aclfilter =3D aclfilter, .names =3D NULL, + .maxnames =3D -1, .active =3D active, .got =3D 0, .error =3D false= }; =20 virObjectLock(nets); virHashForEach(nets->objs, virNetworkObjListGetHelper, &data); diff --git a/src/conf/virnetworkobj.h b/src/conf/virnetworkobj.h index b81ffa8..72afbcd 100644 --- a/src/conf/virnetworkobj.h +++ b/src/conf/virnetworkobj.h @@ -155,8 +155,8 @@ virNetworkObjTaint(virNetworkObjPtr obj, virNetworkTaintFlags taint); =20 typedef bool -(*virNetworkObjListFilter)(virConnectPtr conn, - virNetworkDefPtr def); +(*virNetworkObjListACLFilter)(virConnectPtr conn, + virNetworkDefPtr def); =20 virNetworkObjPtr virNetworkObjAssignDef(virNetworkObjListPtr nets, @@ -221,7 +221,7 @@ int virNetworkObjListExport(virConnectPtr conn, virNetworkObjListPtr netobjs, virNetworkPtr **nets, - virNetworkObjListFilter filter, + virNetworkObjListACLFilter aclfilter, unsigned int flags); =20 typedef int @@ -237,14 +237,14 @@ int virNetworkObjListGetNames(virNetworkObjListPtr nets, bool active, char **names, - int nnames, - virNetworkObjListFilter filter, + int maxnames, + virNetworkObjListACLFilter aclfilter, virConnectPtr conn); =20 int virNetworkObjListNumOfNetworks(virNetworkObjListPtr nets, bool active, - virNetworkObjListFilter filter, + virNetworkObjListACLFilter aclfilter, virConnectPtr conn); =20 void diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index e2e9d13..47709ef 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -2945,7 +2945,7 @@ networkConnectNumOfNetworks(virConnectPtr conn) static int networkConnectListNetworks(virConnectPtr conn, char **const names, - int nnames) + int maxnames) { virNetworkDriverStatePtr driver =3D networkGetDriver(); int got =3D 0; @@ -2954,7 +2954,7 @@ networkConnectListNetworks(virConnectPtr conn, return -1; =20 got =3D virNetworkObjListGetNames(driver->networks, - true, names, nnames, + true, names, maxnames, virConnectListNetworksCheckACL, conn); =20 @@ -2983,7 +2983,7 @@ networkConnectNumOfDefinedNetworks(virConnectPtr conn) static int networkConnectListDefinedNetworks(virConnectPtr conn, char **const names, - int nnames) + int maxnames) { virNetworkDriverStatePtr driver =3D networkGetDriver(); int got =3D 0; @@ -2992,7 +2992,7 @@ networkConnectListDefinedNetworks(virConnectPtr conn, return -1; =20 got =3D virNetworkObjListGetNames(driver->networks, - false, names, nnames, + false, names, maxnames, virConnectListDefinedNetworksCheckACL, conn); return got; diff --git a/src/test/test_driver.c b/src/test/test_driver.c index dd78b52..4dd469a 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -3296,13 +3296,13 @@ testConnectNumOfNetworks(virConnectPtr conn) static int testConnectListNetworks(virConnectPtr conn, char **const names, - int nnames) + int maxnames) { testDriverPtr privconn =3D conn->privateData; int n; =20 n =3D virNetworkObjListGetNames(privconn->networks, - true, names, nnames, NULL, conn); + true, names, maxnames, NULL, conn); return n; } =20 @@ -3322,13 +3322,13 @@ testConnectNumOfDefinedNetworks(virConnectPtr conn) static int testConnectListDefinedNetworks(virConnectPtr conn, char **const names, - int nnames) + int maxnames) { testDriverPtr privconn =3D conn->privateData; int n; =20 n =3D virNetworkObjListGetNames(privconn->networks, - false, names, nnames, NULL, conn); + false, names, maxnames, NULL, conn); return n; } =20 --=20 2.9.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Fri May 3 20:47:50 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1495199097553935.1077520709864; Fri, 19 May 2017 06:04:57 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 17E9D8048A; Fri, 19 May 2017 13:04:56 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id E0D7D18C5B; Fri, 19 May 2017 13:04:55 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 8FD54180BAF9; Fri, 19 May 2017 13:04:55 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v4JD3h6r003874 for ; Fri, 19 May 2017 09:03:43 -0400 Received: by smtp.corp.redhat.com (Postfix) id 2EFF718871; Fri, 19 May 2017 13:03:43 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-116-18.phx2.redhat.com [10.3.116.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id DECA860BE1 for ; Fri, 19 May 2017 13:03:42 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 17E9D8048A Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 17E9D8048A From: John Ferlan To: libvir-list@redhat.com Date: Fri, 19 May 2017 09:03:24 -0400 Message-Id: <20170519130324.4624-17-jferlan@redhat.com> In-Reply-To: <20170519130324.4624-1-jferlan@redhat.com> References: <20170519130324.4624-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 16/16] network: Privatize virNetworkObj X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Fri, 19 May 2017 13:04:56 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Move from virnetworkobj.h into virnetworkobj.c Signed-off-by: John Ferlan --- src/conf/virnetworkobj.c | 21 +++++++++++++++++++++ src/conf/virnetworkobj.h | 20 -------------------- 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c index cc45a00..93a16e8 100644 --- a/src/conf/virnetworkobj.c +++ b/src/conf/virnetworkobj.c @@ -37,6 +37,27 @@ VIR_LOG_INIT("conf.virnetworkobj"); /* currently, /sbin/tc implementation allows up to 16 bits for minor class= size */ #define CLASS_ID_BITMAP_SIZE (1<<16) =20 +struct _virNetworkObj { + virObjectLockable parent; + + pid_t dnsmasqPid; + pid_t radvdPid; + bool active; + int autostart; + bool persistent; + + virNetworkDefPtr def; /* The current definition */ + virNetworkDefPtr newDef; /* New definition to activate at shutdown */ + + virBitmapPtr classIdMap; /* bitmap of class IDs for QoS */ + unsigned long long floor_sum; /* sum of all 'floor'-s of attached NICs= */ + + unsigned int taint; + + /* Immutable pointer, self locking APIs */ + virMacMapPtr macmap; +}; + struct _virNetworkObjList { virObjectLockable parent; =20 diff --git a/src/conf/virnetworkobj.h b/src/conf/virnetworkobj.h index 72afbcd..ec12307 100644 --- a/src/conf/virnetworkobj.h +++ b/src/conf/virnetworkobj.h @@ -26,26 +26,6 @@ =20 typedef struct _virNetworkObj virNetworkObj; typedef virNetworkObj *virNetworkObjPtr; -struct _virNetworkObj { - virObjectLockable parent; - - pid_t dnsmasqPid; - pid_t radvdPid; - bool active; - int autostart; - bool persistent; - - virNetworkDefPtr def; /* The current definition */ - virNetworkDefPtr newDef; /* New definition to activate at shutdown */ - - virBitmapPtr classIdMap; /* bitmap of class IDs for QoS */ - unsigned long long floor_sum; /* sum of all 'floor'-s of attached NICs= */ - - unsigned int taint; - - /* Immutable pointer, self locking APIs */ - virMacMapPtr macmap; -}; =20 virNetworkObjPtr virNetworkObjNew(virNetworkDefPtr def); --=20 2.9.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list