]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
domain_conf: replace validation with variables passed to virXMLParse()
authorKristina Hanicova <khanicov@redhat.com>
Wed, 11 Aug 2021 12:36:46 +0000 (14:36 +0200)
committerJán Tomko <jtomko@redhat.com>
Thu, 12 Aug 2021 11:12:29 +0000 (13:12 +0200)
virXMLParse() now allows to validate xml against schema directly,
eliminating the need to do it individually.

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/domain_conf.c

index b996a0cc3c1ce28cd304b0fc198547bf03b4eba4..492d5524ec5d2ece1cf6b12e7d27e080cadab348 100644 (file)
@@ -19515,7 +19515,7 @@ virDomainDefControllersParse(virDomainDef *def,
 }
 
 static virDomainDef *
-virDomainDefParseXML(xmlDocPtr xml,
+virDomainDefParseXML(xmlDocPtr xml G_GNUC_UNUSED,
                      xmlXPathContextPtr ctxt,
                      virDomainXMLOption *xmlopt,
                      unsigned int flags)
@@ -19529,18 +19529,6 @@ virDomainDefParseXML(xmlDocPtr xml,
     g_autofree xmlNodePtr *nodes = NULL;
     g_autofree char *tmp = NULL;
 
-    if (flags & VIR_DOMAIN_DEF_PARSE_VALIDATE_SCHEMA) {
-        g_autofree char *schema = NULL;
-
-        schema = virFileFindResource("domain.rng",
-                                     abs_top_srcdir "/docs/schemas",
-                                     PKGDATADIR "/schemas");
-        if (!schema)
-            return NULL;
-        if (virXMLValidateAgainstSchema(schema, xml) < 0)
-            return NULL;
-    }
-
     if (!(def = virDomainDefNew()))
         return NULL;
 
@@ -20400,7 +20388,8 @@ virDomainDefParse(const char *xmlStr,
     virDomainDef *def = NULL;
     int keepBlanksDefault = xmlKeepBlanksDefault(0);
     xmlNodePtr root;
-    if (!(xml = virXMLParse(filename, xmlStr, _("(domain_definition)"), NULL, false)))
+    if (!(xml = virXMLParse(filename, xmlStr, _("(domain_definition)"), "domain.rng",
+                            flags & VIR_DOMAIN_DEF_PARSE_VALIDATE_SCHEMA)))
         goto cleanup;
 
     root = xmlDocGetRootElement(xml);