From nobody Sat May 4 17:15:07 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.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 1501081557178730.8151833268846; Wed, 26 Jul 2017 08:05:57 -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 7B0C98048C; Wed, 26 Jul 2017 15:05: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 508417812E; Wed, 26 Jul 2017 15:05: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 05995180597B; Wed, 26 Jul 2017 15:05:50 +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 v6QF5iEN028261 for ; Wed, 26 Jul 2017 11:05:44 -0400 Received: by smtp.corp.redhat.com (Postfix) id D4FC965EB6; Wed, 26 Jul 2017 15:05:44 +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 9AD7B69286 for ; Wed, 26 Jul 2017 15:05:44 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 7B0C98048C 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:18 -0400 Message-Id: <20170726150537.4619-2-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 01/20] network: Perform some formatting cleanup in bridge_driver.h 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.28]); Wed, 26 Jul 2017 15:05:52 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Alter prototypes to utilize some more recent guidelines. Signed-off-by: John Ferlan --- src/network/bridge_driver.h | 50 ++++++++++++++++++++++++++++-------------= ---- 1 file changed, 31 insertions(+), 19 deletions(-) diff --git a/src/network/bridge_driver.h b/src/network/bridge_driver.h index 7832b60..23d0fac 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 network, + 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.4 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat May 4 17:15:07 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.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 1501081559764352.96602280605987; Wed, 26 Jul 2017 08:05:59 -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 2011F51158; Wed, 26 Jul 2017 15:05:49 +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 DCE9253CC8; Wed, 26 Jul 2017 15:05:48 +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 85F5814B1F; Wed, 26 Jul 2017 15:05:48 +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 v6QF5jkX028269 for ; Wed, 26 Jul 2017 11:05:45 -0400 Received: by smtp.corp.redhat.com (Postfix) id D754C65EB6; Wed, 26 Jul 2017 15:05:45 +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 6444169286 for ; Wed, 26 Jul 2017 15:05:44 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 2011F51158 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=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: John Ferlan To: libvir-list@redhat.com Date: Wed, 26 Jul 2017 11:05:19 -0400 Message-Id: <20170726150537.4619-3-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 02/20] 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.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Wed, 26 Jul 2017 15:05:51 +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 Signed-off-by: John Ferlan --- src/network/bridge_driver.c | 966 ++++++++++++++++++++++------------------= ---- src/network/bridge_driver.h | 2 +- 2 files changed, 481 insertions(+), 487 deletions(-) diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index d05e08f..fd0e6ca 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 23d0fac..6d9aece 100644 --- a/src/network/bridge_driver.h +++ b/src/network/bridge_driver.h @@ -60,7 +60,7 @@ networkGetActualType(virDomainNetDefPtr iface) ATTRIBUTE_NONNULL(1); =20 int -networkDnsmasqConfContents(virNetworkObjPtr network, +networkDnsmasqConfContents(virNetworkObjPtr obj, const char *pidfile, char **configstr, dnsmasqContext *dctx, --=20 2.9.4 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat May 4 17:15:07 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.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 1501081557014359.2797745856269; Wed, 26 Jul 2017 08:05:57 -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 876067EA8E; Wed, 26 Jul 2017 15:05:49 +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 3F26662662; Wed, 26 Jul 2017 15:05:49 +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 D7E0514B21; Wed, 26 Jul 2017 15:05:48 +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 v6QF5kcQ028276 for ; Wed, 26 Jul 2017 11:05:46 -0400 Received: by smtp.corp.redhat.com (Postfix) id 40BE469285; Wed, 26 Jul 2017 15:05:46 +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 07D8768D84 for ; Wed, 26 Jul 2017 15:05:45 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 876067EA8E 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:20 -0400 Message-Id: <20170726150537.4619-4-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 03/20] network: Move and rename networkMacMgrFileName 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:05:50 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Move networkMacMgrFileName into src/util/virmacmap.c and rename to virMacMapFileName. We're about to move some more MacMgr processing files into virnetworkobj and it doesn't make sense to have this helper in the driver or in virnetworkobj. Signed-off-by: John Ferlan --- src/libvirt_private.syms | 1 + src/network/bridge_driver.c | 24 +++++++----------------- src/util/virmacmap.c | 12 ++++++++++++ src/util/virmacmap.h | 4 ++++ 4 files changed, 24 insertions(+), 17 deletions(-) diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 0dca0a8..c293f38 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -2067,6 +2067,7 @@ virMacAddrSetRaw; # util/virmacmap.h virMacMapAdd; virMacMapDumpStr; +virMacMapFileName; virMacMapLookup; virMacMapNew; virMacMapRemove; diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index fd0e6ca..de2e83c 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,7 @@ networkRemoveInactive(virNetworkDriverStatePtr driver, if (!(statusfile =3D virNetworkConfigFile(driver->stateDir, def->name)= )) goto cleanup; =20 - if (!(macMapFile =3D networkMacMgrFileName(driver, def->bridge))) + if (!(macMapFile =3D virMacMapFileName(driver->dnsmasqStateDir, def->b= ridge))) goto cleanup; =20 /* dnsmasq */ @@ -427,7 +415,7 @@ networkMacMgrAdd(virNetworkDriverStatePtr driver, =20 virMacAddrFormat(mac, macStr); =20 - if (!(file =3D networkMacMgrFileName(driver, obj->def->bridge))) + if (!(file =3D virMacMapFileName(driver->dnsmasqStateDir, obj->def->br= idge))) goto cleanup; =20 if (virMacMapAdd(obj->macmap, domain, macStr) < 0) @@ -458,7 +446,7 @@ networkMacMgrDel(virNetworkDriverStatePtr driver, =20 virMacAddrFormat(mac, macStr); =20 - if (!(file =3D networkMacMgrFileName(driver, obj->def->bridge))) + if (!(file =3D virMacMapFileName(driver->dnsmasqStateDir, obj->def->br= idge))) goto cleanup; =20 if (virMacMapRemove(obj->macmap, domain, macStr) < 0) @@ -523,7 +511,8 @@ 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 virMacMapFileName(driver->dnsmasqStateDir, + obj->def->bridge))) goto cleanup; =20 if (!(obj->macmap =3D virMacMapNew(macMapFile))) @@ -2380,7 +2369,8 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr d= river, } } =20 - if (!(macMapFile =3D networkMacMgrFileName(driver, obj->def->bridge)) = || + if (!(macMapFile =3D virMacMapFileName(driver->dnsmasqStateDir, + obj->def->bridge)) || !(obj->macmap =3D virMacMapNew(macMapFile))) goto err1; =20 diff --git a/src/util/virmacmap.c b/src/util/virmacmap.c index a9697e3..42890ba 100644 --- a/src/util/virmacmap.c +++ b/src/util/virmacmap.c @@ -294,6 +294,18 @@ virMacMapWriteFileLocked(virMacMapPtr mgr, } =20 =20 +char * +virMacMapFileName(const char *dnsmasqStateDir, + const char *bridge) +{ + char *filename; + + ignore_value(virAsprintf(&filename, "%s/%s.macs", dnsmasqStateDir, bri= dge)); + + return filename; +} + + #define VIR_MAC_HASH_TABLE_SIZE 10 =20 virMacMapPtr diff --git a/src/util/virmacmap.h b/src/util/virmacmap.h index 82da833..e6f754e 100644 --- a/src/util/virmacmap.h +++ b/src/util/virmacmap.h @@ -27,6 +27,10 @@ typedef struct virMacMap virMacMap; typedef virMacMap *virMacMapPtr; =20 +char * +virMacMapFileName(const char *dnsmasqStateDir, + const char *bridge); + virMacMapPtr virMacMapNew(const char *file); =20 int virMacMapAdd(virMacMapPtr mgr, --=20 2.9.4 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat May 4 17:15:07 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.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 1501081559290510.2587001707874; Wed, 26 Jul 2017 08:05:59 -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 4A795883BF; Wed, 26 Jul 2017 15:05:55 +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 D0DBB6266F; Wed, 26 Jul 2017 15: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 5CA4014B27; Wed, 26 Jul 2017 15:05:54 +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 v6QF5lV3028281 for ; Wed, 26 Jul 2017 11:05:47 -0400 Received: by smtp.corp.redhat.com (Postfix) id 0FB7469286; Wed, 26 Jul 2017 15:05:47 +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 CBC6365EB6 for ; Wed, 26 Jul 2017 15:05:46 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 4A795883BF 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=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: John Ferlan To: libvir-list@redhat.com Date: Wed, 26 Jul 2017 11:05:21 -0400 Message-Id: <20170726150537.4619-5-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 04/20] 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.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Wed, 26 Jul 2017 15:05:56 +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 | 85 +++++++++++++++++++++++++++++++++++++++++= ++++ src/conf/virnetworkobj.h | 22 ++++++++++++ src/libvirt_private.syms | 5 +++ src/network/bridge_driver.c | 80 +++++++----------------------------------- 4 files changed, 124 insertions(+), 68 deletions(-) diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c index ccde72e..5578ac3 100644 --- a/src/conf/virnetworkobj.c +++ b/src/conf/virnetworkobj.c @@ -107,6 +107,91 @@ 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; +} + + +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 virMacMapFileName(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 virMacMapFileName(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..5c3d9a0 100644 --- a/src/conf/virnetworkobj.h +++ b/src/conf/virnetworkobj.h @@ -50,6 +50,28 @@ struct _virNetworkObj { virNetworkObjPtr virNetworkObjNew(void); =20 +virMacMapPtr +virNetworkObjGetMacMap(virNetworkObjPtr obj); + +void +virNetworkObjSetMacMap(virNetworkObjPtr obj, + virMacMapPtr macmap); + +void +virNetworkObjUnrefMacMap(virNetworkObjPtr obj); + +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 c293f38..320c3be 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -944,6 +944,7 @@ virNetworkObjFindByName; virNetworkObjFindByNameLocked; virNetworkObjFindByUUID; virNetworkObjFindByUUIDLocked; +virNetworkObjGetMacMap; virNetworkObjGetPersistentDef; virNetworkObjListExport; virNetworkObjListForEach; @@ -953,12 +954,16 @@ virNetworkObjListNumOfNetworks; virNetworkObjListPrune; virNetworkObjLoadAllConfigs; virNetworkObjLoadAllState; +virNetworkObjMacMgrAdd; +virNetworkObjMacMgrDel; 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 de2e83c..a730742 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -400,68 +400,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 virMacMapFileName(driver->dnsmasqStateDir, obj->def->br= idge))) - 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 virMacMapFileName(driver->dnsmasqStateDir, obj->def->br= idge))) - 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) { @@ -493,6 +431,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 @@ -515,9 +454,11 @@ networkUpdateState(virNetworkObjPtr obj, 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: @@ -2321,6 +2262,7 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr d= river, virNetworkIPDefPtr ipdef; virNetDevIPRoutePtr routedef; char *macTapIfName =3D NULL; + virMacMapPtr macmap; char *macMapFile =3D NULL; int tapfd =3D -1; =20 @@ -2371,9 +2313,11 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr = driver, =20 if (!(macMapFile =3D virMacMapFileName(driver->dnsmasqStateDir, obj->def->bridge)) || - !(obj->macmap =3D virMacMapNew(macMapFile))) + !(macmap =3D virMacMapNew(macMapFile))) goto err1; =20 + virNetworkObjSetMacMap(obj, macmap); + /* Set bridge options */ =20 /* delay is configured in seconds, but virNetDevBridgeSetSTPDelay @@ -2536,8 +2480,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; @@ -4653,7 +4596,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) @@ -5075,7 +5019,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.4 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat May 4 17:15:07 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.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 1501081559629870.826133084751; Wed, 26 Jul 2017 08:05:59 -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 564E8C05FFF4; Wed, 26 Jul 2017 15:05:56 +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 0F3BA86E70; Wed, 26 Jul 2017 15:05: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 AA95214B27; Wed, 26 Jul 2017 15:05:55 +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 v6QF5mKj028290 for ; Wed, 26 Jul 2017 11:05:48 -0400 Received: by smtp.corp.redhat.com (Postfix) id B36E96888A; Wed, 26 Jul 2017 15:05:48 +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 79C0B6929B for ; Wed, 26 Jul 2017 15:05:47 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 564E8C05FFF4 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=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: John Ferlan To: libvir-list@redhat.com Date: Wed, 26 Jul 2017 11:05:22 -0400 Message-Id: <20170726150537.4619-6-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 05/20] network: Unconditionally initialize macmap when stopping virtual network 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.32]); Wed, 26 Jul 2017 15:05:57 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Since we can only ever have one reference to obj->macmap, rather than only clearing obj->macmap during virNetworkObjUnrefMacMap (e.g. virtual network from networkShutdownNetwork), let's just unconditionally clear the obj->macmap to ensure that some future change that created it's own reference to obj->macmap wouldn't have that reference disappear if virNetworkObjDispose got called. Signed-off-by: John Ferlan --- src/conf/virnetworkobj.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c index 5578ac3..bb7225c 100644 --- a/src/conf/virnetworkobj.c +++ b/src/conf/virnetworkobj.c @@ -125,8 +125,8 @@ virNetworkObjSetMacMap(virNetworkObjPtr obj, void virNetworkObjUnrefMacMap(virNetworkObjPtr obj) { - if (!virObjectUnref(obj->macmap)) - obj->macmap =3D NULL; + virObjectUnref(obj->macmap); + obj->macmap =3D NULL; } =20 =20 --=20 2.9.4 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat May 4 17:15:07 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.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 1501081569554138.5017129941226; Wed, 26 Jul 2017 08:06:09 -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 A9DF42F86EE; Wed, 26 Jul 2017 15:06:05 +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 576C27DE48; Wed, 26 Jul 2017 15:06: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 A00E1180BA82; Wed, 26 Jul 2017 15:06:00 +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 v6QF5olA028306 for ; Wed, 26 Jul 2017 11:05:50 -0400 Received: by smtp.corp.redhat.com (Postfix) id 46C146888A; Wed, 26 Jul 2017 15:05:50 +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 09D3A6A301 for ; Wed, 26 Jul 2017 15:05:48 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com A9DF42F86EE 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=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: John Ferlan To: libvir-list@redhat.com Date: Wed, 26 Jul 2017 11:05:23 -0400 Message-Id: <20170726150537.4619-7-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 06/20] 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.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Wed, 26 Jul 2017 15:06:06 +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 bb7225c..533ed26 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 5c3d9a0..a07c7bf 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 320c3be..923960b 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -944,8 +944,10 @@ virNetworkObjFindByName; virNetworkObjFindByNameLocked; virNetworkObjFindByUUID; virNetworkObjFindByUUIDLocked; +virNetworkObjGetDnsmasqPid; virNetworkObjGetMacMap; virNetworkObjGetPersistentDef; +virNetworkObjGetRadvdPid; virNetworkObjListExport; virNetworkObjListForEach; virNetworkObjListGetNames; @@ -961,7 +963,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 a730742..5367773 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -484,12 +484,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) @@ -497,7 +500,8 @@ networkUpdateState(virNetworkObjPtr obj, =20 ignore_value(virPidFileReadIfAlive(driver->pidDir, radvdpidbase, - &obj->radvdPid, RADVD)); + &radvdPid, RADVD)); + virNetworkObjSetRadvdPid(obj, radvdPid); VIR_FREE(radvdpidbase); } =20 @@ -1480,7 +1484,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) @@ -1533,6 +1537,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 @@ -1601,9 +1606,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: @@ -1627,6 +1633,7 @@ networkRefreshDhcpDaemon(virNetworkDriverStatePtr dri= ver, { int ret =3D -1; size_t i; + pid_t dnsmasqPid; virNetworkIPDefPtr ipdef, ipv4def, ipv6def; dnsmasqContext *dctx =3D NULL; =20 @@ -1635,7 +1642,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); @@ -1676,7 +1684,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; @@ -1694,10 +1703,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); @@ -1837,13 +1848,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)) { @@ -1907,8 +1919,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: @@ -1927,26 +1940,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)) { @@ -1957,7 +1973,7 @@ networkRefreshRadvd(virNetworkDriverStatePtr driver, if (networkRadvdConfWrite(driver, obj, NULL) < 0) return -1; =20 - return kill(obj->radvdPid, SIGHUP); + return kill(radvdPid, SIGHUP); } =20 =20 @@ -1967,21 +1983,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); @@ -2265,6 +2282,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) @@ -2432,9 +2450,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: @@ -2477,15 +2496,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); @@ -2493,8 +2516,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); @@ -2512,15 +2536,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.4 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat May 4 17:15:07 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.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 15010816022231022.6370021039735; Wed, 26 Jul 2017 08:06:42 -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 405D3267F6; Wed, 26 Jul 2017 15:06:38 +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 E6F3593102; Wed, 26 Jul 2017 15:06:36 +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 2947914B2C; Wed, 26 Jul 2017 15:06:00 +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 v6QF5orE028311 for ; Wed, 26 Jul 2017 11:05:50 -0400 Received: by smtp.corp.redhat.com (Postfix) id DB16C65EB6; Wed, 26 Jul 2017 15:05:50 +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 A1F4A692A5 for ; Wed, 26 Jul 2017 15:05:50 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 405D3267F6 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=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: John Ferlan To: libvir-list@redhat.com Date: Wed, 26 Jul 2017 11:05:24 -0400 Message-Id: <20170726150537.4619-8-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 07/20] 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.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Wed, 26 Jul 2017 15:06:39 +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. Signed-off-by: John Ferlan --- src/conf/virnetworkobj.c | 39 ++++++++++++++++++++------------------- src/conf/virnetworkobj.h | 2 +- src/network/bridge_driver.c | 10 +++++----- 3 files changed, 26 insertions(+), 25 deletions(-) diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c index 533ed26..fb533b9 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 @@ -376,7 +376,7 @@ virNetworkObjDispose(void *obj) =20 virNetworkDefFree(net->def); virNetworkDefFree(net->newDef); - virBitmapFree(net->class_id); + virBitmapFree(net->classIdMap); virObjectUnref(net->macmap); } =20 @@ -716,17 +716,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)) @@ -783,7 +783,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; @@ -820,18 +820,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 && @@ -873,9 +874,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) @@ -892,7 +893,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 a07c7bf..0192913 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; diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index 5367773..ff0ad9c 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -5347,9 +5347,9 @@ networkNextClassID(virNetworkObjPtr obj) { ssize_t ret =3D 0; =20 - ret =3D virBitmapNextClearBit(obj->class_id, -1); + ret =3D virBitmapNextClearBit(obj->classIdMap, -1); =20 - if (ret < 0 || virBitmapSetBit(obj->class_id, ret) < 0) + if (ret < 0 || virBitmapSetBit(obj->classIdMap, ret) < 0) return -1; =20 return ret; @@ -5387,7 +5387,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(obj->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)); @@ -5476,12 +5476,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(obj->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(obj->classIdMap, iface->data.network.actual->class= _id)); goto cleanup; } --=20 2.9.4 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat May 4 17:15:07 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.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 1501081559980728.8942422806684; Wed, 26 Jul 2017 08:05:59 -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 52CBD8553E; Wed, 26 Jul 2017 15:05:55 +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 0BE65692AC; Wed, 26 Jul 2017 15:05: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 A4715180B467; Wed, 26 Jul 2017 15:05:54 +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 v6QF5pXU028321 for ; Wed, 26 Jul 2017 11:05:51 -0400 Received: by smtp.corp.redhat.com (Postfix) id D5D4B65EB6; Wed, 26 Jul 2017 15:05:51 +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 92D5769294 for ; Wed, 26 Jul 2017 15:05:50 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 52CBD8553E 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:25 -0400 Message-Id: <20170726150537.4619-9-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 08/20] network: Introduce virNetworkObjGetClassIdMap 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]); Wed, 26 Jul 2017 15:05:56 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" In preparation for privatizing virNetworkObj, create accessor function to fetch the @classIdMap. Signed-off-by: John Ferlan --- src/conf/virnetworkobj.c | 7 +++++++ src/conf/virnetworkobj.h | 3 +++ src/libvirt_private.syms | 1 + src/network/bridge_driver.c | 13 ++++++++----- 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c index fb533b9..1fedb1c 100644 --- a/src/conf/virnetworkobj.c +++ b/src/conf/virnetworkobj.c @@ -137,6 +137,13 @@ virNetworkObjSetRadvdPid(virNetworkObjPtr obj, } =20 =20 +virBitmapPtr +virNetworkObjGetClassIdMap(virNetworkObjPtr obj) +{ + return obj->classIdMap; +} + + virMacMapPtr virNetworkObjGetMacMap(virNetworkObjPtr obj) { diff --git a/src/conf/virnetworkobj.h b/src/conf/virnetworkobj.h index 0192913..dc8a1cd 100644 --- a/src/conf/virnetworkobj.h +++ b/src/conf/virnetworkobj.h @@ -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 923960b..147d78d 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -944,6 +944,7 @@ virNetworkObjFindByName; virNetworkObjFindByNameLocked; virNetworkObjFindByUUID; virNetworkObjFindByUUIDLocked; +virNetworkObjGetClassIdMap; virNetworkObjGetDnsmasqPid; virNetworkObjGetMacMap; virNetworkObjGetPersistentDef; diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index ff0ad9c..4a1c258 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -5346,10 +5346,11 @@ static ssize_t networkNextClassID(virNetworkObjPtr obj) { ssize_t ret =3D 0; + virBitmapPtr classIdMap =3D virNetworkObjGetClassIdMap(obj); =20 - ret =3D virBitmapNextClearBit(obj->classIdMap, -1); + ret =3D virBitmapNextClearBit(classIdMap, -1); =20 - if (ret < 0 || virBitmapSetBit(obj->classIdMap, ret) < 0) + if (ret < 0 || virBitmapSetBit(classIdMap, ret) < 0) return -1; =20 return ret; @@ -5363,6 +5364,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; @@ -5387,7 +5389,7 @@ networkPlugBandwidthImpl(virNetworkObjPtr obj, obj->floor_sum +=3D ifaceBand->in->floor; /* update status file */ if (virNetworkObjSaveStatus(driver->stateDir, obj) < 0) { - ignore_value(virBitmapClearBit(obj->classIdMap, 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)); @@ -5451,6 +5453,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; @@ -5476,12 +5479,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->classIdMap, + 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->classIdMap, + ignore_value(virBitmapSetBit(classIdMap, iface->data.network.actual->class= _id)); goto cleanup; } --=20 2.9.4 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat May 4 17:15:07 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.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 150108156635457.57989429001566; Wed, 26 Jul 2017 08:06:06 -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 3A7C0C00EB3E; Wed, 26 Jul 2017 15: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 0F8527AF6A; Wed, 26 Jul 2017 15:05:59 +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 B0C37180B467; Wed, 26 Jul 2017 15:05:58 +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 v6QF5qZC028328 for ; Wed, 26 Jul 2017 11:05:52 -0400 Received: by smtp.corp.redhat.com (Postfix) id 7807165EB6; Wed, 26 Jul 2017 15:05:52 +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 3DD156929A for ; Wed, 26 Jul 2017 15:05:51 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 3A7C0C00EB3E 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=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: John Ferlan To: libvir-list@redhat.com Date: Wed, 26 Jul 2017 11:05:26 -0400 Message-Id: <20170726150537.4619-10-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 09/20] 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.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.32]); Wed, 26 Jul 2017 15:06:00 +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 1fedb1c..ce571bc 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 dc8a1cd..12d0a86 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 147d78d..35dfe5e 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -946,6 +946,7 @@ virNetworkObjFindByUUID; virNetworkObjFindByUUIDLocked; virNetworkObjGetClassIdMap; virNetworkObjGetDnsmasqPid; +virNetworkObjGetFloorSum; virNetworkObjGetMacMap; virNetworkObjGetPersistentDef; virNetworkObjGetRadvdPid; @@ -965,6 +966,7 @@ virNetworkObjReplacePersistentDef; virNetworkObjSaveStatus; virNetworkObjSetDefTransient; virNetworkObjSetDnsmasqPid; +virNetworkObjSetFloorSum; virNetworkObjSetMacMap; virNetworkObjSetRadvdPid; virNetworkObjTaint; diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index 4a1c258..602492e 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -5271,7 +5271,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 @@ -5365,6 +5365,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; @@ -5386,17 +5387,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", @@ -5454,6 +5457,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; @@ -5477,19 +5481,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", @@ -5581,6 +5588,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; @@ -5621,16 +5629,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.4 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat May 4 17:15:07 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.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 1501081605855594.6178562616495; Wed, 26 Jul 2017 08:06:45 -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 984C9C008282; Wed, 26 Jul 2017 15:06:40 +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 37024707BA; Wed, 26 Jul 2017 15:06:31 +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 8356F180BA8B; Wed, 26 Jul 2017 15:06:03 +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 v6QF5rhL028333 for ; Wed, 26 Jul 2017 11:05:54 -0400 Received: by smtp.corp.redhat.com (Postfix) id D887E65EB6; Wed, 26 Jul 2017 15:05:53 +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 C29C568D84 for ; Wed, 26 Jul 2017 15:05:52 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 984C9C008282 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=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: John Ferlan To: libvir-list@redhat.com Date: Wed, 26 Jul 2017 11:05:27 -0400 Message-Id: <20170726150537.4619-11-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 10/20] network: Add virNetworkObj Get/Set 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.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.32]); Wed, 26 Jul 2017 15:06:41 +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 & obj->newDef and set the obj->def. While altering networkxml2conftest.c to use the virNetworkObjSetDef API, fix the name of the variable from @dev to @def Signed-off-by: John Ferlan --- src/conf/virnetworkobj.c | 22 ++ src/conf/virnetworkobj.h | 10 + src/libvirt_private.syms | 3 + src/network/bridge_driver.c | 505 ++++++++++++++++++++++++----------------= ---- src/test/test_driver.c | 58 +++-- tests/networkxml2conftest.c | 9 +- 6 files changed, 349 insertions(+), 258 deletions(-) diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c index ce571bc..631f8cd 100644 --- a/src/conf/virnetworkobj.c +++ b/src/conf/virnetworkobj.c @@ -107,6 +107,28 @@ virNetworkObjEndAPI(virNetworkObjPtr *net) } =20 =20 +virNetworkDefPtr +virNetworkObjGetDef(virNetworkObjPtr obj) +{ + return obj->def; +} + + +void +virNetworkObjSetDef(virNetworkObjPtr obj, + virNetworkDefPtr def) +{ + obj->def =3D 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 12d0a86..90ce0ca 100644 --- a/src/conf/virnetworkobj.h +++ b/src/conf/virnetworkobj.h @@ -50,6 +50,16 @@ struct _virNetworkObj { virNetworkObjPtr virNetworkObjNew(void); =20 +virNetworkDefPtr +virNetworkObjGetDef(virNetworkObjPtr obj); + +void +virNetworkObjSetDef(virNetworkObjPtr obj, + virNetworkDefPtr def); + +virNetworkDefPtr +virNetworkObjGetNewDef(virNetworkObjPtr obj); + virMacMapPtr virNetworkObjGetMacMap(virNetworkObjPtr obj); =20 diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 35dfe5e..84e3eb7 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -945,9 +945,11 @@ virNetworkObjFindByNameLocked; virNetworkObjFindByUUID; virNetworkObjFindByUUIDLocked; virNetworkObjGetClassIdMap; +virNetworkObjGetDef; virNetworkObjGetDnsmasqPid; virNetworkObjGetFloorSum; virNetworkObjGetMacMap; +virNetworkObjGetNewDef; virNetworkObjGetPersistentDef; virNetworkObjGetRadvdPid; virNetworkObjListExport; @@ -964,6 +966,7 @@ virNetworkObjNew; virNetworkObjRemoveInactive; virNetworkObjReplacePersistentDef; virNetworkObjSaveStatus; +virNetworkObjSetDef; virNetworkObjSetDefTransient; virNetworkObjSetDnsmasqPid; virNetworkObjSetFloorSum; diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index 602492e..b4fbfc5 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 /* @@ -429,6 +430,7 @@ static int networkUpdateState(virNetworkObjPtr obj, void *opaque) { + virNetworkDefPtr def; virNetworkDriverStatePtr driver =3D opaque; dnsmasqCapsPtr dnsmasq_caps =3D networkGetDnsmasqCaps(driver); virMacMapPtr macmap; @@ -440,18 +442,19 @@ networkUpdateState(virNetworkObjPtr obj, ret =3D 0; goto cleanup; } + def =3D virNetworkObjGetDef(obj); =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 virMacMapFileName(driver->dnsmasqStateDir, - obj->def->bridge))) + def->bridge))) goto cleanup; =20 if (!(macmap =3D virMacMapNew(macMapFile))) @@ -462,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; } @@ -483,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 @@ -1016,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; @@ -1054,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 @@ -1062,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" @@ -1072,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) @@ -1096,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" @@ -1143,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 @@ -1201,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)) { @@ -1225,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 @@ -1274,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) { @@ -1336,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++) { @@ -1442,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); @@ -1477,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; @@ -1493,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 */ @@ -1515,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; @@ -1532,6 +1537,7 @@ static int networkStartDhcpDaemon(virNetworkDriverStatePtr driver, virNetworkObjPtr obj) { + virNetworkDefPtr def =3D virNetworkObjGetDef(obj); virNetworkIPDefPtr ipdef; size_t i; bool needDnsmasq =3D false; @@ -1543,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; @@ -1555,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; @@ -1568,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) { @@ -1579,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 @@ -1606,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); @@ -1631,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; @@ -1638,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 */ @@ -1646,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; } @@ -1658,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; @@ -1666,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; @@ -1678,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) @@ -1703,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 */ @@ -1725,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; @@ -1734,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; @@ -1759,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 @@ -1774,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))) @@ -1807,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; @@ -1825,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) { @@ -1847,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; @@ -1863,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; @@ -1891,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; @@ -1938,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; @@ -1949,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); @@ -1965,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; } @@ -1982,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 @@ -1991,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); @@ -2010,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 @@ -2049,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 */ } } @@ -2108,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; } @@ -2131,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); @@ -2144,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) { @@ -2158,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) { @@ -2179,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; @@ -2200,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) { @@ -2223,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); @@ -2232,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; @@ -2264,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 @@ -2273,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; @@ -2285,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 @@ -2300,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) { @@ -2330,7 +2344,7 @@ networkStartNetworkVirtual(virNetworkDriverStatePtr d= river, } =20 if (!(macMapFile =3D virMacMapFileName(driver->dnsmasqStateDir, - obj->def->bridge)) || + def->bridge)) || !(macmap =3D virMacMapNew(macMapFile))) goto err1; =20 @@ -2341,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 @@ -2356,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)) @@ -2377,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 */ @@ -2398,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 @@ -2434,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); @@ -2443,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) @@ -2459,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) @@ -2481,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); @@ -2496,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 @@ -2510,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); } @@ -2520,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); @@ -2690,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 @@ -2710,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); @@ -2733,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: @@ -2744,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; @@ -2778,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: @@ -2799,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: @@ -2825,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; } @@ -2859,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); @@ -2870,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); @@ -2888,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); @@ -2896,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); @@ -3060,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); @@ -3080,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; @@ -3457,45 +3473,47 @@ networkCreateXML(virConnectPtr conn, const char *xml) { virNetworkDriverStatePtr driver =3D networkGetDriver(); - virNetworkDefPtr def; + virNetworkDefPtr newDef; virNetworkObjPtr obj =3D NULL; + virNetworkDefPtr def; virNetworkPtr net =3D NULL; virObjectEventPtr event =3D NULL; =20 - if (!(def =3D virNetworkDefParseString(xml))) + if (!(newDef =3D virNetworkDefParseString(xml))) goto cleanup; =20 - if (virNetworkCreateXMLEnsureACL(conn, def) < 0) + if (virNetworkCreateXMLEnsureACL(conn, newDef) < 0) goto cleanup; =20 - if (networkValidate(driver, def) < 0) + if (networkValidate(driver, newDef) < 0) goto cleanup; =20 /* NB: even though this transient network hasn't yet been started, * we assign the def with live =3D true in anticipation that it will * be started momentarily. */ - if (!(obj =3D virNetworkObjAssignDef(driver->networks, def, + if (!(obj =3D virNetworkObjAssignDef(driver->networks, newDef, VIR_NETWORK_OBJ_LIST_ADD_LIVE | VIR_NETWORK_OBJ_LIST_ADD_CHECK_LIVE= ))) goto cleanup; - def =3D NULL; + newDef =3D NULL; + def =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(def->name, + def->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'", def->name); + net =3D virGetNetwork(conn, def->name, def->uuid); =20 cleanup: - virNetworkDefFree(def); + virNetworkDefFree(newDef); if (event) virObjectEventStateQueue(driver->networkEventState, event); virNetworkObjEndAPI(&obj); @@ -3564,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)) @@ -3589,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; @@ -3626,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; @@ -3639,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; @@ -3670,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: @@ -3683,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; @@ -3697,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) { @@ -3741,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; @@ -3796,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 @@ -3826,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 @@ -3868,23 +3893,27 @@ networkGetXMLDesc(virNetworkPtr net, unsigned int flags) { virNetworkObjPtr obj; + virNetworkDefPtr curDef; virNetworkDefPtr def; + virNetworkDefPtr newDef; char *ret =3D NULL; =20 virCheckFlags(VIR_NETWORK_XML_INACTIVE, NULL); =20 if (!(obj =3D networkObjFromNetwork(net))) return ret; + def =3D virNetworkObjGetDef(obj); + newDef =3D virNetworkObjGetNewDef(obj); =20 - if (virNetworkGetXMLDescEnsureACL(net->conn, obj->def) < 0) + if (virNetworkGetXMLDescEnsureACL(net->conn, def) < 0) goto cleanup; =20 - if ((flags & VIR_NETWORK_XML_INACTIVE) && obj->newDef) - def =3D obj->newDef; + if ((flags & VIR_NETWORK_XML_INACTIVE) && newDef) + curDef =3D newDef; else - def =3D obj->def; + curDef =3D def; =20 - ret =3D virNetworkDefFormat(def, flags); + ret =3D virNetworkDefFormat(curDef, flags); =20 cleanup: virNetworkObjEndAPI(&obj); @@ -3896,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); @@ -3929,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; @@ -3947,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) { @@ -3966,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) { @@ -4032,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); @@ -4044,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, @@ -4125,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)) { @@ -4144,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 */ @@ -4327,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, @@ -4742,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, @@ -4959,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 || @@ -5110,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: @@ -5199,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) || @@ -5270,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]; @@ -5282,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 @@ -5307,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) { @@ -5318,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 @@ -5364,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; @@ -5377,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 @@ -5395,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: @@ -5456,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(); @@ -5465,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; @@ -5497,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; } @@ -5514,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 @@ -5588,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; @@ -5604,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) { @@ -5623,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 @@ -5635,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 bf1344b..868aa27 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -3233,12 +3233,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); @@ -3267,12 +3269,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); @@ -3385,29 +3389,31 @@ static virNetworkPtr testNetworkCreateXML(virConnectPtr conn, const char *xml) { testDriverPtr privconn =3D conn->privateData; - virNetworkDefPtr def; + virNetworkDefPtr newDef; virNetworkObjPtr obj =3D NULL; + virNetworkDefPtr def; virNetworkPtr net =3D NULL; virObjectEventPtr event =3D NULL; =20 - if ((def =3D virNetworkDefParseString(xml)) =3D=3D NULL) + if ((newDef =3D virNetworkDefParseString(xml)) =3D=3D NULL) goto cleanup; =20 - if (!(obj =3D virNetworkObjAssignDef(privconn->networks, def, + if (!(obj =3D virNetworkObjAssignDef(privconn->networks, newDef, VIR_NETWORK_OBJ_LIST_ADD_LIVE | VIR_NETWORK_OBJ_LIST_ADD_CHECK_LIVE= ))) goto cleanup; - def =3D NULL; + newDef =3D NULL; + def =3D virNetworkObjGetDef(obj); obj->active =3D 1; =20 - event =3D virNetworkEventLifecycleNew(obj->def->name, obj->def->uuid, + event =3D virNetworkEventLifecycleNew(def->name, def->uuid, VIR_NETWORK_EVENT_STARTED, 0); =20 - net =3D virGetNetwork(conn, obj->def->name, obj->def->uuid); + net =3D virGetNetwork(conn, def->name, def->uuid); =20 cleanup: - virNetworkDefFree(def); + virNetworkDefFree(newDef); testObjectEventQueue(privconn, event); virNetworkObjEndAPI(&obj); return net; @@ -3419,26 +3425,28 @@ testNetworkDefineXML(virConnectPtr conn, const char *xml) { testDriverPtr privconn =3D conn->privateData; - virNetworkDefPtr def; + virNetworkDefPtr newDef; virNetworkObjPtr obj =3D NULL; + virNetworkDefPtr def; virNetworkPtr net =3D NULL; virObjectEventPtr event =3D NULL; =20 - if ((def =3D virNetworkDefParseString(xml)) =3D=3D NULL) + if ((newDef =3D virNetworkDefParseString(xml)) =3D=3D NULL) goto cleanup; =20 - if (!(obj =3D virNetworkObjAssignDef(privconn->networks, def, 0))) + if (!(obj =3D virNetworkObjAssignDef(privconn->networks, newDef, 0))) goto cleanup; - def =3D NULL; + newDef =3D NULL; + def =3D virNetworkObjGetDef(obj); =20 - event =3D virNetworkEventLifecycleNew(obj->def->name, obj->def->uuid, + event =3D virNetworkEventLifecycleNew(def->name, def->uuid, VIR_NETWORK_EVENT_DEFINED, 0); =20 - net =3D virGetNetwork(conn, obj->def->name, obj->def->uuid); + net =3D virGetNetwork(conn, def->name, def->uuid); =20 cleanup: - virNetworkDefFree(def); + virNetworkDefFree(newDef); testObjectEventQueue(privconn, event); virNetworkObjEndAPI(&obj); return net; @@ -3524,11 +3532,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, @@ -3537,7 +3547,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; @@ -3554,14 +3564,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) @@ -3589,7 +3601,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); @@ -3603,18 +3615,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); diff --git a/tests/networkxml2conftest.c b/tests/networkxml2conftest.c index ab3c13a..6841810 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; 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())) goto fail; =20 - obj->def =3D dev; - dctx =3D dnsmasqContextNew(dev->name, "/var/lib/libvirt/dnsmasq"); + virNetworkObjSetDef(obj, def); + + dctx =3D dnsmasqContextNew(def->name, "/var/lib/libvirt/dnsmasq"); =20 if (dctx =3D=3D NULL) goto fail; --=20 2.9.4 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat May 4 17:15:07 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.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 From nobody Sat May 4 17:15:07 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.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 1501081621595881.4172365707843; Wed, 26 Jul 2017 08:07:01 -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 718DE8BD22; Wed, 26 Jul 2017 15:06: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 018E286E7B; Wed, 26 Jul 2017 15:06: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 514FB180BA8A; Wed, 26 Jul 2017 15:06:16 +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 v6QF6FgA028414 for ; Wed, 26 Jul 2017 11:06:15 -0400 Received: by smtp.corp.redhat.com (Postfix) id 215436A302; Wed, 26 Jul 2017 15:06:15 +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 BC9FF6973F for ; Wed, 26 Jul 2017 15:05:54 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 718DE8BD22 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:29 -0400 Message-Id: <20170726150537.4619-13-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 12/20] 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.12 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:57 +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 36d4bff..a195494 100644 --- a/src/conf/virnetworkobj.c +++ b/src/conf/virnetworkobj.c @@ -129,6 +129,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) { @@ -942,7 +957,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 a526d30..8b778c8 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 @@ -60,6 +60,13 @@ virNetworkObjSetDef(virNetworkObjPtr obj, virNetworkDefPtr virNetworkObjGetNewDef(virNetworkObjPtr obj); =20 +bool +virNetworkObjIsActive(virNetworkObjPtr obj); + +void +virNetworkObjSetActive(virNetworkObjPtr obj, + bool active); + int virNetworkObjGetAutostart(virNetworkObjPtr obj); =20 @@ -119,12 +126,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 8a3284f..8796258 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -953,6 +953,7 @@ virNetworkObjGetMacMap; virNetworkObjGetNewDef; virNetworkObjGetPersistentDef; virNetworkObjGetRadvdPid; +virNetworkObjIsActive; virNetworkObjListExport; virNetworkObjListForEach; virNetworkObjListGetNames; @@ -967,6 +968,7 @@ virNetworkObjNew; virNetworkObjRemoveInactive; virNetworkObjReplacePersistentDef; virNetworkObjSaveStatus; +virNetworkObjSetActive; virNetworkObjSetAutostart; virNetworkObjSetDef; virNetworkObjSetDefTransient; diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index eb814d3..f423c82 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 virMacMapFileName(driver->dnsmasqStateDir, 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 8e841b2..698488e 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -988,7 +988,7 @@ testParseNetworks(testDriverPtr privconn, goto error; } =20 - obj->active =3D 1; + virNetworkObjSetActive(obj, true); virNetworkObjEndAPI(&obj); } =20 @@ -3404,7 +3404,7 @@ testNetworkCreateXML(virConnectPtr conn, const char *= xml) goto cleanup; newDef =3D NULL; def =3D virNetworkObjGetDef(obj); - obj->active =3D 1; + virNetworkObjSetActive(obj, true); =20 event =3D virNetworkEventLifecycleNew(def->name, def->uuid, VIR_NETWORK_EVENT_STARTED, @@ -3546,7 +3546,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); @@ -3572,7 +3572,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.4 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat May 4 17:15:07 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.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 150108163786136.60085846987681; Wed, 26 Jul 2017 08:07:17 -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 DD20AC0B2C5E; Wed, 26 Jul 2017 15:07:10 +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 503F57AF4D; Wed, 26 Jul 2017 15:07: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 50C9114B29; Wed, 26 Jul 2017 15:06:41 +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 v6QF6dTw028665 for ; Wed, 26 Jul 2017 11:06:39 -0400 Received: by smtp.corp.redhat.com (Postfix) id 078626A32B; Wed, 26 Jul 2017 15:06:39 +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 0692A69524 for ; Wed, 26 Jul 2017 15:06:15 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com DD20AC0B2C5E 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=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: John Ferlan To: libvir-list@redhat.com Date: Wed, 26 Jul 2017 11:05:30 -0400 Message-Id: <20170726150537.4619-14-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 13/20] 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.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Wed, 26 Jul 2017 15:07:11 +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 | 9 +++++---- src/test/test_driver.c | 4 ++-- 5 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c index a195494..37b76e5 100644 --- a/src/conf/virnetworkobj.c +++ b/src/conf/virnetworkobj.c @@ -144,6 +144,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 8b778c8..96f9eff 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 */ @@ -67,6 +67,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 8796258..2497af0 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -954,6 +954,7 @@ virNetworkObjGetNewDef; virNetworkObjGetPersistentDef; virNetworkObjGetRadvdPid; virNetworkObjIsActive; +virNetworkObjIsPersistent; virNetworkObjListExport; virNetworkObjListForEach; virNetworkObjListGetNames; diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index f423c82..2433e4f 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; } @@ -3990,7 +3991,7 @@ networkSetAutostart(virNetworkPtr net, if (virNetworkSetAutostartEnsureACL(net->conn, def) < 0) goto cleanup; =20 - if (!obj->persistent) { + if (!virNetworkObjIsPersistent(obj)) { virReportError(VIR_ERR_OPERATION_INVALID, "%s", _("cannot set autostart for transient network= ")); goto cleanup; diff --git a/src/test/test_driver.c b/src/test/test_driver.c index 698488e..e306f1e 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -3377,7 +3377,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); @@ -3576,7 +3576,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.4 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat May 4 17:15:07 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.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 1501081649936712.0006952207951; Wed, 26 Jul 2017 08:07:29 -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 E12AA7A162; Wed, 26 Jul 2017 15:07:24 +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 B7E547B559; Wed, 26 Jul 2017 15:07:24 +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 D896C1805983; Wed, 26 Jul 2017 15:06:56 +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 v6QF6teM028849 for ; Wed, 26 Jul 2017 11:06:55 -0400 Received: by smtp.corp.redhat.com (Postfix) id 731026A311; Wed, 26 Jul 2017 15:06:55 +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 DB7206A321 for ; Wed, 26 Jul 2017 15:06:38 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com E12AA7A162 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:31 -0400 Message-Id: <20170726150537.4619-15-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 14/20] 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.14 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:07:25 +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 37b76e5..edea6f5 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 @@ -336,15 +336,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 @@ -362,14 +362,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 @@ -378,13 +378,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 @@ -402,12 +402,12 @@ virNetworkObjPtr virNetworkObjFindByNameLocked(virNetworkObjListPtr nets, const char *name) { - virNetworkObjPtr ret =3D NULL; + virNetworkObjPtr obj =3D NULL; =20 - ret =3D virHashSearch(nets->objs, virNetworkObjSearchName, name, NULL); - if (ret) - virObjectRef(ret); - return ret; + obj =3D virHashSearch(nets->objs, virNetworkObjSearchName, name, NULL); + if (obj) + virObjectRef(obj); + return obj; } =20 =20 @@ -425,14 +425,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 @@ -451,21 +451,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); } @@ -488,7 +488,7 @@ virNetworkObjListDispose(void *obj) * */ void -virNetworkObjUpdateAssignDef(virNetworkObjPtr network, +virNetworkObjUpdateAssignDef(virNetworkObjPtr obj, virNetworkDefPtr def, bool live) { @@ -497,38 +497,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 @@ -548,65 +548,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 @@ -631,12 +630,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 @@ -655,17 +654,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 @@ -674,12 +673,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 @@ -694,12 +693,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 @@ -715,15 +714,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; } @@ -741,13 +740,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", @@ -756,7 +755,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")); @@ -765,7 +764,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 @@ -777,27 +776,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) @@ -806,16 +805,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); @@ -834,16 +833,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; @@ -860,7 +859,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; @@ -949,28 +948,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); @@ -988,7 +987,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) @@ -1025,15 +1024,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); @@ -1056,13 +1055,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); @@ -1084,18 +1083,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); @@ -1106,20 +1105,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, @@ -1148,22 +1147,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 @@ -1199,7 +1198,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, @@ -1210,14 +1209,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) { @@ -1235,7 +1234,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; } @@ -1252,14 +1251,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 @@ -1273,31 +1272,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.4 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat May 4 17:15:07 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.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 1501081667528429.3494053775721; Wed, 26 Jul 2017 08:07:47 -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 589F7561CE; Wed, 26 Jul 2017 15:07:42 +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 29ACB6FF1B; Wed, 26 Jul 2017 15:07:42 +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 7EA4C14B26; Wed, 26 Jul 2017 15:07:29 +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 v6QF7RfS028965 for ; Wed, 26 Jul 2017 11:07:27 -0400 Received: by smtp.corp.redhat.com (Postfix) id 82D546A30C; Wed, 26 Jul 2017 15:07:27 +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 49A726A31A for ; Wed, 26 Jul 2017 15:06:55 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 589F7561CE 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=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: John Ferlan To: libvir-list@redhat.com Date: Wed, 26 Jul 2017 11:05:32 -0400 Message-Id: <20170726150537.4619-16-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 15/20] network: Have virNetworkObjNew lock the returned object 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.27]); Wed, 26 Jul 2017 15:07:43 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Forces callers to use the virNetworkObjEndAPI properly. Signed-off-by: John Ferlan --- src/conf/virnetworkobj.c | 4 ++-- tests/networkxml2conftest.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c index edea6f5..037186e 100644 --- a/src/conf/virnetworkobj.c +++ b/src/conf/virnetworkobj.c @@ -87,6 +87,8 @@ virNetworkObjNew(void) ignore_value(virBitmapSetBit(obj->classIdMap, 1)); ignore_value(virBitmapSetBit(obj->classIdMap, 2)); =20 + virObjectLock(obj); + return obj; =20 error: @@ -590,8 +592,6 @@ virNetworkObjAssignDefLocked(virNetworkObjListPtr nets, if (!(obj =3D virNetworkObjNew())) goto cleanup; =20 - virObjectLock(obj); - virUUIDFormat(def->uuid, uuidstr); if (virHashAddEntry(nets->objs, uuidstr, obj) < 0) goto cleanup; diff --git a/tests/networkxml2conftest.c b/tests/networkxml2conftest.c index 6841810..4251a22 100644 --- a/tests/networkxml2conftest.c +++ b/tests/networkxml2conftest.c @@ -67,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.4 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat May 4 17:15:07 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.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 1501081688467506.62238844037165; Wed, 26 Jul 2017 08:08:08 -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 923E2C01FA91; Wed, 26 Jul 2017 15:08:05 +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 6D1067AF6A; Wed, 26 Jul 2017 15:08:05 +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 4BC7614B2F; Wed, 26 Jul 2017 15:07:37 +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 v6QF7aR9028986 for ; Wed, 26 Jul 2017 11:07:36 -0400 Received: by smtp.corp.redhat.com (Postfix) id 273386929B; Wed, 26 Jul 2017 15:07:36 +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 DEE89692B9 for ; Wed, 26 Jul 2017 15:07:27 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 923E2C01FA91 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=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: John Ferlan To: libvir-list@redhat.com Date: Wed, 26 Jul 2017 11:05:33 -0400 Message-Id: <20170726150537.4619-17-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 16/20] network: Move virObjectRef during AssignDef processing 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]); Wed, 26 Jul 2017 15:08:06 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Move the virObjectRef in virNetworkObjAssignDefLocked to after the virHashAddEntry to make it "clearer" why the @ref is being incremented. Upon return from the ObjNew we will have 1 ref on the object already, adding it to the hash table requires the increment. Signed-off-by: John Ferlan --- src/conf/virnetworkobj.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c index 037186e..43fc2cf 100644 --- a/src/conf/virnetworkobj.c +++ b/src/conf/virnetworkobj.c @@ -595,10 +595,10 @@ virNetworkObjAssignDefLocked(virNetworkObjListPtr net= s, virUUIDFormat(def->uuid, uuidstr); if (virHashAddEntry(nets->objs, uuidstr, obj) < 0) goto cleanup; + virObjectRef(obj); =20 obj->def =3D def; obj->persistent =3D !(flags & VIR_NETWORK_OBJ_LIST_ADD_LIVE); - virObjectRef(obj); } =20 ret =3D obj; --=20 2.9.4 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat May 4 17:15:07 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.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 1501081729154269.75656092359657; Wed, 26 Jul 2017 08:08:49 -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 6EED4C0B2C70; Wed, 26 Jul 2017 15:08:42 +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 2E2937DDFC; Wed, 26 Jul 2017 15:08:42 +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 A09C514B28; Wed, 26 Jul 2017 15:07:46 +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 v6QF7kLl029011 for ; Wed, 26 Jul 2017 11:07:46 -0400 Received: by smtp.corp.redhat.com (Postfix) id 34DDD692AA; Wed, 26 Jul 2017 15:07:46 +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 F0330692B9 for ; Wed, 26 Jul 2017 15:07:36 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 6EED4C0B2C70 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=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: John Ferlan To: libvir-list@redhat.com Date: Wed, 26 Jul 2017 11:05:34 -0400 Message-Id: <20170726150537.4619-18-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 17/20] network: Use @maxnames instead of @nnames 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.31]); Wed, 26 Jul 2017 15:08:43 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" To be consistent with the API definition, use the @maxnames instead of @nnames when describing/comparing against the maximum names to be provided for the *ConnectList[Defined]Networks APIs. Signed-off-by: John Ferlan --- src/conf/virnetworkobj.c | 10 +++++----- src/conf/virnetworkobj.h | 2 +- src/network/bridge_driver.c | 8 ++++---- src/test/test_driver.c | 8 ++++---- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c index 43fc2cf..d288dd0 100644 --- a/src/conf/virnetworkobj.c +++ b/src/conf/virnetworkobj.c @@ -1438,7 +1438,7 @@ struct virNetworkObjListGetHelperData { virConnectPtr conn; virNetworkObjListFilter filter; char **names; - int nnames; + int maxnames; bool active; int got; bool error; @@ -1455,8 +1455,8 @@ 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); @@ -1485,14 +1485,14 @@ int virNetworkObjListGetNames(virNetworkObjListPtr nets, bool active, char **names, - int nnames, + int maxnames, virNetworkObjListFilter filter, virConnectPtr conn) { int ret =3D -1; =20 struct virNetworkObjListGetHelperData data =3D { - conn, filter, names, nnames, active, 0, false}; + conn, filter, names, maxnames, active, 0, false}; =20 virObjectLock(nets); virHashForEach(nets->objs, virNetworkObjListGetHelper, &data); diff --git a/src/conf/virnetworkobj.h b/src/conf/virnetworkobj.h index 96f9eff..f7ed387 100644 --- a/src/conf/virnetworkobj.h +++ b/src/conf/virnetworkobj.h @@ -235,7 +235,7 @@ int virNetworkObjListGetNames(virNetworkObjListPtr nets, bool active, char **names, - int nnames, + int maxnames, virNetworkObjListFilter filter, virConnectPtr conn); =20 diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index 2433e4f..d2d983d 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 e306f1e..4b8699b 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -3299,13 +3299,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 @@ -3325,13 +3325,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.4 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat May 4 17:15:07 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.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 1501081751002524.643046392809; Wed, 26 Jul 2017 08:09: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 E9BE9883D9; Wed, 26 Jul 2017 15:09:00 +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 897DA7815F; Wed, 26 Jul 2017 15:09: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 7433614B38; Wed, 26 Jul 2017 15:07:58 +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 v6QF7u5e029035 for ; Wed, 26 Jul 2017 11:07:56 -0400 Received: by smtp.corp.redhat.com (Postfix) id 843EE69724; Wed, 26 Jul 2017 15:07:56 +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 357276A333 for ; Wed, 26 Jul 2017 15:07:46 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com E9BE9883D9 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=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: John Ferlan To: libvir-list@redhat.com Date: Wed, 26 Jul 2017 11:05:35 -0400 Message-Id: <20170726150537.4619-19-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 18/20] network: Rename @filter to @aclfilter 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.26]); Wed, 26 Jul 2017 15:09:02 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Rename the virNetworkObjListFilter to be virNetworkObjListACLFilter since that's more representative of what it is. Also modify the variable @filter to be @aclfilter. In the future adding the ability to describe a generic @filter routine for the Export functions could be a useful thing. Signed-off-by: John Ferlan --- src/conf/virnetworkobj.c | 24 ++++++++++++------------ src/conf/virnetworkobj.h | 10 +++++----- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c index d288dd0..2be48dd 100644 --- a/src/conf/virnetworkobj.c +++ b/src/conf/virnetworkobj.c @@ -1307,7 +1307,7 @@ virNetworkMatch(virNetworkObjPtr obj, struct virNetworkObjListData { virConnectPtr conn; virNetworkPtr *nets; - virNetworkObjListFilter filter; + virNetworkObjListACLFilter aclfilter; unsigned int flags; int nnets; bool error; @@ -1327,8 +1327,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)) @@ -1356,11 +1356,11 @@ 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, NULL, aclfilter, flags, = 0, false}; =20 virObjectLock(netobjs); if (nets && VIR_ALLOC_N(data.nets, virHashSize(netobjs->objs) + 1) < 0) @@ -1436,7 +1436,7 @@ virNetworkObjListForEach(virNetworkObjListPtr nets, =20 struct virNetworkObjListGetHelperData { virConnectPtr conn; - virNetworkObjListFilter filter; + virNetworkObjListACLFilter aclfilter; char **names; int maxnames; bool active; @@ -1461,8 +1461,8 @@ virNetworkObjListGetHelper(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 ((data->active && virNetworkObjIsActive(obj)) || @@ -1486,13 +1486,13 @@ virNetworkObjListGetNames(virNetworkObjListPtr nets, bool active, char **names, int maxnames, - virNetworkObjListFilter filter, + virNetworkObjListACLFilter aclfilter, virConnectPtr conn) { int ret =3D -1; =20 struct virNetworkObjListGetHelperData data =3D { - conn, filter, names, maxnames, active, 0, false}; + conn, aclfilter, names, maxnames, active, 0, false}; =20 virObjectLock(nets); virHashForEach(nets->objs, virNetworkObjListGetHelper, &data); @@ -1514,11 +1514,11 @@ 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, aclfilter, NULL, -1, active, 0, false}; =20 virObjectLock(nets); virHashForEach(nets->objs, virNetworkObjListGetHelper, &data); diff --git a/src/conf/virnetworkobj.h b/src/conf/virnetworkobj.h index f7ed387..d7199fd 100644 --- a/src/conf/virnetworkobj.h +++ b/src/conf/virnetworkobj.h @@ -153,8 +153,8 @@ virNetworkObjTaint(virNetworkObjPtr obj, virNetworkTaintFlags taint); =20 typedef bool -(*virNetworkObjListFilter)(virConnectPtr conn, - virNetworkDefPtr def); +(*virNetworkObjListACLFilter)(virConnectPtr conn, + virNetworkDefPtr def); =20 virNetworkObjPtr virNetworkObjAssignDef(virNetworkObjListPtr nets, @@ -219,7 +219,7 @@ int virNetworkObjListExport(virConnectPtr conn, virNetworkObjListPtr netobjs, virNetworkPtr **nets, - virNetworkObjListFilter filter, + virNetworkObjListACLFilter aclfilter, unsigned int flags); =20 typedef int @@ -236,13 +236,13 @@ virNetworkObjListGetNames(virNetworkObjListPtr nets, bool active, char **names, int maxnames, - virNetworkObjListFilter filter, + virNetworkObjListACLFilter aclfilter, virConnectPtr conn); =20 int virNetworkObjListNumOfNetworks(virNetworkObjListPtr nets, bool active, - virNetworkObjListFilter filter, + virNetworkObjListACLFilter aclfilter, virConnectPtr conn); =20 void --=20 2.9.4 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat May 4 17:15:07 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.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 1501081694165547.7374127908006; Wed, 26 Jul 2017 08:08:14 -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 166D8C0B7703; Wed, 26 Jul 2017 15:08:08 +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 D96035D96D; Wed, 26 Jul 2017 15:08: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 3ADB1180597B; Wed, 26 Jul 2017 15:08:07 +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 v6QF85hI029054 for ; Wed, 26 Jul 2017 11:08:05 -0400 Received: by smtp.corp.redhat.com (Postfix) id A4D9E69524; Wed, 26 Jul 2017 15:08:05 +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 69DF66929A for ; Wed, 26 Jul 2017 15:07:56 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 166D8C0B7703 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=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: John Ferlan To: libvir-list@redhat.com Date: Wed, 26 Jul 2017 11:05:36 -0400 Message-Id: <20170726150537.4619-20-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 19/20] 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.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Wed, 26 Jul 2017 15:08:09 +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 than going back to find the struct fields to make sure the order of the data is correct. Signed-off-by: John Ferlan --- src/conf/virnetworkobj.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c index 2be48dd..aab737b 100644 --- a/src/conf/virnetworkobj.c +++ b/src/conf/virnetworkobj.c @@ -1360,7 +1360,9 @@ virNetworkObjListExport(virConnectPtr conn, unsigned int flags) { int ret =3D -1; - struct virNetworkObjListData data =3D { conn, NULL, aclfilter, 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) @@ -1426,7 +1428,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); @@ -1492,7 +1495,8 @@ virNetworkObjListGetNames(virNetworkObjListPtr nets, int ret =3D -1; =20 struct virNetworkObjListGetHelperData data =3D { - conn, aclfilter, names, maxnames, 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); @@ -1518,7 +1522,8 @@ virNetworkObjListNumOfNetworks(virNetworkObjListPtr n= ets, virConnectPtr conn) { struct virNetworkObjListGetHelperData data =3D { - conn, aclfilter, 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); --=20 2.9.4 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat May 4 17:15:07 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.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 150108178222534.8149335222937; Wed, 26 Jul 2017 08:09:42 -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 18918DF04; Wed, 26 Jul 2017 15:09:32 +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 CFE1062678; Wed, 26 Jul 2017 15:09:31 +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 4E9A614B2F; Wed, 26 Jul 2017 15:08:18 +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 v6QF8GZx029219 for ; Wed, 26 Jul 2017 11:08:16 -0400 Received: by smtp.corp.redhat.com (Postfix) id 8EFEB692AF; Wed, 26 Jul 2017 15:08:16 +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 4B0EC692AB for ; Wed, 26 Jul 2017 15:08:05 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 18918DF04 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=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: John Ferlan To: libvir-list@redhat.com Date: Wed, 26 Jul 2017 11:05:37 -0400 Message-Id: <20170726150537.4619-21-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 20/20] 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.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Wed, 26 Jul 2017 15:09:33 +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 aab737b..b44f604 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 d7199fd..857228a 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(void); --=20 2.9.4 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list