src: add 'schema' and 'validate' variable to virXMLParseHelper()

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>
This commit is contained in:
Kristina Hanicova 2021-08-11 14:36:44 +02:00 committed by Ján Tomko
parent 4de7ccc4d8
commit f43c27960e
19 changed files with 36 additions and 30 deletions

View File

@ -281,7 +281,7 @@ virDomainBackupDefParseString(const char *xmlStr,
g_autoptr(xmlDoc) xml = NULL;
int keepBlanksDefault = xmlKeepBlanksDefault(0);
if ((xml = virXMLParse(NULL, xmlStr, _("(domain_backup)")))) {
if ((xml = virXMLParse(NULL, xmlStr, _("(domain_backup)"), NULL, false))) {
xmlKeepBlanksDefault(keepBlanksDefault);
ret = virDomainBackupDefParseNode(xml, xmlDocGetRootElement(xml),
xmlopt, flags);

View File

@ -226,7 +226,7 @@ virDomainCheckpointDefParseString(const char *xmlStr,
xmlDocPtr xml;
int keepBlanksDefault = xmlKeepBlanksDefault(0);
if ((xml = virXMLParse(NULL, xmlStr, _("(domain_checkpoint)")))) {
if ((xml = virXMLParse(NULL, xmlStr, _("(domain_checkpoint)"), NULL, false))) {
xmlKeepBlanksDefault(keepBlanksDefault);
ret = virDomainCheckpointDefParseNode(xml, xmlDocGetRootElement(xml),
xmlopt, parseOpaque, flags);

View File

@ -20400,7 +20400,7 @@ virDomainDefParse(const char *xmlStr,
virDomainDef *def = NULL;
int keepBlanksDefault = xmlKeepBlanksDefault(0);
xmlNodePtr root;
if (!(xml = virXMLParse(filename, xmlStr, _("(domain_definition)"))))
if (!(xml = virXMLParse(filename, xmlStr, _("(domain_definition)"), NULL, false)))
goto cleanup;
root = xmlDocGetRootElement(xml);

View File

@ -824,7 +824,7 @@ virInterfaceDefParse(const char *xmlStr,
xmlDocPtr xml;
virInterfaceDef *def = NULL;
if ((xml = virXMLParse(filename, xmlStr, _("(interface_definition)")))) {
if ((xml = virXMLParse(filename, xmlStr, _("(interface_definition)"), NULL, false))) {
def = virInterfaceDefParseNode(xml, xmlDocGetRootElement(xml));
xmlFreeDoc(xml);
}

View File

@ -2091,7 +2091,7 @@ virNetworkDefParse(const char *xmlStr,
virNetworkDef *def = NULL;
int keepBlanksDefault = xmlKeepBlanksDefault(0);
if ((xml = virXMLParse(filename, xmlStr, _("(network_definition)"))))
if ((xml = virXMLParse(filename, xmlStr, _("(network_definition)"), NULL, false)))
def = virNetworkDefParseNode(xml, xmlDocGetRootElement(xml), xmlopt);
xmlKeepBlanksDefault(keepBlanksDefault);

View File

@ -2177,7 +2177,7 @@ virNodeDeviceDefParse(const char *str,
xmlDocPtr xml;
g_autoptr(virNodeDeviceDef) def = NULL;
if ((xml = virXMLParse(filename, str, _("(node_device_definition)")))) {
if ((xml = virXMLParse(filename, str, _("(node_device_definition)"), NULL, false))) {
def = virNodeDeviceDefParseNode(xml, xmlDocGetRootElement(xml),
create, virt_type);
xmlFreeDoc(xml);

View File

@ -2744,7 +2744,7 @@ virNWFilterDefParse(const char *xmlStr,
virNWFilterDef *def = NULL;
xmlDocPtr xml;
if ((xml = virXMLParse(filename, xmlStr, _("(nwfilter_definition)")))) {
if ((xml = virXMLParse(filename, xmlStr, _("(nwfilter_definition)"), NULL, false))) {
def = virNWFilterDefParseNode(xml, xmlDocGetRootElement(xml));
xmlFreeDoc(xml);
}

View File

@ -196,7 +196,7 @@ virSecretDefParse(const char *xmlStr,
xmlDocPtr xml;
virSecretDef *ret = NULL;
if ((xml = virXMLParse(filename, xmlStr, _("(definition_of_secret)")))) {
if ((xml = virXMLParse(filename, xmlStr, _("(definition_of_secret)"), NULL, false))) {
ret = secretXMLParseNode(xml, xmlDocGetRootElement(xml));
xmlFreeDoc(xml);
}

View File

@ -462,7 +462,7 @@ virDomainSnapshotDefParseString(const char *xmlStr,
xmlDocPtr xml;
int keepBlanksDefault = xmlKeepBlanksDefault(0);
if ((xml = virXMLParse(NULL, xmlStr, _("(domain_snapshot)")))) {
if ((xml = virXMLParse(NULL, xmlStr, _("(domain_snapshot)"), NULL, false))) {
xmlKeepBlanksDefault(keepBlanksDefault);
ret = virDomainSnapshotDefParseNode(xml, xmlDocGetRootElement(xml),
xmlopt, parseOpaque,

View File

@ -1009,7 +1009,7 @@ virStoragePoolDefParse(const char *xmlStr,
virStoragePoolDef *ret = NULL;
xmlDocPtr xml;
if ((xml = virXMLParse(filename, xmlStr, _("(storage_pool_definition)")))) {
if ((xml = virXMLParse(filename, xmlStr, _("(storage_pool_definition)"), NULL, false))) {
ret = virStoragePoolDefParseNode(xml, xmlDocGetRootElement(xml));
xmlFreeDoc(xml);
}
@ -1478,7 +1478,7 @@ virStorageVolDefParse(virStoragePoolDef *pool,
virStorageVolDef *ret = NULL;
xmlDocPtr xml;
if ((xml = virXMLParse(filename, xmlStr, _("(storage_volume_definition)")))) {
if ((xml = virXMLParse(filename, xmlStr, _("(storage_volume_definition)"), NULL, false))) {
ret = virStorageVolDefParseNode(pool, xml, xmlDocGetRootElement(xml), flags);
xmlFreeDoc(xml);
}

View File

@ -297,7 +297,7 @@ virNetworkPortDefParse(const char *xmlStr,
virNetworkPortDef *def = NULL;
xmlDocPtr xml;
if ((xml = virXMLParse(filename, xmlStr, _("(networkport_definition)")))) {
if ((xml = virXMLParse(filename, xmlStr, _("(networkport_definition)"), NULL, false))) {
def = virNetworkPortDefParseNode(xml, xmlDocGetRootElement(xml));
xmlFreeDoc(xml);
}

View File

@ -188,7 +188,7 @@ virNWFilterBindingDefParse(const char *xmlStr,
virNWFilterBindingDef *def = NULL;
xmlDocPtr xml;
if ((xml = virXMLParse(filename, xmlStr, _("(nwfilterbinding_definition)")))) {
if ((xml = virXMLParse(filename, xmlStr, _("(nwfilterbinding_definition)"), NULL, false))) {
def = virNWFilterBindingDefParseNode(xml, xmlDocGetRootElement(xml));
xmlFreeDoc(xml);
}

View File

@ -265,7 +265,7 @@ virNWFilterBindingObjParse(const char *xmlStr,
virNWFilterBindingObj *obj = NULL;
xmlDocPtr xml;
if ((xml = virXMLParse(filename, xmlStr, _("(nwfilterbinding_status)")))) {
if ((xml = virXMLParse(filename, xmlStr, _("(nwfilterbinding_status)"), NULL, false))) {
obj = virNWFilterBindingObjParseNode(xml, xmlDocGetRootElement(xml));
xmlFreeDoc(xml);
}

View File

@ -832,7 +832,7 @@ testParseXMLDocFromFile(xmlNodePtr node, const char *file, const char *type)
if ((relFile = virXMLPropString(node, "file"))) {
absFile = testBuildFilename(file, relFile);
if (!(doc = virXMLParse(absFile, NULL, type)))
if (!(doc = virXMLParse(absFile, NULL, type, NULL, false)))
goto error;
ret = xmlCopyNode(xmlDocGetRootElement(doc), 1);

View File

@ -1096,6 +1096,8 @@ catchXMLError(void *ctx, const char *msg G_GNUC_UNUSED, ...)
* @url: URL of XML document for string parser
* @rootelement: Optional name of the expected root element
* @ctxt: optional pointer to populate with new context pointer
* @schemafile: unused
* @validate: unused
*
* Parse XML document provided either as a file or a string. The function
* guarantees that the XML document contains a root element.
@ -1111,7 +1113,9 @@ virXMLParseHelper(int domcode,
const char *xmlStr,
const char *url,
const char *rootelement,
xmlXPathContextPtr *ctxt)
xmlXPathContextPtr *ctxt,
const char *schemafile G_GNUC_UNUSED,
bool validate G_GNUC_UNUSED)
{
struct virParserData private;
g_autoptr(xmlParserCtxt) pctxt = NULL;

View File

@ -170,7 +170,9 @@ virXMLParseHelper(int domcode,
const char *xmlStr,
const char *url,
const char *rootelement,
xmlXPathContextPtr *ctxt);
xmlXPathContextPtr *ctxt,
const char *schemafile,
bool validate);
const char *
virXMLPickShellSafeComment(const char *str1,
@ -185,8 +187,8 @@ virXMLPickShellSafeComment(const char *str1,
*
* Return the parsed document object, or NULL on failure.
*/
#define virXMLParse(filename, xmlStr, url) \
virXMLParseHelper(VIR_FROM_THIS, filename, xmlStr, url, NULL, NULL)
#define virXMLParse(filename, xmlStr, url, schemafile, validate) \
virXMLParseHelper(VIR_FROM_THIS, filename, xmlStr, url, NULL, NULL, schemafile, validate)
/**
* virXMLParseString:
@ -198,7 +200,7 @@ virXMLPickShellSafeComment(const char *str1,
* Return the parsed document object, or NULL on failure.
*/
#define virXMLParseString(xmlStr, url) \
virXMLParseHelper(VIR_FROM_THIS, NULL, xmlStr, url, NULL, NULL)
virXMLParseHelper(VIR_FROM_THIS, NULL, xmlStr, url, NULL, NULL, NULL, false)
/**
* virXMLParseFile:
@ -209,7 +211,7 @@ virXMLPickShellSafeComment(const char *str1,
* Return the parsed document object, or NULL on failure.
*/
#define virXMLParseFile(filename) \
virXMLParseHelper(VIR_FROM_THIS, filename, NULL, NULL, NULL, NULL)
virXMLParseHelper(VIR_FROM_THIS, filename, NULL, NULL, NULL, NULL, NULL, false)
/**
* virXMLParseCtxt:
@ -224,7 +226,7 @@ virXMLPickShellSafeComment(const char *str1,
* Return the parsed document object, or NULL on failure.
*/
#define virXMLParseCtxt(filename, xmlStr, url, pctxt) \
virXMLParseHelper(VIR_FROM_THIS, filename, xmlStr, url, NULL, pctxt)
virXMLParseHelper(VIR_FROM_THIS, filename, xmlStr, url, NULL, pctxt, NULL, false)
/**
* virXMLParseStringCtxt:
@ -238,11 +240,11 @@ virXMLPickShellSafeComment(const char *str1,
* Return the parsed document object, or NULL on failure.
*/
#define virXMLParseStringCtxt(xmlStr, url, pctxt) \
virXMLParseHelper(VIR_FROM_THIS, NULL, xmlStr, url, NULL, pctxt)
virXMLParseHelper(VIR_FROM_THIS, NULL, xmlStr, url, NULL, pctxt, NULL, false)
/* virXMLParseStringCtxtRoot is same as above, except it also validates root node name */
#define virXMLParseStringCtxtRoot(xmlStr, url, rootnode, pctxt) \
virXMLParseHelper(VIR_FROM_THIS, NULL, xmlStr, url, rootnode, pctxt)
virXMLParseHelper(VIR_FROM_THIS, NULL, xmlStr, url, rootnode, pctxt, NULL, false)
/**
* virXMLParseFileCtxt:
@ -255,7 +257,7 @@ virXMLPickShellSafeComment(const char *str1,
* Return the parsed document object, or NULL on failure.
*/
#define virXMLParseFileCtxt(filename, pctxt) \
virXMLParseHelper(VIR_FROM_THIS, filename, NULL, NULL, NULL, pctxt)
virXMLParseHelper(VIR_FROM_THIS, filename, NULL, NULL, NULL, pctxt, NULL, false)
int
virXMLSaveFile(const char *path,

View File

@ -593,7 +593,7 @@ virVBoxSnapshotConfLoadVboxFile(const char *filePath,
machineDescription = g_new0(virVBoxSnapshotConfMachine, 1);
xml = virXMLParse(filePath, NULL, NULL);
xml = virXMLParse(filePath, NULL, NULL, NULL, false);
if (xml == NULL) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("Unable to parse the xml"));
@ -1230,7 +1230,7 @@ virVBoxSnapshotConfGetRWDisksPathsFromLibvirtXML(const char *filePath,
_("filePath is null"));
goto cleanup;
}
xml = virXMLParse(filePath, NULL, NULL);
xml = virXMLParse(filePath, NULL, NULL, NULL, false);
if (xml == NULL) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("Unable to parse the xml"));
@ -1292,7 +1292,7 @@ virVBoxSnapshotConfGetRODisksPathsFromLibvirtXML(const char *filePath,
_("filePath is null"));
goto cleanup;
}
xml = virXMLParse(filePath, NULL, NULL);
xml = virXMLParse(filePath, NULL, NULL, NULL, false);
if (xml == NULL) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("Unable to parse the xml"));

View File

@ -4595,7 +4595,7 @@ prlsdkParseSnapshotTree(const char *treexml)
if (*treexml == '\0')
return snapshots;
if (!(xml = virXMLParse(NULL, treexml, _("(snapshot_tree)"))))
if (!(xml = virXMLParse(NULL, treexml, _("(snapshot_tree)"), NULL, false)))
goto cleanup;
root = xmlDocGetRootElement(xml);

View File

@ -678,7 +678,7 @@ testCompareXMLToArgv(const void *data)
if (testCheckExclusiveFlags(info->flags) < 0)
goto cleanup;
if (!(xml = virXMLParse(info->infile, NULL, "(domain_definition)")))
if (!(xml = virXMLParse(info->infile, NULL, "(domain_definition)", NULL, false)))
goto cleanup;
root = xmlDocGetRootElement(xml);