]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
conf: add validation and propagate flags into virInterfaceDefParse()
authorKristina Hanicova <khanicov@redhat.com>
Fri, 20 Aug 2021 11:28:50 +0000 (13:28 +0200)
committerJán Tomko <jtomko@redhat.com>
Fri, 20 Aug 2021 13:41:21 +0000 (15:41 +0200)
We need to know if validation flag is present in order to
validate given XML against schema in virXMLParse().

Signed-off-by: Kristina Hanicova <khanicov@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
src/conf/interface_conf.c
src/conf/interface_conf.h
src/conf/virinterfaceobj.c
src/interface/interface_backend_netcf.c
src/test/test_driver.c
tests/interfacexml2xmltest.c

index c371a252a861e701dd5b97da52408cb28a7f6804..b45dc3737934631bbb9888909a8eadabf199edbb 100644 (file)
@@ -819,12 +819,14 @@ virInterfaceDefParseNode(xmlDocPtr xml,
 
 static virInterfaceDef *
 virInterfaceDefParse(const char *xmlStr,
-                     const char *filename)
+                     const char *filename,
+                     unsigned int flags)
 {
     g_autoptr(xmlDoc) xml = NULL;
     virInterfaceDef *def = NULL;
 
-    if ((xml = virXMLParse(filename, xmlStr, _("(interface_definition)"), NULL, false))) {
+    if ((xml = virXMLParse(filename, xmlStr, _("(interface_definition)"), "interface.rng",
+                           flags & VIR_INTERFACE_DEFINE_VALIDATE))) {
         def = virInterfaceDefParseNode(xml, xmlDocGetRootElement(xml));
     }
 
@@ -833,16 +835,17 @@ virInterfaceDefParse(const char *xmlStr,
 
 
 virInterfaceDef *
-virInterfaceDefParseString(const char *xmlStr)
+virInterfaceDefParseString(const char *xmlStr,
+                           unsigned int flags)
 {
-    return virInterfaceDefParse(xmlStr, NULL);
+    return virInterfaceDefParse(xmlStr, NULL, flags);
 }
 
 
 virInterfaceDef *
 virInterfaceDefParseFile(const char *filename)
 {
-    return virInterfaceDefParse(NULL, filename);
+    return virInterfaceDefParse(NULL, filename, 0);
 }
 
 
index f5e802736b62df951773b2c66e3b24c2ad4cb2b1..ea92e0fb31cc082132648b5b79e420677f00e045 100644 (file)
@@ -155,7 +155,8 @@ void
 virInterfaceDefFree(virInterfaceDef *def);
 
 virInterfaceDef *
-virInterfaceDefParseString(const char *xmlStr);
+virInterfaceDefParseString(const char *xmlStr,
+                           unsigned int flags);
 
 virInterfaceDef *
 virInterfaceDefParseFile(const char *filename);
index a73208f1fc6d57e900959f103b49bdd073966304..9439bb3d0bcfedb9d9f3e7d5f5eded4c044583a7 100644 (file)
@@ -373,7 +373,7 @@ virInterfaceObjListCloneCb(void *payload,
     if (!(xml = virInterfaceDefFormat(srcObj->def)))
         goto error;
 
-    if (!(backup = virInterfaceDefParseString(xml)))
+    if (!(backup = virInterfaceDefParseString(xml, 0)))
         goto error;
     VIR_FREE(xml);
 
index 416e0af36f41a6775a707788b4f7980af8099845..9f93cdd65702b622aa14529666f8dfd94dd49672 100644 (file)
@@ -862,7 +862,7 @@ static char *netcfInterfaceGetXMLDesc(virInterfacePtr ifinfo,
         goto cleanup;
     }
 
-    ifacedef = virInterfaceDefParseString(xmlstr);
+    ifacedef = virInterfaceDefParseString(xmlstr, 0);
     if (!ifacedef) {
         /* error was already reported */
         goto cleanup;
@@ -898,7 +898,7 @@ static virInterfacePtr netcfInterfaceDefineXML(virConnectPtr conn,
 
     virObjectLock(driver);
 
-    ifacedef = virInterfaceDefParseString(xml);
+    ifacedef = virInterfaceDefParseString(xml, 0);
     if (!ifacedef) {
         /* error was already reported */
         goto cleanup;
index 10a1767542e0cc6d175e8161ab8594876ad92d88..450510ee54671d109641cac38fe25a3f2c008dd7 100644 (file)
@@ -6159,7 +6159,7 @@ testInterfaceDefineXML(virConnectPtr conn,
     virCheckFlags(0, NULL);
 
     virObjectLock(privconn);
-    if ((def = virInterfaceDefParseString(xmlStr)) == NULL)
+    if ((def = virInterfaceDefParseString(xmlStr, 0)) == NULL)
         goto cleanup;
 
     if ((obj = virInterfaceObjListAssignDef(privconn->ifaces, def)) == NULL)
index 07d179e3a37d16b7ac2ddc91e64115ad2907924a..3785467f8472bf3d3c6fb1e5e6863d22ed1ec123 100644 (file)
@@ -24,7 +24,7 @@ testCompareXMLToXMLFiles(const char *xml)
     if (virTestLoadFile(xml, &xmlData) < 0)
         goto fail;
 
-    if (!(dev = virInterfaceDefParseString(xmlData)))
+    if (!(dev = virInterfaceDefParseString(xmlData, 0)))
         goto fail;
 
     if (!(actual = virInterfaceDefFormat(dev)))