From nobody Tue Feb 10 19:01:18 2026 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; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 153297643021895.84436371435095; Mon, 30 Jul 2018 11:47:10 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 8A4C5308FBA5; Mon, 30 Jul 2018 18:47:07 +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 5962718E24; Mon, 30 Jul 2018 18:47:06 +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 0AC8C18037F0; Mon, 30 Jul 2018 18:47:04 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6UIl2JG000474 for ; Mon, 30 Jul 2018 14:47:02 -0400 Received: by smtp.corp.redhat.com (Postfix) id 25640D0F8F; Mon, 30 Jul 2018 18:47:02 +0000 (UTC) Received: from unknown4CEB42C824F4.redhat.com (ovpn-116-84.phx2.redhat.com [10.3.116.84]) by smtp.corp.redhat.com (Postfix) with ESMTP id DB064D09A4 for ; Mon, 30 Jul 2018 18:47:01 +0000 (UTC) From: John Ferlan To: libvir-list@redhat.com Date: Mon, 30 Jul 2018 14:46:40 -0400 Message-Id: <20180730184648.5059-4-jferlan@redhat.com> In-Reply-To: <20180730184648.5059-1-jferlan@redhat.com> References: <20180730184648.5059-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.27 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 03/11] conf: Add @flags to Network Def 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.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.43]); Mon, 30 Jul 2018 18:47:08 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Add a @flags argument when parsing the network definition via the virNetworkDefParse{XML|Node|String|File} API's as this will allow us to in the future make parsing decisions based on the @flags. Signed-off-by: John Ferlan --- src/conf/domain_conf.c | 2 +- src/conf/network_conf.c | 27 +++++++++++++++++---------- src/conf/network_conf.h | 12 ++++++++---- src/conf/virnetworkobj.c | 4 ++-- src/esx/esx_network_driver.c | 2 +- src/network/bridge_driver.c | 4 ++-- src/qemu/qemu_process.c | 2 +- src/test/test_driver.c | 6 +++--- src/vbox/vbox_network.c | 2 +- tests/networkxml2conftest.c | 2 +- tests/networkxml2firewalltest.c | 2 +- tests/networkxml2xmltest.c | 2 +- tests/networkxml2xmlupdatetest.c | 2 +- 13 files changed, 40 insertions(+), 29 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 42b55f01d4..705575fe92 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -30004,7 +30004,7 @@ virDomainNetResolveActualType(virDomainNetDefPtr if= ace) if (!(xml =3D virNetworkGetXMLDesc(net, 0))) goto cleanup; =20 - if (!(def =3D virNetworkDefParseString(xml))) + if (!(def =3D virNetworkDefParseString(xml, 0))) goto cleanup; =20 switch ((virNetworkForwardType) def->forward.type) { diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c index c08456ba96..34d132e506 100644 --- a/src/conf/network_conf.c +++ b/src/conf/network_conf.c @@ -259,7 +259,7 @@ virNetworkDefCopy(virNetworkDefPtr def, unsigned int fl= ags) /* deep copy with a format/parse cycle */ if (!(xml =3D virNetworkDefFormat(def, flags))) goto cleanup; - newDef =3D virNetworkDefParseString(xml); + newDef =3D virNetworkDefParseString(xml, 0); cleanup: VIR_FREE(xml); return newDef; @@ -1584,7 +1584,8 @@ virNetworkForwardDefParseXML(const char *networkName, =20 =20 virNetworkDefPtr -virNetworkDefParseXML(xmlXPathContextPtr ctxt) +virNetworkDefParseXML(xmlXPathContextPtr ctxt, + unsigned int flags) { virNetworkDefPtr def; char *tmp =3D NULL; @@ -1603,6 +1604,8 @@ virNetworkDefParseXML(xmlXPathContextPtr ctxt) xmlNodePtr vlanNode; xmlNodePtr metadataNode =3D NULL; =20 + virCheckFlags(0, NULL); + if (VIR_ALLOC(def) < 0) return NULL; =20 @@ -2016,14 +2019,15 @@ virNetworkDefParseXML(xmlXPathContextPtr ctxt) =20 static virNetworkDefPtr virNetworkDefParse(const char *xmlStr, - const char *filename) + const char *filename, + unsigned int flags) { xmlDocPtr xml; virNetworkDefPtr def =3D NULL; int keepBlanksDefault =3D xmlKeepBlanksDefault(0); =20 if ((xml =3D virXMLParse(filename, xmlStr, _("(network_definition)")))= ) { - def =3D virNetworkDefParseNode(xml, xmlDocGetRootElement(xml)); + def =3D virNetworkDefParseNode(xml, xmlDocGetRootElement(xml), fla= gs); xmlFreeDoc(xml); } =20 @@ -2033,22 +2037,25 @@ virNetworkDefParse(const char *xmlStr, =20 =20 virNetworkDefPtr -virNetworkDefParseString(const char *xmlStr) +virNetworkDefParseString(const char *xmlStr, + unsigned int flags) { - return virNetworkDefParse(xmlStr, NULL); + return virNetworkDefParse(xmlStr, NULL, flags); } =20 =20 virNetworkDefPtr -virNetworkDefParseFile(const char *filename) +virNetworkDefParseFile(const char *filename, + unsigned int flags) { - return virNetworkDefParse(NULL, filename); + return virNetworkDefParse(NULL, filename, flags); } =20 =20 virNetworkDefPtr virNetworkDefParseNode(xmlDocPtr xml, - xmlNodePtr root) + xmlNodePtr root, + unsigned int flags) { xmlXPathContextPtr ctxt =3D NULL; virNetworkDefPtr def =3D NULL; @@ -2068,7 +2075,7 @@ virNetworkDefParseNode(xmlDocPtr xml, } =20 ctxt->node =3D root; - def =3D virNetworkDefParseXML(ctxt); + def =3D virNetworkDefParseXML(ctxt, flags); =20 cleanup: xmlXPathFreeContext(ctxt); diff --git a/src/conf/network_conf.h b/src/conf/network_conf.h index 54c8ed1c4c..6373b783c6 100644 --- a/src/conf/network_conf.h +++ b/src/conf/network_conf.h @@ -294,17 +294,21 @@ virNetworkDefPtr virNetworkDefCopy(virNetworkDefPtr def, unsigned int flags); =20 virNetworkDefPtr -virNetworkDefParseXML(xmlXPathContextPtr ctxt); +virNetworkDefParseXML(xmlXPathContextPtr ctxt, + unsigned int flags); =20 virNetworkDefPtr -virNetworkDefParseString(const char *xmlStr); +virNetworkDefParseString(const char *xmlStr, + unsigned int flags); =20 virNetworkDefPtr -virNetworkDefParseFile(const char *filename); +virNetworkDefParseFile(const char *filename, + unsigned int flags); =20 virNetworkDefPtr virNetworkDefParseNode(xmlDocPtr xml, - xmlNodePtr root); + xmlNodePtr root, + unsigned int flags); =20 char * virNetworkDefFormat(const virNetworkDef *def, diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c index b13e5a7b03..d7357007d3 100644 --- a/src/conf/virnetworkobj.c +++ b/src/conf/virnetworkobj.c @@ -885,7 +885,7 @@ virNetworkLoadState(virNetworkObjListPtr nets, =20 /* parse the definition first */ ctxt->node =3D node; - if (!(def =3D virNetworkDefParseXML(ctxt))) + if (!(def =3D virNetworkDefParseXML(ctxt, 0))) goto error; =20 if (STRNEQ(name, def->name)) { @@ -998,7 +998,7 @@ virNetworkLoadConfig(virNetworkObjListPtr nets, if ((autostart =3D virFileLinkPointsTo(autostartLink, configFile)) < 0) goto error; =20 - if (!(def =3D virNetworkDefParseFile(configFile))) + if (!(def =3D virNetworkDefParseFile(configFile, 0))) goto error; =20 if (STRNEQ(name, def->name)) { diff --git a/src/esx/esx_network_driver.c b/src/esx/esx_network_driver.c index 31bceb7bff..5e2b2b50f7 100644 --- a/src/esx/esx_network_driver.c +++ b/src/esx/esx_network_driver.c @@ -298,7 +298,7 @@ esxNetworkDefineXML(virConnectPtr conn, const char *xml) return NULL; =20 /* Parse network XML */ - def =3D virNetworkDefParseString(xml); + def =3D virNetworkDefParseString(xml, 0); =20 if (!def) return NULL; diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index f92cc61e47..eef0d83c10 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -3609,7 +3609,7 @@ networkCreateXML(virConnectPtr conn, virNetworkPtr net =3D NULL; virObjectEventPtr event =3D NULL; =20 - if (!(newDef =3D virNetworkDefParseString(xml))) + if (!(newDef =3D virNetworkDefParseString(xml, 0))) goto cleanup; =20 if (virNetworkCreateXMLEnsureACL(conn, newDef) < 0) @@ -3661,7 +3661,7 @@ networkDefineXML(virConnectPtr conn, virNetworkPtr net =3D NULL; virObjectEventPtr event =3D NULL; =20 - if (!(def =3D virNetworkDefParseString(xml))) + if (!(def =3D virNetworkDefParseString(xml, 0))) goto cleanup; =20 if (virNetworkDefineXMLEnsureACL(conn, def) < 0) diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index c4e33723d1..ccf6c662c9 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -4541,7 +4541,7 @@ qemuProcessGetNetworkAddress(const char *netname, if (!xml) goto cleanup; =20 - netdef =3D virNetworkDefParseString(xml); + netdef =3D virNetworkDefParseString(xml, 0); if (!netdef) goto cleanup; =20 diff --git a/src/test/test_driver.c b/src/test/test_driver.c index 1a42a4f74b..9826ac3fee 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -966,7 +966,7 @@ testParseNetworks(testDriverPtr privconn, if (!node) goto error; =20 - def =3D virNetworkDefParseNode(ctxt->doc, node); + def =3D virNetworkDefParseNode(ctxt->doc, node, 0); if (!def) goto error; =20 @@ -3462,7 +3462,7 @@ testNetworkCreateXML(virConnectPtr conn, const char *= xml) virNetworkPtr net =3D NULL; virObjectEventPtr event =3D NULL; =20 - if ((newDef =3D virNetworkDefParseString(xml)) =3D=3D NULL) + if ((newDef =3D virNetworkDefParseString(xml, 0)) =3D=3D NULL) goto cleanup; =20 if (!(obj =3D virNetworkObjAssignDef(privconn->networks, newDef, @@ -3498,7 +3498,7 @@ testNetworkDefineXML(virConnectPtr conn, virNetworkPtr net =3D NULL; virObjectEventPtr event =3D NULL; =20 - if ((newDef =3D virNetworkDefParseString(xml)) =3D=3D NULL) + if ((newDef =3D virNetworkDefParseString(xml, 0)) =3D=3D NULL) goto cleanup; =20 if (!(obj =3D virNetworkObjAssignDef(privconn->networks, newDef, 0))) diff --git a/src/vbox/vbox_network.c b/src/vbox/vbox_network.c index 50a7a56303..eb47abaf00 100644 --- a/src/vbox/vbox_network.c +++ b/src/vbox/vbox_network.c @@ -375,7 +375,7 @@ vboxNetworkDefineCreateXML(virConnectPtr conn, const ch= ar *xml, bool start) PRUnichar *networkNameUtf16 =3D NULL; char *networkNameUtf8 =3D NULL; IHostNetworkInterface *networkInterface =3D NULL; - virNetworkDefPtr def =3D virNetworkDefParseString(xml); + virNetworkDefPtr def =3D virNetworkDefParseString(xml, 0); virNetworkIPDefPtr ipdef =3D NULL; unsigned char uuid[VIR_UUID_BUFLEN]; vboxIID vboxnetiid; diff --git a/tests/networkxml2conftest.c b/tests/networkxml2conftest.c index 8e7751e36b..569763f0e6 100644 --- a/tests/networkxml2conftest.c +++ b/tests/networkxml2conftest.c @@ -29,7 +29,7 @@ testCompareXMLToConfFiles(const char *inxml, const char *= outconf, dnsmasqCapsPtr char *pidfile =3D NULL; dnsmasqContext *dctx =3D NULL; =20 - if (!(def =3D virNetworkDefParseFile(inxml))) + if (!(def =3D virNetworkDefParseFile(inxml, 0))) goto fail; =20 if (!(obj =3D virNetworkObjNew())) diff --git a/tests/networkxml2firewalltest.c b/tests/networkxml2firewalltes= t.c index 242b645767..49f0300a29 100644 --- a/tests/networkxml2firewalltest.c +++ b/tests/networkxml2firewalltest.c @@ -55,7 +55,7 @@ static int testCompareXMLToArgvFiles(const char *xml, =20 virCommandSetDryRun(&buf, NULL, NULL); =20 - if (!(def =3D virNetworkDefParseFile(xml))) + if (!(def =3D virNetworkDefParseFile(xml, 0))) goto cleanup; =20 if (networkAddFirewallRules(def) < 0) diff --git a/tests/networkxml2xmltest.c b/tests/networkxml2xmltest.c index eb7db766fa..7828995df1 100644 --- a/tests/networkxml2xmltest.c +++ b/tests/networkxml2xmltest.c @@ -33,7 +33,7 @@ testCompareXMLToXMLFiles(const char *inxml, const char *o= utxml, testCompareNetXML2XMLResult result =3D TEST_COMPARE_NET_XML2XML_RESULT= _SUCCESS; virNetworkDefPtr dev =3D NULL; =20 - if (!(dev =3D virNetworkDefParseFile(inxml))) { + if (!(dev =3D virNetworkDefParseFile(inxml, 0))) { result =3D TEST_COMPARE_NET_XML2XML_RESULT_FAIL_PARSE; goto cleanup; } diff --git a/tests/networkxml2xmlupdatetest.c b/tests/networkxml2xmlupdatet= est.c index b4b44ceff3..dfb21c0064 100644 --- a/tests/networkxml2xmlupdatetest.c +++ b/tests/networkxml2xmlupdatetest.c @@ -30,7 +30,7 @@ testCompareXMLToXMLFiles(const char *netxml, const char *= updatexml, if (virTestLoadFile(updatexml, &updateXmlData) < 0) goto error; =20 - if (!(def =3D virNetworkDefParseFile(netxml))) + if (!(def =3D virNetworkDefParseFile(netxml, 0))) goto fail; =20 if (virNetworkDefUpdateSection(def, command, section, parentIndex, --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list