From nobody Thu May 15 23:00:04 2025 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.zohomail.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 1501081623744631.2082774789466; Wed, 26 Jul 2017 08:07:03 -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 075B78B11B; Wed, 26 Jul 2017 15:06:58 +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 927C890F6C; Wed, 26 Jul 2017 15:06: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 E0D7614B32; Wed, 26 Jul 2017 15:06:04 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v6QF5sFQ028338 for ; Wed, 26 Jul 2017 11:05:54 -0400 Received: by smtp.corp.redhat.com (Postfix) id 66DA717104; Wed, 26 Jul 2017 15:05:54 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-117-46.phx2.redhat.com [10.3.117.46]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2C29F69285 for ; Wed, 26 Jul 2017 15:05:53 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 075B78B11B 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=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: John Ferlan To: libvir-list@redhat.com Date: Wed, 26 Jul 2017 11:05:28 -0400 Message-Id: <20170726150537.4619-12-jferlan@redhat.com> In-Reply-To: <20170726150537.4619-1-jferlan@redhat.com> References: <20170726150537.4619-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH v2 11/20] 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.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Wed, 26 Jul 2017 15:06:59 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" In preparation for privatizing the virNetworkObj structure, create accessors for the obj->autostart. Signed-off-by: John Ferlan --- src/conf/virnetworkobj.c | 15 +++++++++++++++ src/conf/virnetworkobj.h | 9 ++++++++- src/libvirt_private.syms | 2 ++ src/network/bridge_driver.c | 20 ++++++++++---------- src/test/test_driver.c | 5 +++-- 5 files changed, 38 insertions(+), 13 deletions(-) diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c index 631f8cd..36d4bff 100644 --- a/src/conf/virnetworkobj.c +++ b/src/conf/virnetworkobj.c @@ -129,6 +129,21 @@ virNetworkObjGetNewDef(virNetworkObjPtr obj) } =20 =20 +int +virNetworkObjGetAutostart(virNetworkObjPtr obj) +{ + return obj->autostart; +} + + +void +virNetworkObjSetAutostart(virNetworkObjPtr obj, + int autostart) +{ + obj->autostart =3D autostart; +} + + pid_t virNetworkObjGetDnsmasqPid(virNetworkObjPtr obj) { diff --git a/src/conf/virnetworkobj.h b/src/conf/virnetworkobj.h index 90ce0ca..a526d30 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 */ @@ -60,6 +60,13 @@ virNetworkObjSetDef(virNetworkObjPtr obj, virNetworkDefPtr virNetworkObjGetNewDef(virNetworkObjPtr obj); =20 +int +virNetworkObjGetAutostart(virNetworkObjPtr obj); + +void +virNetworkObjSetAutostart(virNetworkObjPtr obj, + int autostart); + virMacMapPtr virNetworkObjGetMacMap(virNetworkObjPtr obj); =20 diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 84e3eb7..8a3284f 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -944,6 +944,7 @@ virNetworkObjFindByName; virNetworkObjFindByNameLocked; virNetworkObjFindByUUID; virNetworkObjFindByUUIDLocked; +virNetworkObjGetAutostart; virNetworkObjGetClassIdMap; virNetworkObjGetDef; virNetworkObjGetDnsmasqPid; @@ -966,6 +967,7 @@ virNetworkObjNew; virNetworkObjRemoveInactive; virNetworkObjReplacePersistentDef; virNetworkObjSaveStatus; +virNetworkObjSetAutostart; virNetworkObjSetDef; virNetworkObjSetDefTransient; virNetworkObjSetDnsmasqPid; diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index b4fbfc5..eb814d3 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: @@ -3974,12 +3974,13 @@ networkGetAutostart(virNetworkPtr net, =20 static int networkSetAutostart(virNetworkPtr net, - int autostart) + int new_autostart) { virNetworkDriverStatePtr driver =3D networkGetDriver(); virNetworkObjPtr obj; virNetworkDefPtr def; char *configFile =3D NULL, *autostartLink =3D NULL; + int cur_autostart; int ret =3D -1; =20 if (!(obj =3D networkObjFromNetwork(net))) @@ -3995,9 +3996,9 @@ networkSetAutostart(virNetworkPtr net, goto cleanup; } =20 - autostart =3D (autostart !=3D 0); - - if (obj->autostart !=3D autostart) { + new_autostart =3D (new_autostart !=3D 0); + cur_autostart =3D virNetworkObjGetAutostart(obj); + if (cur_autostart !=3D new_autostart) { if ((configFile =3D virNetworkConfigFile(driver->networkConfigDir, def->name)) =3D=3D NULL) goto cleanup; @@ -4005,7 +4006,7 @@ networkSetAutostart(virNetworkPtr net, def->name)) =3D=3D NULL) goto cleanup; =20 - if (autostart) { + if (new_autostart) { if (virFileMakePath(driver->networkAutostartDir) < 0) { virReportSystemError(errno, _("cannot create autostart directory = '%s'"), @@ -4028,13 +4029,12 @@ networkSetAutostart(virNetworkPtr net, } } =20 - obj->autostart =3D autostart; + virNetworkObjSetAutostart(obj, new_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 868aa27..8e841b2 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -3647,7 +3647,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: @@ -3667,7 +3667,8 @@ testNetworkSetAutostart(virNetworkPtr net, if (!(obj =3D testNetworkObjFindByName(privconn, net->name))) goto cleanup; =20 - obj->autostart =3D autostart ? 1 : 0; + virNetworkObjSetAutostart(obj, autostart ? 1 : 0); + ret =3D 0; =20 cleanup: --=20 2.9.4 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list