From nobody Sat May 4 17:50:47 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.25 as permitted sender) client-ip=209.132.183.25; envelope-from=libvir-list-bounces@redhat.com; helo=mx4-phx2.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.25 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx4-phx2.redhat.com (mx4-phx2.redhat.com [209.132.183.25]) by mx.zohomail.com with SMTPS id 1488818377654593.9468973154602; Mon, 6 Mar 2017 08:39:37 -0800 (PST) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by mx4-phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v26GaYXg024111; Mon, 6 Mar 2017 11:36:34 -0500 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v26GaHjX019661 for ; Mon, 6 Mar 2017 11:36:17 -0500 Received: from localhost.localdomain.com (ovpn-117-9.phx2.redhat.com [10.3.117.9]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id v26GaGoR010285 for ; Mon, 6 Mar 2017 11:36:16 -0500 From: John Ferlan To: libvir-list@redhat.com Date: Mon, 6 Mar 2017 11:36:07 -0500 Message-Id: <20170306163612.6514-2-jferlan@redhat.com> In-Reply-To: <20170306163612.6514-1-jferlan@redhat.com> References: <20170306163612.6514-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 1/6] conf: Change virNWFilterObjSaveDef to virNWFilterSaveDef 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-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" There's no need to pass the driver pointer to nwfilter_conf, just pass the configDir. Signed-off-by: John Ferlan --- src/conf/nwfilter_conf.c | 12 +++++------- src/conf/nwfilter_conf.h | 4 ++-- src/libvirt_private.syms | 2 +- src/nwfilter/nwfilter_driver.c | 2 +- 4 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/conf/nwfilter_conf.c b/src/conf/nwfilter_conf.c index 2cdcfa7..855fec7 100644 --- a/src/conf/nwfilter_conf.c +++ b/src/conf/nwfilter_conf.c @@ -3226,25 +3226,23 @@ virNWFilterLoadAllConfigs(virNWFilterObjListPtr nwf= ilters, =20 =20 int -virNWFilterObjSaveDef(virNWFilterDriverStatePtr driver, - virNWFilterDefPtr def) +virNWFilterSaveDef(const char *configDir, + virNWFilterDefPtr def) { char uuidstr[VIR_UUID_STRING_BUFLEN]; char *xml; int ret =3D -1; char *configFile =3D NULL; =20 - if (virFileMakePath(driver->configDir) < 0) { + if (virFileMakePath(configDir) < 0) { virReportSystemError(errno, _("cannot create config directory %s"), - driver->configDir); + configDir); goto error; } =20 - if (!(configFile =3D virFileBuildPath(driver->configDir, - def->name, ".xml"))) { + if (!(configFile =3D virFileBuildPath(configDir, def->name, ".xml"))) goto error; - } =20 if (!(xml =3D virNWFilterDefFormat(def))) { virReportError(VIR_ERR_INTERNAL_ERROR, diff --git a/src/conf/nwfilter_conf.h b/src/conf/nwfilter_conf.h index ea3cd5c..2211c2a 100644 --- a/src/conf/nwfilter_conf.h +++ b/src/conf/nwfilter_conf.h @@ -611,8 +611,8 @@ virNWFilterObjPtr virNWFilterObjFindByName(virNWFilterO= bjListPtr nwfilters, const char *name); =20 =20 -int virNWFilterObjSaveDef(virNWFilterDriverStatePtr driver, - virNWFilterDefPtr def); +int virNWFilterSaveDef(const char *configDir, + virNWFilterDefPtr def); =20 int virNWFilterObjDeleteDef(const char *configDir, virNWFilterObjPtr nwfilter); diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index b550507..cfc0cbc 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -753,7 +753,6 @@ virNWFilterObjFindByUUID; virNWFilterObjListFree; virNWFilterObjLock; virNWFilterObjRemove; -virNWFilterObjSaveDef; virNWFilterObjUnlock; virNWFilterPrintStateMatchFlags; virNWFilterPrintTCPFlags; @@ -765,6 +764,7 @@ virNWFilterRuleIsProtocolEthernet; virNWFilterRuleIsProtocolIPv4; virNWFilterRuleIsProtocolIPv6; virNWFilterRuleProtocolTypeToString; +virNWFilterSaveDef; virNWFilterTestUnassignDef; virNWFilterUnlockFilterUpdates; virNWFilterUnRegisterCallbackDriver; diff --git a/src/nwfilter/nwfilter_driver.c b/src/nwfilter/nwfilter_driver.c index 186830c..fe5fa54 100644 --- a/src/nwfilter/nwfilter_driver.c +++ b/src/nwfilter/nwfilter_driver.c @@ -555,7 +555,7 @@ nwfilterDefineXML(virConnectPtr conn, if (!(nwfilter =3D virNWFilterObjAssignDef(&driver->nwfilters, def))) goto cleanup; =20 - if (virNWFilterObjSaveDef(driver, def) < 0) { + if (virNWFilterSaveDef(driver->configDir, def) < 0) { virNWFilterObjRemove(&driver->nwfilters, nwfilter); def =3D NULL; goto cleanup; --=20 2.9.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat May 4 17:50:47 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.37 as permitted sender) client-ip=209.132.183.37; envelope-from=libvir-list-bounces@redhat.com; helo=mx5-phx2.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.37 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx5-phx2.redhat.com (mx5-phx2.redhat.com [209.132.183.37]) by mx.zohomail.com with SMTPS id 1488818381133209.12940041402067; Mon, 6 Mar 2017 08:39:41 -0800 (PST) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by mx5-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id v26GaJrI023307; Mon, 6 Mar 2017 11:36:19 -0500 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v26GaHsq019669 for ; Mon, 6 Mar 2017 11:36:17 -0500 Received: from localhost.localdomain.com (ovpn-117-9.phx2.redhat.com [10.3.117.9]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id v26GaGoS010285 for ; Mon, 6 Mar 2017 11:36:17 -0500 From: John Ferlan To: libvir-list@redhat.com Date: Mon, 6 Mar 2017 11:36:08 -0500 Message-Id: <20170306163612.6514-3-jferlan@redhat.com> In-Reply-To: <20170306163612.6514-1-jferlan@redhat.com> References: <20170306163612.6514-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 2/6] conf: Change virNWFilterObjDeleteDef to virNWFilterDeleteDef 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-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Rather than pass the nwfilter object, just pass the def to the function Signed-off-by: John Ferlan --- src/conf/nwfilter_conf.c | 10 ++++------ src/conf/nwfilter_conf.h | 4 ++-- src/libvirt_private.syms | 2 +- src/nwfilter/nwfilter_driver.c | 2 +- 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/conf/nwfilter_conf.c b/src/conf/nwfilter_conf.c index 855fec7..f529081 100644 --- a/src/conf/nwfilter_conf.c +++ b/src/conf/nwfilter_conf.c @@ -3263,21 +3263,19 @@ virNWFilterSaveDef(const char *configDir, =20 =20 int -virNWFilterObjDeleteDef(const char *configDir, - virNWFilterObjPtr nwfilter) +virNWFilterDeleteDef(const char *configDir, + virNWFilterDefPtr def) { int ret =3D -1; char *configFile =3D NULL; =20 - if (!(configFile =3D virFileBuildPath(configDir, - nwfilter->def->name, ".xml"))) { + if (!(configFile =3D virFileBuildPath(configDir, def->name, ".xml"))) goto error; - } =20 if (unlink(configFile) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("cannot remove config for %s"), - nwfilter->def->name); + def->name); goto error; } =20 diff --git a/src/conf/nwfilter_conf.h b/src/conf/nwfilter_conf.h index 2211c2a..d87da0c 100644 --- a/src/conf/nwfilter_conf.h +++ b/src/conf/nwfilter_conf.h @@ -614,8 +614,8 @@ virNWFilterObjPtr virNWFilterObjFindByName(virNWFilterO= bjListPtr nwfilters, int virNWFilterSaveDef(const char *configDir, virNWFilterDefPtr def); =20 -int virNWFilterObjDeleteDef(const char *configDir, - virNWFilterObjPtr nwfilter); +int virNWFilterDeleteDef(const char *configDir, + virNWFilterDefPtr def); =20 virNWFilterObjPtr virNWFilterObjAssignDef(virNWFilterObjListPtr nwfilters, virNWFilterDefPtr def); diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index cfc0cbc..80fe9d8 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -743,11 +743,11 @@ virNWFilterDefFormat; virNWFilterDefFree; virNWFilterDefParseFile; virNWFilterDefParseString; +virNWFilterDeleteDef; virNWFilterInstFiltersOnAllVMs; virNWFilterJumpTargetTypeToString; virNWFilterLoadAllConfigs; virNWFilterObjAssignDef; -virNWFilterObjDeleteDef; virNWFilterObjFindByName; virNWFilterObjFindByUUID; virNWFilterObjListFree; diff --git a/src/nwfilter/nwfilter_driver.c b/src/nwfilter/nwfilter_driver.c index fe5fa54..5e4f076 100644 --- a/src/nwfilter/nwfilter_driver.c +++ b/src/nwfilter/nwfilter_driver.c @@ -603,7 +603,7 @@ nwfilterUndefine(virNWFilterPtr obj) goto cleanup; } =20 - if (virNWFilterObjDeleteDef(driver->configDir, nwfilter) < 0) + if (virNWFilterDeleteDef(driver->configDir, nwfilter->def) < 0) goto cleanup; =20 virNWFilterObjRemove(&driver->nwfilters, nwfilter); --=20 2.9.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat May 4 17:50:47 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.39 as permitted sender) client-ip=209.132.183.39; envelope-from=libvir-list-bounces@redhat.com; helo=mx6-phx2.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.39 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx6-phx2.redhat.com (mx6-phx2.redhat.com [209.132.183.39]) by mx.zohomail.com with SMTPS id 1488818405896140.41653680708168; Mon, 6 Mar 2017 08:40:05 -0800 (PST) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by mx6-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id v26GaY9G029789; Mon, 6 Mar 2017 11:36:34 -0500 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v26GaIO2019681 for ; Mon, 6 Mar 2017 11:36:18 -0500 Received: from localhost.localdomain.com (ovpn-117-9.phx2.redhat.com [10.3.117.9]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id v26GaGoT010285 for ; Mon, 6 Mar 2017 11:36:17 -0500 From: John Ferlan To: libvir-list@redhat.com Date: Mon, 6 Mar 2017 11:36:09 -0500 Message-Id: <20170306163612.6514-4-jferlan@redhat.com> In-Reply-To: <20170306163612.6514-1-jferlan@redhat.com> References: <20170306163612.6514-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 3/6] conf: Introduce virnwfilterobj 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-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Move all the NWFilterObj API's into their own module virnwfilterobj from the nwfilter_conf Purely code motion at this point, plus adjustments to cleanly build. Signed-off-by: John Ferlan --- po/POTFILES.in | 1 + src/Makefile.am | 6 +- src/conf/nwfilter_conf.c | 348 +----------------------------- src/conf/nwfilter_conf.h | 58 +---- src/conf/virnwfilterobj.c | 382 +++++++++++++++++++++++++++++= ++++ src/conf/virnwfilterobj.h | 85 ++++++++ src/libvirt_private.syms | 22 +- src/nwfilter/nwfilter_driver.c | 1 - src/nwfilter/nwfilter_gentech_driver.h | 2 +- src/nwfilter/nwfilter_tech_driver.h | 2 +- 10 files changed, 489 insertions(+), 418 deletions(-) create mode 100644 src/conf/virnwfilterobj.c create mode 100644 src/conf/virnwfilterobj.h diff --git a/po/POTFILES.in b/po/POTFILES.in index 50289a5..ceda3ed 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -44,6 +44,7 @@ src/conf/virchrdev.c src/conf/virdomainobjlist.c src/conf/virinterfaceobj.c src/conf/virnodedeviceobj.c +src/conf/virnwfilterobj.c src/conf/virsecretobj.c src/cpu/cpu.c src/cpu/cpu_arm.c diff --git a/src/Makefile.am b/src/Makefile.am index c85927f..f2c35b1 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -369,11 +369,13 @@ NWFILTER_PARAM_CONF_SOURCES =3D \ conf/nwfilter_params.c conf/nwfilter_params.h \ conf/nwfilter_ipaddrmap.c \ conf/nwfilter_ipaddrmap.h \ - conf/nwfilter_conf.h + conf/nwfilter_conf.h \ + conf/virnwfilterobj.h =20 NWFILTER_CONF_SOURCES =3D \ $(NWFILTER_PARAM_CONF_SOURCES) \ - conf/nwfilter_conf.c conf/nwfilter_conf.h + conf/nwfilter_conf.c conf/nwfilter_conf.h \ + conf/virnwfilterobj.c conf/virnwfilterobj.h =20 # Storage driver generic impl APIs STORAGE_CONF_SOURCES =3D \ diff --git a/src/conf/nwfilter_conf.c b/src/conf/nwfilter_conf.c index f529081..c4e8ec1 100644 --- a/src/conf/nwfilter_conf.c +++ b/src/conf/nwfilter_conf.c @@ -30,7 +30,6 @@ #include #include #include -#include #if HAVE_NET_ETHERNET_H # include #endif @@ -344,32 +343,6 @@ virNWFilterDefFree(virNWFilterDefPtr def) } =20 =20 -void -virNWFilterObjFree(virNWFilterObjPtr obj) -{ - if (!obj) - return; - - virNWFilterDefFree(obj->def); - virNWFilterDefFree(obj->newDef); - - virMutexDestroy(&obj->lock); - - VIR_FREE(obj); -} - - -void -virNWFilterObjListFree(virNWFilterObjListPtr nwfilters) -{ - size_t i; - for (i =3D 0; i < nwfilters->count; i++) - virNWFilterObjFree(nwfilters->objs[i]); - VIR_FREE(nwfilters->objs); - nwfilters->count =3D 0; -} - - static int virNWFilterRuleDefAddVar(virNWFilterRuleDefPtr nwf, nwItemDesc *item, @@ -418,27 +391,6 @@ virNWFilterRuleDefAddString(virNWFilterRuleDefPtr nwf, } =20 =20 -void -virNWFilterObjRemove(virNWFilterObjListPtr nwfilters, - virNWFilterObjPtr nwfilter) -{ - size_t i; - - virNWFilterObjUnlock(nwfilter); - - for (i =3D 0; i < nwfilters->count; i++) { - virNWFilterObjLock(nwfilters->objs[i]); - if (nwfilters->objs[i] =3D=3D nwfilter) { - virNWFilterObjUnlock(nwfilters->objs[i]); - virNWFilterObjFree(nwfilters->objs[i]); - - VIR_DELETE_ELEMENT(nwfilters->objs, i, nwfilters->count); - break; - } - virNWFilterObjUnlock(nwfilters->objs[i]); - } -} - union data { void *v; char *c; @@ -2779,39 +2731,6 @@ virNWFilterDefParseFile(const char *filename) } =20 =20 -virNWFilterObjPtr -virNWFilterObjFindByUUID(virNWFilterObjListPtr nwfilters, - const unsigned char *uuid) -{ - size_t i; - - for (i =3D 0; i < nwfilters->count; i++) { - virNWFilterObjLock(nwfilters->objs[i]); - if (!memcmp(nwfilters->objs[i]->def->uuid, uuid, VIR_UUID_BUFLEN)) - return nwfilters->objs[i]; - virNWFilterObjUnlock(nwfilters->objs[i]); - } - - return NULL; -} - - -virNWFilterObjPtr -virNWFilterObjFindByName(virNWFilterObjListPtr nwfilters, const char *name) -{ - size_t i; - - for (i =3D 0; i < nwfilters->count; i++) { - virNWFilterObjLock(nwfilters->objs[i]); - if (STREQ_NULLABLE(nwfilters->objs[i]->def->name, name)) - return nwfilters->objs[i]; - virNWFilterObjUnlock(nwfilters->objs[i]); - } - - return NULL; -} - - int virNWFilterSaveXML(const char *configDir, virNWFilterDefPtr def, const char *xml) @@ -2860,62 +2779,6 @@ int virNWFilterSaveConfig(const char *configDir, } =20 =20 -static int -_virNWFilterDefLoopDetect(virNWFilterObjListPtr nwfilters, - virNWFilterDefPtr def, - const char *filtername) -{ - int rc =3D 0; - size_t i; - virNWFilterEntryPtr entry; - virNWFilterObjPtr obj; - - if (!def) - return 0; - - for (i =3D 0; i < def->nentries; i++) { - entry =3D def->filterEntries[i]; - if (entry->include) { - - if (STREQ(filtername, entry->include->filterref)) { - rc =3D -1; - break; - } - - obj =3D virNWFilterObjFindByName(nwfilters, - entry->include->filterref); - if (obj) { - rc =3D _virNWFilterDefLoopDetect(nwfilters, - obj->def, filtername); - - virNWFilterObjUnlock(obj); - if (rc < 0) - break; - } - } - } - - return rc; -} - - -/* - * virNWFilterDefLoopDetect: - * @nwfilters : the nwfilters to search - * @def : the filter definition that may add a loop and is to be tested - * - * Detect a loop introduced through the filters being able to - * reference each other. - * - * Returns 0 in case no loop was detected, -1 otherwise. - */ -static int -virNWFilterDefLoopDetect(virNWFilterObjListPtr nwfilters, - virNWFilterDefPtr def) -{ - return _virNWFilterDefLoopDetect(nwfilters, def, def->name); -} - int nCallbackDriver; #define MAX_CALLBACK_DRIVER 10 static virNWFilterCallbackDriverPtr callbackDrvArray[MAX_CALLBACK_DRIVER]; @@ -2987,7 +2850,7 @@ virNWFilterInstFiltersOnAllVMs(void) return 0; } =20 -static int +int virNWFilterTriggerVMFilterRebuild(void) { size_t i; @@ -3028,204 +2891,6 @@ virNWFilterTriggerVMFilterRebuild(void) =20 =20 int -virNWFilterTestUnassignDef(virNWFilterObjPtr nwfilter) -{ - int rc =3D 0; - - nwfilter->wantRemoved =3D 1; - /* trigger the update on VMs referencing the filter */ - if (virNWFilterTriggerVMFilterRebuild()) - rc =3D -1; - - nwfilter->wantRemoved =3D 0; - - return rc; -} - -static bool -virNWFilterDefEqual(const virNWFilterDef *def1, virNWFilterDefPtr def2, - bool cmpUUIDs) -{ - bool ret =3D false; - unsigned char rem_uuid[VIR_UUID_BUFLEN]; - char *xml1, *xml2 =3D NULL; - - if (!cmpUUIDs) { - /* make sure the UUIDs are equal */ - memcpy(rem_uuid, def2->uuid, sizeof(rem_uuid)); - memcpy(def2->uuid, def1->uuid, sizeof(def2->uuid)); - } - - if (!(xml1 =3D virNWFilterDefFormat(def1)) || - !(xml2 =3D virNWFilterDefFormat(def2))) - goto cleanup; - - ret =3D STREQ(xml1, xml2); - - cleanup: - if (!cmpUUIDs) - memcpy(def2->uuid, rem_uuid, sizeof(rem_uuid)); - - VIR_FREE(xml1); - VIR_FREE(xml2); - - return ret; -} - -virNWFilterObjPtr -virNWFilterObjAssignDef(virNWFilterObjListPtr nwfilters, - virNWFilterDefPtr def) -{ - virNWFilterObjPtr nwfilter; - - nwfilter =3D virNWFilterObjFindByUUID(nwfilters, def->uuid); - - if (nwfilter) { - if (STRNEQ(def->name, nwfilter->def->name)) { - virReportError(VIR_ERR_OPERATION_FAILED, - _("filter with same UUID but different name " - "('%s') already exists"), - nwfilter->def->name); - virNWFilterObjUnlock(nwfilter); - return NULL; - } - virNWFilterObjUnlock(nwfilter); - } else { - nwfilter =3D virNWFilterObjFindByName(nwfilters, def->name); - if (nwfilter) { - char uuidstr[VIR_UUID_STRING_BUFLEN]; - virUUIDFormat(nwfilter->def->uuid, uuidstr); - virReportError(VIR_ERR_OPERATION_FAILED, - _("filter '%s' already exists with uuid %s"), - def->name, uuidstr); - virNWFilterObjUnlock(nwfilter); - return NULL; - } - } - - if (virNWFilterDefLoopDetect(nwfilters, def) < 0) { - virReportError(VIR_ERR_OPERATION_FAILED, - "%s", _("filter would introduce a loop")); - return NULL; - } - - - if ((nwfilter =3D virNWFilterObjFindByName(nwfilters, def->name))) { - - if (virNWFilterDefEqual(def, nwfilter->def, false)) { - virNWFilterDefFree(nwfilter->def); - nwfilter->def =3D def; - return nwfilter; - } - - nwfilter->newDef =3D def; - /* trigger the update on VMs referencing the filter */ - if (virNWFilterTriggerVMFilterRebuild()) { - nwfilter->newDef =3D NULL; - virNWFilterObjUnlock(nwfilter); - return NULL; - } - - virNWFilterDefFree(nwfilter->def); - nwfilter->def =3D def; - nwfilter->newDef =3D NULL; - return nwfilter; - } - - if (VIR_ALLOC(nwfilter) < 0) - return NULL; - - if (virMutexInitRecursive(&nwfilter->lock) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, - "%s", _("cannot initialize mutex")); - VIR_FREE(nwfilter); - return NULL; - } - virNWFilterObjLock(nwfilter); - nwfilter->active =3D 0; - - if (VIR_APPEND_ELEMENT_COPY(nwfilters->objs, - nwfilters->count, nwfilter) < 0) { - virNWFilterObjUnlock(nwfilter); - virNWFilterObjFree(nwfilter); - return NULL; - } - nwfilter->def =3D def; - - return nwfilter; -} - - -static virNWFilterObjPtr -virNWFilterLoadConfig(virNWFilterObjListPtr nwfilters, - const char *configDir, - const char *name) -{ - virNWFilterDefPtr def =3D NULL; - virNWFilterObjPtr nwfilter; - char *configFile =3D NULL; - - if (!(configFile =3D virFileBuildPath(configDir, name, ".xml"))) - goto error; - - if (!(def =3D virNWFilterDefParseFile(configFile))) - goto error; - - if (STRNEQ(name, def->name)) { - virReportError(VIR_ERR_XML_ERROR, - _("network filter config filename '%s' " - "does not match name '%s'"), - configFile, def->name); - goto error; - } - - /* We generated a UUID, make it permanent by saving the config to disk= */ - if (!def->uuid_specified && - virNWFilterSaveConfig(configDir, def) < 0) - goto error; - - if (!(nwfilter =3D virNWFilterObjAssignDef(nwfilters, def))) - goto error; - - VIR_FREE(configFile); - return nwfilter; - - error: - VIR_FREE(configFile); - virNWFilterDefFree(def); - return NULL; -} - - -int -virNWFilterLoadAllConfigs(virNWFilterObjListPtr nwfilters, - const char *configDir) -{ - DIR *dir; - struct dirent *entry; - int ret =3D -1; - int rc; - - if ((rc =3D virDirOpenIfExists(&dir, configDir)) <=3D 0) - return rc; - - while ((ret =3D virDirRead(dir, &entry, configDir)) > 0) { - virNWFilterObjPtr nwfilter; - - if (!virFileStripSuffix(entry->d_name, ".xml")) - continue; - - nwfilter =3D virNWFilterLoadConfig(nwfilters, configDir, entry->d_= name); - if (nwfilter) - virNWFilterObjUnlock(nwfilter); - } - - VIR_DIR_CLOSE(dir); - return ret; -} - - -int virNWFilterSaveDef(const char *configDir, virNWFilterDefPtr def) { @@ -3568,17 +3233,6 @@ void virNWFilterConfLayerShutdown(void) } =20 =20 -void virNWFilterObjLock(virNWFilterObjPtr obj) -{ - virMutexLock(&obj->lock); -} - -void virNWFilterObjUnlock(virNWFilterObjPtr obj) -{ - virMutexUnlock(&obj->lock); -} - - bool virNWFilterRuleIsProtocolIPv4(virNWFilterRuleDefPtr rule) { if (rule->prtclType >=3D VIR_NWFILTER_RULE_PROTOCOL_TCP && diff --git a/src/conf/nwfilter_conf.h b/src/conf/nwfilter_conf.h index d87da0c..96c330d 100644 --- a/src/conf/nwfilter_conf.h +++ b/src/conf/nwfilter_conf.h @@ -546,41 +546,6 @@ struct _virNWFilterDef { }; =20 =20 -typedef struct _virNWFilterObj virNWFilterObj; -typedef virNWFilterObj *virNWFilterObjPtr; - -struct _virNWFilterObj { - virMutex lock; - - int active; - int wantRemoved; - - virNWFilterDefPtr def; - virNWFilterDefPtr newDef; -}; - - -typedef struct _virNWFilterObjList virNWFilterObjList; -typedef virNWFilterObjList *virNWFilterObjListPtr; -struct _virNWFilterObjList { - size_t count; - virNWFilterObjPtr *objs; -}; - - -typedef struct _virNWFilterDriverState virNWFilterDriverState; -typedef virNWFilterDriverState *virNWFilterDriverStatePtr; -struct _virNWFilterDriverState { - virMutex lock; - bool privileged; - - virNWFilterObjList nwfilters; - - char *configDir; - bool watchingFirewallD; -}; - - typedef enum { STEP_APPLY_NEW, STEP_TEAR_NEW, @@ -598,18 +563,8 @@ struct domUpdateCBStruct { void virNWFilterRuleDefFree(virNWFilterRuleDefPtr def); =20 void virNWFilterDefFree(virNWFilterDefPtr def); -void virNWFilterObjListFree(virNWFilterObjListPtr nwfilters); -void virNWFilterObjRemove(virNWFilterObjListPtr nwfilters, - virNWFilterObjPtr nwfilter); - -void virNWFilterObjFree(virNWFilterObjPtr obj); - -virNWFilterObjPtr virNWFilterObjFindByUUID(virNWFilterObjListPtr nwfilters, - const unsigned char *uuid); - -virNWFilterObjPtr virNWFilterObjFindByName(virNWFilterObjListPtr nwfilters, - const char *name); =20 +int virNWFilterTriggerVMFilterRebuild(void); =20 int virNWFilterSaveDef(const char *configDir, virNWFilterDefPtr def); @@ -617,11 +572,6 @@ int virNWFilterSaveDef(const char *configDir, int virNWFilterDeleteDef(const char *configDir, virNWFilterDefPtr def); =20 -virNWFilterObjPtr virNWFilterObjAssignDef(virNWFilterObjListPtr nwfilters, - virNWFilterDefPtr def); - -int virNWFilterTestUnassignDef(virNWFilterObjPtr nwfilter); - virNWFilterDefPtr virNWFilterDefParseNode(xmlDocPtr xml, xmlNodePtr root); =20 @@ -634,18 +584,12 @@ int virNWFilterSaveXML(const char *configDir, int virNWFilterSaveConfig(const char *configDir, virNWFilterDefPtr def); =20 -int virNWFilterLoadAllConfigs(virNWFilterObjListPtr nwfilters, - const char *configDir); - char *virNWFilterConfigFile(const char *dir, const char *name); =20 virNWFilterDefPtr virNWFilterDefParseString(const char *xml); virNWFilterDefPtr virNWFilterDefParseFile(const char *filename); =20 -void virNWFilterObjLock(virNWFilterObjPtr obj); -void virNWFilterObjUnlock(virNWFilterObjPtr obj); - void virNWFilterWriteLockFilterUpdates(void); void virNWFilterReadLockFilterUpdates(void); void virNWFilterUnlockFilterUpdates(void); diff --git a/src/conf/virnwfilterobj.c b/src/conf/virnwfilterobj.c new file mode 100644 index 0000000..869365c --- /dev/null +++ b/src/conf/virnwfilterobj.c @@ -0,0 +1,382 @@ +/* + * virnwfilterobj.c: network filter object processing + * (derived from nwfilter_conf.c) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +#include +#include + +#include "datatypes.h" + +#include "viralloc.h" +#include "virerror.h" +#include "virfile.h" +#include "virlog.h" +#include "virnwfilterobj.h" +#include "virstring.h" + +#define VIR_FROM_THIS VIR_FROM_NWFILTER + +VIR_LOG_INIT("conf.virnwfilterobj"); + + +void +virNWFilterObjFree(virNWFilterObjPtr obj) +{ + if (!obj) + return; + + virNWFilterDefFree(obj->def); + virNWFilterDefFree(obj->newDef); + + virMutexDestroy(&obj->lock); + + VIR_FREE(obj); +} + + +void +virNWFilterObjListFree(virNWFilterObjListPtr nwfilters) +{ + size_t i; + for (i =3D 0; i < nwfilters->count; i++) + virNWFilterObjFree(nwfilters->objs[i]); + VIR_FREE(nwfilters->objs); + nwfilters->count =3D 0; +} + + +void +virNWFilterObjRemove(virNWFilterObjListPtr nwfilters, + virNWFilterObjPtr nwfilter) +{ + size_t i; + + virNWFilterObjUnlock(nwfilter); + + for (i =3D 0; i < nwfilters->count; i++) { + virNWFilterObjLock(nwfilters->objs[i]); + if (nwfilters->objs[i] =3D=3D nwfilter) { + virNWFilterObjUnlock(nwfilters->objs[i]); + virNWFilterObjFree(nwfilters->objs[i]); + + VIR_DELETE_ELEMENT(nwfilters->objs, i, nwfilters->count); + break; + } + virNWFilterObjUnlock(nwfilters->objs[i]); + } +} + + +virNWFilterObjPtr +virNWFilterObjFindByUUID(virNWFilterObjListPtr nwfilters, + const unsigned char *uuid) +{ + size_t i; + + for (i =3D 0; i < nwfilters->count; i++) { + virNWFilterObjLock(nwfilters->objs[i]); + if (!memcmp(nwfilters->objs[i]->def->uuid, uuid, VIR_UUID_BUFLEN)) + return nwfilters->objs[i]; + virNWFilterObjUnlock(nwfilters->objs[i]); + } + + return NULL; +} + + +virNWFilterObjPtr +virNWFilterObjFindByName(virNWFilterObjListPtr nwfilters, const char *name) +{ + size_t i; + + for (i =3D 0; i < nwfilters->count; i++) { + virNWFilterObjLock(nwfilters->objs[i]); + if (STREQ_NULLABLE(nwfilters->objs[i]->def->name, name)) + return nwfilters->objs[i]; + virNWFilterObjUnlock(nwfilters->objs[i]); + } + + return NULL; +} + + +static int +_virNWFilterDefLoopDetect(virNWFilterObjListPtr nwfilters, + virNWFilterDefPtr def, + const char *filtername) +{ + int rc =3D 0; + size_t i; + virNWFilterEntryPtr entry; + virNWFilterObjPtr obj; + + if (!def) + return 0; + + for (i =3D 0; i < def->nentries; i++) { + entry =3D def->filterEntries[i]; + if (entry->include) { + + if (STREQ(filtername, entry->include->filterref)) { + rc =3D -1; + break; + } + + obj =3D virNWFilterObjFindByName(nwfilters, + entry->include->filterref); + if (obj) { + rc =3D _virNWFilterDefLoopDetect(nwfilters, + obj->def, filtername); + + virNWFilterObjUnlock(obj); + if (rc < 0) + break; + } + } + } + + return rc; +} + + +/* + * virNWFilterDefLoopDetect: + * @nwfilters : the nwfilters to search + * @def : the filter definition that may add a loop and is to be tested + * + * Detect a loop introduced through the filters being able to + * reference each other. + * + * Returns 0 in case no loop was detected, -1 otherwise. + */ +static int +virNWFilterDefLoopDetect(virNWFilterObjListPtr nwfilters, + virNWFilterDefPtr def) +{ + return _virNWFilterDefLoopDetect(nwfilters, def, def->name); +} + + +int +virNWFilterTestUnassignDef(virNWFilterObjPtr nwfilter) +{ + int rc =3D 0; + + nwfilter->wantRemoved =3D 1; + /* trigger the update on VMs referencing the filter */ + if (virNWFilterTriggerVMFilterRebuild()) + rc =3D -1; + + nwfilter->wantRemoved =3D 0; + + return rc; +} + +static bool +virNWFilterDefEqual(const virNWFilterDef *def1, virNWFilterDefPtr def2, + bool cmpUUIDs) +{ + bool ret =3D false; + unsigned char rem_uuid[VIR_UUID_BUFLEN]; + char *xml1, *xml2 =3D NULL; + + if (!cmpUUIDs) { + /* make sure the UUIDs are equal */ + memcpy(rem_uuid, def2->uuid, sizeof(rem_uuid)); + memcpy(def2->uuid, def1->uuid, sizeof(def2->uuid)); + } + + if (!(xml1 =3D virNWFilterDefFormat(def1)) || + !(xml2 =3D virNWFilterDefFormat(def2))) + goto cleanup; + + ret =3D STREQ(xml1, xml2); + + cleanup: + if (!cmpUUIDs) + memcpy(def2->uuid, rem_uuid, sizeof(rem_uuid)); + + VIR_FREE(xml1); + VIR_FREE(xml2); + + return ret; +} + +virNWFilterObjPtr +virNWFilterObjAssignDef(virNWFilterObjListPtr nwfilters, + virNWFilterDefPtr def) +{ + virNWFilterObjPtr nwfilter; + + nwfilter =3D virNWFilterObjFindByUUID(nwfilters, def->uuid); + + if (nwfilter) { + if (STRNEQ(def->name, nwfilter->def->name)) { + virReportError(VIR_ERR_OPERATION_FAILED, + _("filter with same UUID but different name " + "('%s') already exists"), + nwfilter->def->name); + virNWFilterObjUnlock(nwfilter); + return NULL; + } + virNWFilterObjUnlock(nwfilter); + } else { + nwfilter =3D virNWFilterObjFindByName(nwfilters, def->name); + if (nwfilter) { + char uuidstr[VIR_UUID_STRING_BUFLEN]; + virUUIDFormat(nwfilter->def->uuid, uuidstr); + virReportError(VIR_ERR_OPERATION_FAILED, + _("filter '%s' already exists with uuid %s"), + def->name, uuidstr); + virNWFilterObjUnlock(nwfilter); + return NULL; + } + } + + if (virNWFilterDefLoopDetect(nwfilters, def) < 0) { + virReportError(VIR_ERR_OPERATION_FAILED, + "%s", _("filter would introduce a loop")); + return NULL; + } + + + if ((nwfilter =3D virNWFilterObjFindByName(nwfilters, def->name))) { + + if (virNWFilterDefEqual(def, nwfilter->def, false)) { + virNWFilterDefFree(nwfilter->def); + nwfilter->def =3D def; + return nwfilter; + } + + nwfilter->newDef =3D def; + /* trigger the update on VMs referencing the filter */ + if (virNWFilterTriggerVMFilterRebuild()) { + nwfilter->newDef =3D NULL; + virNWFilterObjUnlock(nwfilter); + return NULL; + } + + virNWFilterDefFree(nwfilter->def); + nwfilter->def =3D def; + nwfilter->newDef =3D NULL; + return nwfilter; + } + + if (VIR_ALLOC(nwfilter) < 0) + return NULL; + + if (virMutexInitRecursive(&nwfilter->lock) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, + "%s", _("cannot initialize mutex")); + VIR_FREE(nwfilter); + return NULL; + } + virNWFilterObjLock(nwfilter); + nwfilter->active =3D 0; + + if (VIR_APPEND_ELEMENT_COPY(nwfilters->objs, + nwfilters->count, nwfilter) < 0) { + virNWFilterObjUnlock(nwfilter); + virNWFilterObjFree(nwfilter); + return NULL; + } + nwfilter->def =3D def; + + return nwfilter; +} + + +static virNWFilterObjPtr +virNWFilterLoadConfig(virNWFilterObjListPtr nwfilters, + const char *configDir, + const char *name) +{ + virNWFilterDefPtr def =3D NULL; + virNWFilterObjPtr nwfilter; + char *configFile =3D NULL; + + if (!(configFile =3D virFileBuildPath(configDir, name, ".xml"))) + goto error; + + if (!(def =3D virNWFilterDefParseFile(configFile))) + goto error; + + if (STRNEQ(name, def->name)) { + virReportError(VIR_ERR_XML_ERROR, + _("network filter config filename '%s' " + "does not match name '%s'"), + configFile, def->name); + goto error; + } + + /* We generated a UUID, make it permanent by saving the config to disk= */ + if (!def->uuid_specified && + virNWFilterSaveConfig(configDir, def) < 0) + goto error; + + if (!(nwfilter =3D virNWFilterObjAssignDef(nwfilters, def))) + goto error; + + VIR_FREE(configFile); + return nwfilter; + + error: + VIR_FREE(configFile); + virNWFilterDefFree(def); + return NULL; +} + + +int +virNWFilterLoadAllConfigs(virNWFilterObjListPtr nwfilters, + const char *configDir) +{ + DIR *dir; + struct dirent *entry; + int ret =3D -1; + int rc; + + if ((rc =3D virDirOpenIfExists(&dir, configDir)) <=3D 0) + return rc; + + while ((ret =3D virDirRead(dir, &entry, configDir)) > 0) { + virNWFilterObjPtr nwfilter; + + if (!virFileStripSuffix(entry->d_name, ".xml")) + continue; + + nwfilter =3D virNWFilterLoadConfig(nwfilters, configDir, entry->d_= name); + if (nwfilter) + virNWFilterObjUnlock(nwfilter); + } + + VIR_DIR_CLOSE(dir); + return ret; +} + + +void virNWFilterObjLock(virNWFilterObjPtr obj) +{ + virMutexLock(&obj->lock); +} + + +void virNWFilterObjUnlock(virNWFilterObjPtr obj) +{ + virMutexUnlock(&obj->lock); +} diff --git a/src/conf/virnwfilterobj.h b/src/conf/virnwfilterobj.h new file mode 100644 index 0000000..00b8d0a --- /dev/null +++ b/src/conf/virnwfilterobj.h @@ -0,0 +1,85 @@ +/* + * virnwfilterobj.h: network filter object processing + * (derived from nwfilter_conf.h) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ +#ifndef VIRNWFILTEROBJ_H +# define VIRNWFILTEROBJ_H + +# include "internal.h" + +# include "nwfilter_conf.h" + +typedef struct _virNWFilterObj virNWFilterObj; +typedef virNWFilterObj *virNWFilterObjPtr; + +struct _virNWFilterObj { + virMutex lock; + + int active; + int wantRemoved; + + virNWFilterDefPtr def; + virNWFilterDefPtr newDef; +}; + + +typedef struct _virNWFilterObjList virNWFilterObjList; +typedef virNWFilterObjList *virNWFilterObjListPtr; +struct _virNWFilterObjList { + size_t count; + virNWFilterObjPtr *objs; +}; + + +typedef struct _virNWFilterDriverState virNWFilterDriverState; +typedef virNWFilterDriverState *virNWFilterDriverStatePtr; +struct _virNWFilterDriverState { + virMutex lock; + bool privileged; + + virNWFilterObjList nwfilters; + + char *configDir; + bool watchingFirewallD; +}; + +void virNWFilterObjListFree(virNWFilterObjListPtr nwfilters); + +void virNWFilterObjRemove(virNWFilterObjListPtr nwfilters, + virNWFilterObjPtr nwfilter); + +void virNWFilterObjFree(virNWFilterObjPtr obj); + +virNWFilterObjPtr virNWFilterObjFindByUUID(virNWFilterObjListPtr nwfilters, + const unsigned char *uuid); + +virNWFilterObjPtr virNWFilterObjFindByName(virNWFilterObjListPtr nwfilters, + const char *name); + +virNWFilterObjPtr virNWFilterObjAssignDef(virNWFilterObjListPtr nwfilters, + virNWFilterDefPtr def); + +int virNWFilterTestUnassignDef(virNWFilterObjPtr nwfilter); + +int virNWFilterLoadAllConfigs(virNWFilterObjListPtr nwfilters, + const char *configDir); + +void virNWFilterObjLock(virNWFilterObjPtr obj); + +void virNWFilterObjUnlock(virNWFilterObjPtr obj); + +#endif /* VIRNWFILTEROBJ_H */ diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 80fe9d8..3c4b943 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -746,14 +746,6 @@ virNWFilterDefParseString; virNWFilterDeleteDef; virNWFilterInstFiltersOnAllVMs; virNWFilterJumpTargetTypeToString; -virNWFilterLoadAllConfigs; -virNWFilterObjAssignDef; -virNWFilterObjFindByName; -virNWFilterObjFindByUUID; -virNWFilterObjListFree; -virNWFilterObjLock; -virNWFilterObjRemove; -virNWFilterObjUnlock; virNWFilterPrintStateMatchFlags; virNWFilterPrintTCPFlags; virNWFilterReadLockFilterUpdates; @@ -765,7 +757,7 @@ virNWFilterRuleIsProtocolIPv4; virNWFilterRuleIsProtocolIPv6; virNWFilterRuleProtocolTypeToString; virNWFilterSaveDef; -virNWFilterTestUnassignDef; +virNWFilterTriggerVMFilterRebuild; virNWFilterUnlockFilterUpdates; virNWFilterUnRegisterCallbackDriver; virNWFilterWriteLockFilterUpdates; @@ -964,6 +956,18 @@ virNodeDeviceObjRemove; virNodeDeviceObjUnlock; =20 =20 +# conf/virnwfilterobj.h +virNWFilterLoadAllConfigs; +virNWFilterObjAssignDef; +virNWFilterObjFindByName; +virNWFilterObjFindByUUID; +virNWFilterObjListFree; +virNWFilterObjLock; +virNWFilterObjRemove; +virNWFilterObjUnlock; +virNWFilterTestUnassignDef; + + # conf/virsecretobj.h virSecretLoadAllConfigs; virSecretObjDeleteConfig; diff --git a/src/nwfilter/nwfilter_driver.c b/src/nwfilter/nwfilter_driver.c index 5e4f076..6ce2bfd 100644 --- a/src/nwfilter/nwfilter_driver.c +++ b/src/nwfilter/nwfilter_driver.c @@ -37,7 +37,6 @@ #include "viralloc.h" #include "domain_conf.h" #include "domain_nwfilter.h" -#include "nwfilter_conf.h" #include "nwfilter_driver.h" #include "nwfilter_gentech_driver.h" #include "configmake.h" diff --git a/src/nwfilter/nwfilter_gentech_driver.h b/src/nwfilter/nwfilter= _gentech_driver.h index 8349ab4..7192487 100644 --- a/src/nwfilter/nwfilter_gentech_driver.h +++ b/src/nwfilter/nwfilter_gentech_driver.h @@ -24,7 +24,7 @@ #ifndef __NWFILTER_GENTECH_DRIVER_H # define __NWFILTER_GENTECH_DRIVER_H =20 -# include "nwfilter_conf.h" +# include "virnwfilterobj.h" # include "nwfilter_tech_driver.h" =20 virNWFilterTechDriverPtr virNWFilterTechDriverForName(const char *name); diff --git a/src/nwfilter/nwfilter_tech_driver.h b/src/nwfilter/nwfilter_te= ch_driver.h index 7b6f56f..bc30496 100644 --- a/src/nwfilter/nwfilter_tech_driver.h +++ b/src/nwfilter/nwfilter_tech_driver.h @@ -26,7 +26,7 @@ #ifndef __NWFILTER_TECH_DRIVER_H__ # define __NWFILTER_TECH_DRIVER_H__ =20 -# include "nwfilter_conf.h" +# include "virnwfilterobj.h" =20 typedef struct _virNWFilterTechDriver virNWFilterTechDriver; typedef virNWFilterTechDriver *virNWFilterTechDriverPtr; --=20 2.9.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat May 4 17:50:47 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.25 as permitted sender) client-ip=209.132.183.25; envelope-from=libvir-list-bounces@redhat.com; helo=mx4-phx2.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.25 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx4-phx2.redhat.com (mx4-phx2.redhat.com [209.132.183.25]) by mx.zohomail.com with SMTPS id 1488818397194851.8037769465018; Mon, 6 Mar 2017 08:39:57 -0800 (PST) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by mx4-phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v26GabmW024134; Mon, 6 Mar 2017 11:36:37 -0500 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v26GaI1F019686 for ; Mon, 6 Mar 2017 11:36:18 -0500 Received: from localhost.localdomain.com (ovpn-117-9.phx2.redhat.com [10.3.117.9]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id v26GaGoU010285 for ; Mon, 6 Mar 2017 11:36:18 -0500 From: John Ferlan To: libvir-list@redhat.com Date: Mon, 6 Mar 2017 11:36:10 -0500 Message-Id: <20170306163612.6514-5-jferlan@redhat.com> In-Reply-To: <20170306163612.6514-1-jferlan@redhat.com> References: <20170306163612.6514-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 4/6] conf: Adjust coding style for nwfilter conf sources 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-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Alter the format of the code to follow more recent style guidelines of two empty lines between functions, function decls with "[static] type" on one line followed by function name with arguments to functions each on one line. Signed-off-by: John Ferlan --- src/conf/nwfilter_conf.c | 128 ++++++++++++++++++++++++++++++++----------= ---- src/conf/virnwfilterobj.c | 14 +++-- 2 files changed, 99 insertions(+), 43 deletions(-) diff --git a/src/conf/nwfilter_conf.c b/src/conf/nwfilter_conf.c index c4e8ec1..b69d9db 100644 --- a/src/conf/nwfilter_conf.c +++ b/src/conf/nwfilter_conf.c @@ -139,6 +139,7 @@ static const struct int_map chain_priorities[] =3D { INTMAP_ENTRY_LAST, }; =20 + /* * only one filter update allowed */ @@ -151,12 +152,14 @@ virNWFilterReadLockFilterUpdates(void) virRWLockRead(&updateLock); } =20 + void virNWFilterWriteLockFilterUpdates(void) { virRWLockWrite(&updateLock); } =20 + void virNWFilterUnlockFilterUpdates(void) { @@ -164,7 +167,6 @@ virNWFilterUnlockFilterUpdates(void) } =20 =20 - /* * attribute names for the rules XML */ @@ -234,7 +236,9 @@ static const char ipsetflags_str[] =3D "ipsetflags"; * lookup a map entry given the integer. */ static int -intMapGetByInt(const struct int_map *intmap, int32_t attr, const char **re= s) +intMapGetByInt(const struct int_map *intmap, + int32_t attr, + const char **res) { size_t i =3D 0; bool found =3D false; @@ -263,7 +267,9 @@ intMapGetByInt(const struct int_map *intmap, int32_t at= tr, const char **res) * value. Returns 0 if entry was found with result returned, -1 otherwise. */ static int -intMapGetByString(const struct int_map *intmap, const char *str, int casec= mp, +intMapGetByString(const struct int_map *intmap, + const char *str, + int casecmp, int32_t *result) { size_t i =3D 0; @@ -428,7 +434,8 @@ static const struct int_map macProtoMap[] =3D { =20 =20 static bool -checkMacProtocolID(enum attrDatatype datatype, union data *value, +checkMacProtocolID(enum attrDatatype datatype, + union data *value, virNWFilterRuleDefPtr nwf ATTRIBUTE_UNUSED, nwItemDesc *item ATTRIBUTE_UNUSED) { @@ -478,7 +485,8 @@ macProtocolIDFormatter(virBufferPtr buf, =20 =20 static bool -checkVlanVlanID(enum attrDatatype datatype, union data *value, +checkVlanVlanID(enum attrDatatype datatype, + union data *value, virNWFilterRuleDefPtr nwf, nwItemDesc *item ATTRIBUTE_UNUSED) { @@ -497,8 +505,10 @@ checkVlanVlanID(enum attrDatatype datatype, union data= *value, return false; } =20 + static bool -checkVlanProtocolID(enum attrDatatype datatype, union data *value, +checkVlanProtocolID(enum attrDatatype datatype, + union data *value, virNWFilterRuleDefPtr nwf, nwItemDesc *item ATTRIBUTE_UNUSED) { @@ -524,6 +534,7 @@ checkVlanProtocolID(enum attrDatatype datatype, union d= ata *value, return false; } =20 + static bool vlanProtocolIDFormatter(virBufferPtr buf, virNWFilterRuleDefPtr nwf, @@ -545,12 +556,14 @@ vlanProtocolIDFormatter(virBufferPtr buf, return true; } =20 + /* generic function to check for a valid (ipv4,ipv6, mac) mask * A mask is valid of there is a sequence of 1's followed by a sequence * of 0s or only 1s or only 0s */ static bool -checkValidMask(unsigned char *data, int len) +checkValidMask(unsigned char *data, + int len) { uint32_t idx =3D 0; uint8_t mask =3D 0x80; @@ -712,7 +725,8 @@ formatIPProtocolID(virBufferPtr buf, =20 =20 static bool -dscpValidator(enum attrDatatype datatype, union data *val, +dscpValidator(enum attrDatatype datatype, + union data *val, virNWFilterRuleDefPtr nwf, nwItemDesc *item ATTRIBUTE_UNUSED) { @@ -738,7 +752,9 @@ static const struct int_map stateMatchMap[] =3D { =20 static int parseStringItems(const struct int_map *int_map, - const char *input, int32_t *flags, char sep) + const char *input, + int32_t *flags, + char sep) { int rc =3D 0; size_t i, j; @@ -770,8 +786,10 @@ parseStringItems(const struct int_map *int_map, =20 =20 static int -printStringItems(virBufferPtr buf, const struct int_map *int_map, - int32_t flags, const char *sep) +printStringItems(virBufferPtr buf, + const struct int_map *int_map, + int32_t flags, + const char *sep) { size_t i; unsigned int c =3D 0; @@ -799,7 +817,8 @@ printStringItems(virBufferPtr buf, const struct int_map= *int_map, =20 =20 static int -parseStateMatch(const char *statematch, int32_t *flags) +parseStateMatch(const char *statematch, + int32_t *flags) { int rc =3D parseStringItems(stateMatchMap, statematch, flags, ','); =20 @@ -811,8 +830,10 @@ parseStateMatch(const char *statematch, int32_t *flags) =20 =20 void -virNWFilterPrintStateMatchFlags(virBufferPtr buf, const char *prefix, - int32_t flags, bool disp_none) +virNWFilterPrintStateMatchFlags(virBufferPtr buf, + const char *prefix, + int32_t flags, + bool disp_none) { if (!disp_none && (flags & RULE_FLAG_STATE_NONE)) return; @@ -824,7 +845,8 @@ virNWFilterPrintStateMatchFlags(virBufferPtr buf, const= char *prefix, =20 =20 static bool -stateValidator(enum attrDatatype datatype ATTRIBUTE_UNUSED, union data *va= l, +stateValidator(enum attrDatatype datatype ATTRIBUTE_UNUSED, + union data *val, virNWFilterRuleDefPtr nwf, nwItemDesc *item) { @@ -854,7 +876,6 @@ stateFormatter(virBufferPtr buf, } =20 =20 - static const struct int_map tcpFlags[] =3D { INTMAP_ENTRY(0x1, "FIN"), INTMAP_ENTRY(0x2, "SYN"), @@ -869,7 +890,8 @@ static const struct int_map tcpFlags[] =3D { =20 =20 static bool -tcpFlagsValidator(enum attrDatatype datatype ATTRIBUTE_UNUSED, union data = *val, +tcpFlagsValidator(enum attrDatatype datatype ATTRIBUTE_UNUSED, + union data *val, virNWFilterRuleDefPtr nwf ATTRIBUTE_UNUSED, nwItemDesc *item) { @@ -900,7 +922,8 @@ tcpFlagsValidator(enum attrDatatype datatype ATTRIBUTE_= UNUSED, union data *val, =20 =20 static void -printTCPFlags(virBufferPtr buf, uint8_t flags) +printTCPFlags(virBufferPtr buf, + uint8_t flags) { if (flags =3D=3D 0) virBufferAddLit(buf, "NONE"); @@ -934,8 +957,10 @@ tcpFlagsFormatter(virBufferPtr buf, return true; } =20 + static bool -ipsetValidator(enum attrDatatype datatype ATTRIBUTE_UNUSED, union data *va= l, +ipsetValidator(enum attrDatatype datatype ATTRIBUTE_UNUSED, + union data *val, virNWFilterRuleDefPtr nwf ATTRIBUTE_UNUSED, nwItemDesc *item) { @@ -961,6 +986,7 @@ ipsetValidator(enum attrDatatype datatype ATTRIBUTE_UNU= SED, union data *val, return false; } =20 + static bool ipsetFormatter(virBufferPtr buf, virNWFilterRuleDefPtr nwf ATTRIBUTE_UNUSED, @@ -971,9 +997,12 @@ ipsetFormatter(virBufferPtr buf, return true; } =20 + static bool -ipsetFlagsValidator(enum attrDatatype datatype ATTRIBUTE_UNUSED, union dat= a *val, - virNWFilterRuleDefPtr nwf ATTRIBUTE_UNUSED, nwItemDesc= *item) +ipsetFlagsValidator(enum attrDatatype datatype ATTRIBUTE_UNUSED, + union data *val, + virNWFilterRuleDefPtr nwf ATTRIBUTE_UNUSED, + nwItemDesc *item) { const char *errmsg =3D NULL; size_t idx =3D 0; @@ -1007,6 +1036,7 @@ ipsetFlagsValidator(enum attrDatatype datatype ATTRIB= UTE_UNUSED, union data *val return false; } =20 + static bool ipsetFlagsFormatter(virBufferPtr buf, virNWFilterRuleDefPtr nwf ATTRIBUTE_UNUSED, @@ -1026,6 +1056,7 @@ ipsetFlagsFormatter(virBufferPtr buf, return true; } =20 + #define COMMON_MAC_PROPS(STRUCT) \ {\ .name =3D SRCMACADDR,\ @@ -1756,6 +1787,7 @@ static const virAttributes virAttr[] =3D { PROTOCOL_ENTRY_LAST }; =20 + static int virNWFilterRuleDetailsParse(xmlNodePtr node, virNWFilterRuleDefPtr nwf, @@ -2024,8 +2056,6 @@ virNWFilterRuleDetailsParse(xmlNodePtr node, } =20 =20 - - static virNWFilterIncludeDefPtr virNWFilterIncludeParse(xmlNodePtr cur) { @@ -2055,6 +2085,7 @@ virNWFilterIncludeParse(xmlNodePtr cur) goto cleanup; } =20 + static void virNWFilterRuleDefFixupIPSet(ipHdrDataDefPtr ipHdr) { @@ -2129,6 +2160,7 @@ virNWFilterRuleValidate(virNWFilterRuleDefPtr rule) return ret; } =20 + static void virNWFilterRuleDefFixup(virNWFilterRuleDefPtr rule) { @@ -2464,6 +2496,7 @@ virNWFilterRuleParse(xmlNodePtr node) goto cleanup; } =20 + static bool virNWFilterIsValidChainName(const char *chainname) { @@ -2484,6 +2517,7 @@ virNWFilterIsValidChainName(const char *chainname) return true; } =20 + /* * Test whether the name of the chain is supported. * It current has to have a prefix of either one of the strings found in @@ -2541,6 +2575,7 @@ virNWFilterIsAllowedChain(const char *chainname) return NULL; } =20 + static virNWFilterDefPtr virNWFilterDefParseXML(xmlXPathContextPtr ctxt) { @@ -2731,9 +2766,10 @@ virNWFilterDefParseFile(const char *filename) } =20 =20 -int virNWFilterSaveXML(const char *configDir, - virNWFilterDefPtr def, - const char *xml) +int +virNWFilterSaveXML(const char *configDir, + virNWFilterDefPtr def, + const char *xml) { char uuidstr[VIR_UUID_STRING_BUFLEN]; char *configFile =3D NULL; @@ -2760,8 +2796,9 @@ int virNWFilterSaveXML(const char *configDir, } =20 =20 -int virNWFilterSaveConfig(const char *configDir, - virNWFilterDefPtr def) +int +virNWFilterSaveConfig(const char *configDir, + virNWFilterDefPtr def) { int ret =3D -1; char *xml; @@ -2790,6 +2827,7 @@ virNWFilterRegisterCallbackDriver(virNWFilterCallback= DriverPtr cbd) callbackDrvArray[nCallbackDriver++] =3D cbd; } =20 + void virNWFilterUnRegisterCallbackDriver(virNWFilterCallbackDriverPtr cbd) { @@ -2806,6 +2844,7 @@ virNWFilterUnRegisterCallbackDriver(virNWFilterCallba= ckDriverPtr cbd) } } =20 + void virNWFilterCallbackDriversLock(void) { @@ -2815,6 +2854,7 @@ virNWFilterCallbackDriversLock(void) callbackDrvArray[i]->vmDriverLock(); } =20 + void virNWFilterCallbackDriversUnlock(void) { @@ -2850,6 +2890,7 @@ virNWFilterInstFiltersOnAllVMs(void) return 0; } =20 + int virNWFilterTriggerVMFilterRebuild(void) { @@ -2952,7 +2993,8 @@ virNWFilterDeleteDef(const char *configDir, =20 =20 static void -virNWIPAddressFormat(virBufferPtr buf, virSocketAddrPtr ipaddr) +virNWIPAddressFormat(virBufferPtr buf, + virSocketAddrPtr ipaddr) { char *output =3D virSocketAddrFormat(ipaddr); =20 @@ -3106,7 +3148,8 @@ virNWFilterRuleDefDetailsFormat(virBufferPtr buf, =20 =20 static int -virNWFilterRuleDefFormat(virBufferPtr buf, virNWFilterRuleDefPtr def) +virNWFilterRuleDefFormat(virBufferPtr buf, + virNWFilterRuleDefPtr def) { size_t i; bool subelement =3D false; @@ -3145,7 +3188,8 @@ virNWFilterRuleDefFormat(virBufferPtr buf, virNWFilte= rRuleDefPtr def) =20 =20 static int -virNWFilterEntryFormat(virBufferPtr buf, virNWFilterEntryPtr entry) +virNWFilterEntryFormat(virBufferPtr buf, + virNWFilterEntryPtr entry) { if (entry->rule) return virNWFilterRuleDefFormat(buf, entry->rule); @@ -3192,8 +3236,9 @@ virNWFilterDefFormat(const virNWFilterDef *def) } =20 =20 -char *virNWFilterConfigFile(const char *dir, - const char *name) +char * +virNWFilterConfigFile(const char *dir, + const char *name) { char *ret =3D NULL; =20 @@ -3202,8 +3247,9 @@ char *virNWFilterConfigFile(const char *dir, } =20 =20 -int virNWFilterConfLayerInit(virDomainObjListIterator domUpdateCB, - void *opaque) +int +virNWFilterConfLayerInit(virDomainObjListIterator domUpdateCB, + void *opaque) { if (initialized) return -1; @@ -3220,7 +3266,8 @@ int virNWFilterConfLayerInit(virDomainObjListIterator= domUpdateCB, } =20 =20 -void virNWFilterConfLayerShutdown(void) +void +virNWFilterConfLayerShutdown(void) { if (!initialized) return; @@ -3233,7 +3280,8 @@ void virNWFilterConfLayerShutdown(void) } =20 =20 -bool virNWFilterRuleIsProtocolIPv4(virNWFilterRuleDefPtr rule) +bool +virNWFilterRuleIsProtocolIPv4(virNWFilterRuleDefPtr rule) { if (rule->prtclType >=3D VIR_NWFILTER_RULE_PROTOCOL_TCP && rule->prtclType <=3D VIR_NWFILTER_RULE_PROTOCOL_ALL) @@ -3242,7 +3290,8 @@ bool virNWFilterRuleIsProtocolIPv4(virNWFilterRuleDef= Ptr rule) } =20 =20 -bool virNWFilterRuleIsProtocolIPv6(virNWFilterRuleDefPtr rule) +bool +virNWFilterRuleIsProtocolIPv6(virNWFilterRuleDefPtr rule) { if (rule->prtclType >=3D VIR_NWFILTER_RULE_PROTOCOL_TCPoIPV6 && rule->prtclType <=3D VIR_NWFILTER_RULE_PROTOCOL_ALLoIPV6) @@ -3251,7 +3300,8 @@ bool virNWFilterRuleIsProtocolIPv6(virNWFilterRuleDef= Ptr rule) } =20 =20 -bool virNWFilterRuleIsProtocolEthernet(virNWFilterRuleDefPtr rule) +bool +virNWFilterRuleIsProtocolEthernet(virNWFilterRuleDefPtr rule) { if (rule->prtclType <=3D VIR_NWFILTER_RULE_PROTOCOL_IPV6) return true; diff --git a/src/conf/virnwfilterobj.c b/src/conf/virnwfilterobj.c index 869365c..0d81912 100644 --- a/src/conf/virnwfilterobj.c +++ b/src/conf/virnwfilterobj.c @@ -100,7 +100,8 @@ virNWFilterObjFindByUUID(virNWFilterObjListPtr nwfilter= s, =20 =20 virNWFilterObjPtr -virNWFilterObjFindByName(virNWFilterObjListPtr nwfilters, const char *name) +virNWFilterObjFindByName(virNWFilterObjListPtr nwfilters, + const char *name) { size_t i; =20 @@ -187,8 +188,10 @@ virNWFilterTestUnassignDef(virNWFilterObjPtr nwfilter) return rc; } =20 + static bool -virNWFilterDefEqual(const virNWFilterDef *def1, virNWFilterDefPtr def2, +virNWFilterDefEqual(const virNWFilterDef *def1, + virNWFilterDefPtr def2, bool cmpUUIDs) { bool ret =3D false; @@ -217,6 +220,7 @@ virNWFilterDefEqual(const virNWFilterDef *def1, virNWFi= lterDefPtr def2, return ret; } =20 + virNWFilterObjPtr virNWFilterObjAssignDef(virNWFilterObjListPtr nwfilters, virNWFilterDefPtr def) @@ -370,13 +374,15 @@ virNWFilterLoadAllConfigs(virNWFilterObjListPtr nwfil= ters, } =20 =20 -void virNWFilterObjLock(virNWFilterObjPtr obj) +void +virNWFilterObjLock(virNWFilterObjPtr obj) { virMutexLock(&obj->lock); } =20 =20 -void virNWFilterObjUnlock(virNWFilterObjPtr obj) +void +virNWFilterObjUnlock(virNWFilterObjPtr obj) { virMutexUnlock(&obj->lock); } --=20 2.9.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat May 4 17:50:47 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.25 as permitted sender) client-ip=209.132.183.25; envelope-from=libvir-list-bounces@redhat.com; helo=mx4-phx2.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.25 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx4-phx2.redhat.com (mx4-phx2.redhat.com [209.132.183.25]) by mx.zohomail.com with SMTPS id 1488818378899349.6890558132492; Mon, 6 Mar 2017 08:39:38 -0800 (PST) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by mx4-phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v26GaLLA024093; Mon, 6 Mar 2017 11:36:21 -0500 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v26GaJpd019691 for ; Mon, 6 Mar 2017 11:36:19 -0500 Received: from localhost.localdomain.com (ovpn-117-9.phx2.redhat.com [10.3.117.9]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id v26GaGoV010285 for ; Mon, 6 Mar 2017 11:36:18 -0500 From: John Ferlan To: libvir-list@redhat.com Date: Mon, 6 Mar 2017 11:36:11 -0500 Message-Id: <20170306163612.6514-6-jferlan@redhat.com> In-Reply-To: <20170306163612.6514-1-jferlan@redhat.com> References: <20170306163612.6514-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 5/6] conf: Alter coding style of nwfilter function prototypes 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-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" In an effort to be consistent with the source module, alter the function prototypes to follow the similar style of source with the "type" on one line followed by the function name and arguments on subsequent lines with with argument getting it's own line. Signed-off-by: John Ferlan --- src/conf/nwfilter_conf.h | 107 ++++++++++++++++++++++++++++++------------= ---- src/conf/virnwfilterobj.h | 37 ++++++++++------ 2 files changed, 94 insertions(+), 50 deletions(-) diff --git a/src/conf/nwfilter_conf.h b/src/conf/nwfilter_conf.h index 96c330d..d8a5daf 100644 --- a/src/conf/nwfilter_conf.h +++ b/src/conf/nwfilter_conf.h @@ -560,50 +560,74 @@ struct domUpdateCBStruct { }; =20 =20 -void virNWFilterRuleDefFree(virNWFilterRuleDefPtr def); +void +virNWFilterRuleDefFree(virNWFilterRuleDefPtr def); =20 -void virNWFilterDefFree(virNWFilterDefPtr def); +void +virNWFilterDefFree(virNWFilterDefPtr def); =20 -int virNWFilterTriggerVMFilterRebuild(void); +int +virNWFilterTriggerVMFilterRebuild(void); =20 -int virNWFilterSaveDef(const char *configDir, - virNWFilterDefPtr def); +int +virNWFilterSaveDef(const char *configDir, + virNWFilterDefPtr def); =20 -int virNWFilterDeleteDef(const char *configDir, - virNWFilterDefPtr def); +int +virNWFilterDeleteDef(const char *configDir, + virNWFilterDefPtr def); =20 -virNWFilterDefPtr virNWFilterDefParseNode(xmlDocPtr xml, - xmlNodePtr root); +virNWFilterDefPtr +virNWFilterDefParseNode(xmlDocPtr xml, + xmlNodePtr root); =20 -char *virNWFilterDefFormat(const virNWFilterDef *def); +char * +virNWFilterDefFormat(const virNWFilterDef *def); =20 -int virNWFilterSaveXML(const char *configDir, - virNWFilterDefPtr def, - const char *xml); +int +virNWFilterSaveXML(const char *configDir, + virNWFilterDefPtr def, + const char *xml); =20 -int virNWFilterSaveConfig(const char *configDir, - virNWFilterDefPtr def); +int +virNWFilterSaveConfig(const char *configDir, + virNWFilterDefPtr def); =20 -char *virNWFilterConfigFile(const char *dir, - const char *name); +char * +virNWFilterConfigFile(const char *dir, + const char *name); =20 -virNWFilterDefPtr virNWFilterDefParseString(const char *xml); -virNWFilterDefPtr virNWFilterDefParseFile(const char *filename); +virNWFilterDefPtr +virNWFilterDefParseString(const char *xml); =20 -void virNWFilterWriteLockFilterUpdates(void); -void virNWFilterReadLockFilterUpdates(void); -void virNWFilterUnlockFilterUpdates(void); +virNWFilterDefPtr +virNWFilterDefParseFile(const char *filename); =20 -int virNWFilterConfLayerInit(virDomainObjListIterator domUpdateCB, void *o= paque); -void virNWFilterConfLayerShutdown(void); +void +virNWFilterWriteLockFilterUpdates(void); =20 -int virNWFilterInstFiltersOnAllVMs(void); +void +virNWFilterReadLockFilterUpdates(void); =20 +void +virNWFilterUnlockFilterUpdates(void); =20 -typedef int (*virNWFilterRebuild)(virDomainObjListIterator domUpdateCB, - void *data); -typedef void (*virNWFilterVoidCall)(void); +int +virNWFilterConfLayerInit(virDomainObjListIterator domUpdateCB, + void *opaque); =20 +void +virNWFilterConfLayerShutdown(void); + +int +virNWFilterInstFiltersOnAllVMs(void); + +typedef int +(*virNWFilterRebuild)(virDomainObjListIterator domUpdateCB, + void *data); + +typedef void +(*virNWFilterVoidCall)(void); =20 typedef struct _virNWFilterCallbackDriver virNWFilterCallbackDriver; typedef virNWFilterCallbackDriver *virNWFilterCallbackDriverPtr; @@ -615,18 +639,29 @@ struct _virNWFilterCallbackDriver { virNWFilterVoidCall vmDriverUnlock; }; =20 -void virNWFilterRegisterCallbackDriver(virNWFilterCallbackDriverPtr); -void virNWFilterUnRegisterCallbackDriver(virNWFilterCallbackDriverPtr); -void virNWFilterCallbackDriversLock(void); -void virNWFilterCallbackDriversUnlock(void); +void +virNWFilterRegisterCallbackDriver(virNWFilterCallbackDriverPtr); + +void +virNWFilterUnRegisterCallbackDriver(virNWFilterCallbackDriverPtr); + +void +virNWFilterCallbackDriversLock(void); + +void +virNWFilterCallbackDriversUnlock(void); =20 +char * +virNWFilterPrintTCPFlags(uint8_t flags); =20 -char *virNWFilterPrintTCPFlags(uint8_t flags); +bool +virNWFilterRuleIsProtocolIPv4(virNWFilterRuleDefPtr rule); =20 +bool +virNWFilterRuleIsProtocolIPv6(virNWFilterRuleDefPtr rule); =20 -bool virNWFilterRuleIsProtocolIPv4(virNWFilterRuleDefPtr rule); -bool virNWFilterRuleIsProtocolIPv6(virNWFilterRuleDefPtr rule); -bool virNWFilterRuleIsProtocolEthernet(virNWFilterRuleDefPtr rule); +bool +virNWFilterRuleIsProtocolEthernet(virNWFilterRuleDefPtr rule); =20 VIR_ENUM_DECL(virNWFilterRuleAction); VIR_ENUM_DECL(virNWFilterRuleDirection); diff --git a/src/conf/virnwfilterobj.h b/src/conf/virnwfilterobj.h index 00b8d0a..593f426 100644 --- a/src/conf/virnwfilterobj.h +++ b/src/conf/virnwfilterobj.h @@ -57,29 +57,38 @@ struct _virNWFilterDriverState { bool watchingFirewallD; }; =20 -void virNWFilterObjListFree(virNWFilterObjListPtr nwfilters); +void +virNWFilterObjListFree(virNWFilterObjListPtr nwfilters); =20 -void virNWFilterObjRemove(virNWFilterObjListPtr nwfilters, - virNWFilterObjPtr nwfilter); +void +virNWFilterObjRemove(virNWFilterObjListPtr nwfilters, + virNWFilterObjPtr nwfilter); =20 void virNWFilterObjFree(virNWFilterObjPtr obj); =20 -virNWFilterObjPtr virNWFilterObjFindByUUID(virNWFilterObjListPtr nwfilters, - const unsigned char *uuid); +virNWFilterObjPtr +virNWFilterObjFindByUUID(virNWFilterObjListPtr nwfilters, + const unsigned char *uuid); =20 -virNWFilterObjPtr virNWFilterObjFindByName(virNWFilterObjListPtr nwfilters, - const char *name); +virNWFilterObjPtr +virNWFilterObjFindByName(virNWFilterObjListPtr nwfilters, + const char *name); =20 -virNWFilterObjPtr virNWFilterObjAssignDef(virNWFilterObjListPtr nwfilters, - virNWFilterDefPtr def); +virNWFilterObjPtr +virNWFilterObjAssignDef(virNWFilterObjListPtr nwfilters, + virNWFilterDefPtr def); =20 -int virNWFilterTestUnassignDef(virNWFilterObjPtr nwfilter); +int +virNWFilterTestUnassignDef(virNWFilterObjPtr nwfilter); =20 -int virNWFilterLoadAllConfigs(virNWFilterObjListPtr nwfilters, - const char *configDir); +int +virNWFilterLoadAllConfigs(virNWFilterObjListPtr nwfilters, + const char *configDir); =20 -void virNWFilterObjLock(virNWFilterObjPtr obj); +void +virNWFilterObjLock(virNWFilterObjPtr obj); =20 -void virNWFilterObjUnlock(virNWFilterObjPtr obj); +void +virNWFilterObjUnlock(virNWFilterObjPtr obj); =20 #endif /* VIRNWFILTEROBJ_H */ --=20 2.9.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sat May 4 17:50:47 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.37 as permitted sender) client-ip=209.132.183.37; envelope-from=libvir-list-bounces@redhat.com; helo=mx5-phx2.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.37 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx5-phx2.redhat.com (mx5-phx2.redhat.com [209.132.183.37]) by mx.zohomail.com with SMTPS id 1488818382573723.8135313068595; Mon, 6 Mar 2017 08:39:42 -0800 (PST) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by mx5-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id v26GaYYK023339; Mon, 6 Mar 2017 11:36:34 -0500 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v26GaJ1f019702 for ; Mon, 6 Mar 2017 11:36:19 -0500 Received: from localhost.localdomain.com (ovpn-117-9.phx2.redhat.com [10.3.117.9]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id v26GaGoW010285 for ; Mon, 6 Mar 2017 11:36:19 -0500 From: John Ferlan To: libvir-list@redhat.com Date: Mon, 6 Mar 2017 11:36:12 -0500 Message-Id: <20170306163612.6514-7-jferlan@redhat.com> In-Reply-To: <20170306163612.6514-1-jferlan@redhat.com> References: <20170306163612.6514-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 6/6] conf: Use consistent function name prefixes for virnwfilterobj 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-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Use "virNWFilterObj" as a prefix for any external API in virnwfilterobj Signed-off-by: John Ferlan --- src/conf/virnwfilterobj.c | 34 +++++++++++++++++----------------- src/conf/virnwfilterobj.h | 6 +++--- src/libvirt_private.syms | 4 ++-- src/nwfilter/nwfilter_driver.c | 8 +++----- 4 files changed, 25 insertions(+), 27 deletions(-) diff --git a/src/conf/virnwfilterobj.c b/src/conf/virnwfilterobj.c index 0d81912..7e13afb 100644 --- a/src/conf/virnwfilterobj.c +++ b/src/conf/virnwfilterobj.c @@ -117,9 +117,9 @@ virNWFilterObjFindByName(virNWFilterObjListPtr nwfilter= s, =20 =20 static int -_virNWFilterDefLoopDetect(virNWFilterObjListPtr nwfilters, - virNWFilterDefPtr def, - const char *filtername) +_virNWFilterObjDefLoopDetect(virNWFilterObjListPtr nwfilters, + virNWFilterDefPtr def, + const char *filtername) { int rc =3D 0; size_t i; @@ -141,8 +141,8 @@ _virNWFilterDefLoopDetect(virNWFilterObjListPtr nwfilte= rs, obj =3D virNWFilterObjFindByName(nwfilters, entry->include->filterref); if (obj) { - rc =3D _virNWFilterDefLoopDetect(nwfilters, - obj->def, filtername); + rc =3D _virNWFilterObjDefLoopDetect(nwfilters, + obj->def, filtername); =20 virNWFilterObjUnlock(obj); if (rc < 0) @@ -156,7 +156,7 @@ _virNWFilterDefLoopDetect(virNWFilterObjListPtr nwfilte= rs, =20 =20 /* - * virNWFilterDefLoopDetect: + * virNWFilterObjDefLoopDetect: * @nwfilters : the nwfilters to search * @def : the filter definition that may add a loop and is to be tested * @@ -166,15 +166,15 @@ _virNWFilterDefLoopDetect(virNWFilterObjListPtr nwfil= ters, * Returns 0 in case no loop was detected, -1 otherwise. */ static int -virNWFilterDefLoopDetect(virNWFilterObjListPtr nwfilters, - virNWFilterDefPtr def) +virNWFilterObjDefLoopDetect(virNWFilterObjListPtr nwfilters, + virNWFilterDefPtr def) { - return _virNWFilterDefLoopDetect(nwfilters, def, def->name); + return _virNWFilterObjDefLoopDetect(nwfilters, def, def->name); } =20 =20 int -virNWFilterTestUnassignDef(virNWFilterObjPtr nwfilter) +virNWFilterObjTestUnassignDef(virNWFilterObjPtr nwfilter) { int rc =3D 0; =20 @@ -252,7 +252,7 @@ virNWFilterObjAssignDef(virNWFilterObjListPtr nwfilters, } } =20 - if (virNWFilterDefLoopDetect(nwfilters, def) < 0) { + if (virNWFilterObjDefLoopDetect(nwfilters, def) < 0) { virReportError(VIR_ERR_OPERATION_FAILED, "%s", _("filter would introduce a loop")); return NULL; @@ -306,9 +306,9 @@ virNWFilterObjAssignDef(virNWFilterObjListPtr nwfilters, =20 =20 static virNWFilterObjPtr -virNWFilterLoadConfig(virNWFilterObjListPtr nwfilters, - const char *configDir, - const char *name) +virNWFilterObjLoadConfig(virNWFilterObjListPtr nwfilters, + const char *configDir, + const char *name) { virNWFilterDefPtr def =3D NULL; virNWFilterObjPtr nwfilter; @@ -347,8 +347,8 @@ virNWFilterLoadConfig(virNWFilterObjListPtr nwfilters, =20 =20 int -virNWFilterLoadAllConfigs(virNWFilterObjListPtr nwfilters, - const char *configDir) +virNWFilterObjLoadAllConfigs(virNWFilterObjListPtr nwfilters, + const char *configDir) { DIR *dir; struct dirent *entry; @@ -364,7 +364,7 @@ virNWFilterLoadAllConfigs(virNWFilterObjListPtr nwfilte= rs, if (!virFileStripSuffix(entry->d_name, ".xml")) continue; =20 - nwfilter =3D virNWFilterLoadConfig(nwfilters, configDir, entry->d_= name); + nwfilter =3D virNWFilterObjLoadConfig(nwfilters, configDir, entry-= >d_name); if (nwfilter) virNWFilterObjUnlock(nwfilter); } diff --git a/src/conf/virnwfilterobj.h b/src/conf/virnwfilterobj.h index 593f426..1d80455 100644 --- a/src/conf/virnwfilterobj.h +++ b/src/conf/virnwfilterobj.h @@ -79,11 +79,11 @@ virNWFilterObjAssignDef(virNWFilterObjListPtr nwfilters, virNWFilterDefPtr def); =20 int -virNWFilterTestUnassignDef(virNWFilterObjPtr nwfilter); +virNWFilterObjTestUnassignDef(virNWFilterObjPtr nwfilter); =20 int -virNWFilterLoadAllConfigs(virNWFilterObjListPtr nwfilters, - const char *configDir); +virNWFilterObjLoadAllConfigs(virNWFilterObjListPtr nwfilters, + const char *configDir); =20 void virNWFilterObjLock(virNWFilterObjPtr obj); diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 3c4b943..e0caa07 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -957,15 +957,15 @@ virNodeDeviceObjUnlock; =20 =20 # conf/virnwfilterobj.h -virNWFilterLoadAllConfigs; virNWFilterObjAssignDef; virNWFilterObjFindByName; virNWFilterObjFindByUUID; virNWFilterObjListFree; +virNWFilterObjLoadAllConfigs; virNWFilterObjLock; virNWFilterObjRemove; +virNWFilterObjTestUnassignDef; virNWFilterObjUnlock; -virNWFilterTestUnassignDef; =20 =20 # conf/virsecretobj.h diff --git a/src/nwfilter/nwfilter_driver.c b/src/nwfilter/nwfilter_driver.c index 6ce2bfd..4ea216a 100644 --- a/src/nwfilter/nwfilter_driver.c +++ b/src/nwfilter/nwfilter_driver.c @@ -237,8 +237,7 @@ nwfilterStateInitialize(bool privileged, =20 VIR_FREE(base); =20 - if (virNWFilterLoadAllConfigs(&driver->nwfilters, - driver->configDir) < 0) + if (virNWFilterObjLoadAllConfigs(&driver->nwfilters, driver->configDir= ) < 0) goto error; =20 nwfilterDriverUnlock(); @@ -290,8 +289,7 @@ nwfilterStateReload(void) virNWFilterWriteLockFilterUpdates(); virNWFilterCallbackDriversLock(); =20 - virNWFilterLoadAllConfigs(&driver->nwfilters, - driver->configDir); + virNWFilterObjLoadAllConfigs(&driver->nwfilters, driver->configDir); =20 virNWFilterCallbackDriversUnlock(); virNWFilterUnlockFilterUpdates(); @@ -595,7 +593,7 @@ nwfilterUndefine(virNWFilterPtr obj) if (virNWFilterUndefineEnsureACL(obj->conn, nwfilter->def) < 0) goto cleanup; =20 - if (virNWFilterTestUnassignDef(nwfilter) < 0) { + if (virNWFilterObjTestUnassignDef(nwfilter) < 0) { virReportError(VIR_ERR_OPERATION_INVALID, "%s", _("nwfilter is in use")); --=20 2.9.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list