]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
conf: virnwfilterbindingdef: add validation against schema in create
authorKristina Hanicova <khanicov@redhat.com>
Thu, 26 Aug 2021 12:32:33 +0000 (14:32 +0200)
committerJán Tomko <jtomko@redhat.com>
Mon, 6 Sep 2021 15:08:59 +0000 (17:08 +0200)
We need to validate the XML against schema if option '--validate'
was passed to the virsh command. This patch also includes
propagation of flags into the virNWFilterBindingDefParse().

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/virnwfilterbindingdef.c
src/conf/virnwfilterbindingdef.h
src/nwfilter/nwfilter_driver.c

index 5f671030bb657666b1d84448282ab78d4def0274..488fdbceabf36c2da42bd271e86fef81831c50b9 100644 (file)
@@ -178,12 +178,15 @@ virNWFilterBindingDefParseNode(xmlDocPtr xml,
 
 static virNWFilterBindingDef *
 virNWFilterBindingDefParse(const char *xmlStr,
-                           const char *filename)
+                           const char *filename,
+                           unsigned int flags)
 {
     virNWFilterBindingDef *def = NULL;
     g_autoptr(xmlDoc) xml = NULL;
 
-    if ((xml = virXMLParse(filename, xmlStr, _("(nwfilterbinding_definition)"), NULL, false))) {
+    if ((xml = virXMLParse(filename, xmlStr, _("(nwfilterbinding_definition)"),
+                           "nwfilterbinding.rng",
+                           flags & VIR_NWFILTER_BINDING_CREATE_VALIDATE))) {
         def = virNWFilterBindingDefParseNode(xml, xmlDocGetRootElement(xml));
     }
 
@@ -192,16 +195,17 @@ virNWFilterBindingDefParse(const char *xmlStr,
 
 
 virNWFilterBindingDef *
-virNWFilterBindingDefParseString(const char *xmlStr)
+virNWFilterBindingDefParseString(const char *xmlStr,
+                                 unsigned int flags)
 {
-    return virNWFilterBindingDefParse(xmlStr, NULL);
+    return virNWFilterBindingDefParse(xmlStr, NULL, flags);
 }
 
 
 virNWFilterBindingDef *
 virNWFilterBindingDefParseFile(const char *filename)
 {
-    return virNWFilterBindingDefParse(NULL, filename);
+    return virNWFilterBindingDefParse(NULL, filename, 0);
 }
 
 
index 68d531b75d1cd13c0f7be9fda545dc2ff019dd00..4bf0f252f8dcc261c78aa3583be8dc89228bd3f1 100644 (file)
@@ -51,7 +51,8 @@ virNWFilterBindingDefParseNode(xmlDocPtr xml,
                                xmlNodePtr root);
 
 virNWFilterBindingDef *
-virNWFilterBindingDefParseString(const char *xml);
+virNWFilterBindingDefParseString(const char *xml,
+                                 unsigned int flags);
 
 virNWFilterBindingDef *
 virNWFilterBindingDefParseFile(const char *filename);
index 2712baa73f5e4fc2053bfeb50125c3994086097c..1d4567855e16fcda5e9889c5ab7b859c913a32d4 100644 (file)
@@ -745,7 +745,7 @@ nwfilterBindingCreateXML(virConnectPtr conn,
         return NULL;
     }
 
-    def = virNWFilterBindingDefParseString(xml);
+    def = virNWFilterBindingDefParseString(xml, 0);
     if (!def)
         return NULL;