mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
conf: add validation and propagate flags into virInterfaceDefParse()
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>
This commit is contained in:
parent
609dfaf43e
commit
5e71d3ad57
@ -819,12 +819,14 @@ virInterfaceDefParseNode(xmlDocPtr xml,
|
|||||||
|
|
||||||
static virInterfaceDef *
|
static virInterfaceDef *
|
||||||
virInterfaceDefParse(const char *xmlStr,
|
virInterfaceDefParse(const char *xmlStr,
|
||||||
const char *filename)
|
const char *filename,
|
||||||
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
g_autoptr(xmlDoc) xml = NULL;
|
g_autoptr(xmlDoc) xml = NULL;
|
||||||
virInterfaceDef *def = 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));
|
def = virInterfaceDefParseNode(xml, xmlDocGetRootElement(xml));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -833,16 +835,17 @@ virInterfaceDefParse(const char *xmlStr,
|
|||||||
|
|
||||||
|
|
||||||
virInterfaceDef *
|
virInterfaceDef *
|
||||||
virInterfaceDefParseString(const char *xmlStr)
|
virInterfaceDefParseString(const char *xmlStr,
|
||||||
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
return virInterfaceDefParse(xmlStr, NULL);
|
return virInterfaceDefParse(xmlStr, NULL, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
virInterfaceDef *
|
virInterfaceDef *
|
||||||
virInterfaceDefParseFile(const char *filename)
|
virInterfaceDefParseFile(const char *filename)
|
||||||
{
|
{
|
||||||
return virInterfaceDefParse(NULL, filename);
|
return virInterfaceDefParse(NULL, filename, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -155,7 +155,8 @@ void
|
|||||||
virInterfaceDefFree(virInterfaceDef *def);
|
virInterfaceDefFree(virInterfaceDef *def);
|
||||||
|
|
||||||
virInterfaceDef *
|
virInterfaceDef *
|
||||||
virInterfaceDefParseString(const char *xmlStr);
|
virInterfaceDefParseString(const char *xmlStr,
|
||||||
|
unsigned int flags);
|
||||||
|
|
||||||
virInterfaceDef *
|
virInterfaceDef *
|
||||||
virInterfaceDefParseFile(const char *filename);
|
virInterfaceDefParseFile(const char *filename);
|
||||||
|
@ -373,7 +373,7 @@ virInterfaceObjListCloneCb(void *payload,
|
|||||||
if (!(xml = virInterfaceDefFormat(srcObj->def)))
|
if (!(xml = virInterfaceDefFormat(srcObj->def)))
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
if (!(backup = virInterfaceDefParseString(xml)))
|
if (!(backup = virInterfaceDefParseString(xml, 0)))
|
||||||
goto error;
|
goto error;
|
||||||
VIR_FREE(xml);
|
VIR_FREE(xml);
|
||||||
|
|
||||||
|
@ -862,7 +862,7 @@ static char *netcfInterfaceGetXMLDesc(virInterfacePtr ifinfo,
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
ifacedef = virInterfaceDefParseString(xmlstr);
|
ifacedef = virInterfaceDefParseString(xmlstr, 0);
|
||||||
if (!ifacedef) {
|
if (!ifacedef) {
|
||||||
/* error was already reported */
|
/* error was already reported */
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
@ -898,7 +898,7 @@ static virInterfacePtr netcfInterfaceDefineXML(virConnectPtr conn,
|
|||||||
|
|
||||||
virObjectLock(driver);
|
virObjectLock(driver);
|
||||||
|
|
||||||
ifacedef = virInterfaceDefParseString(xml);
|
ifacedef = virInterfaceDefParseString(xml, 0);
|
||||||
if (!ifacedef) {
|
if (!ifacedef) {
|
||||||
/* error was already reported */
|
/* error was already reported */
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
@ -6159,7 +6159,7 @@ testInterfaceDefineXML(virConnectPtr conn,
|
|||||||
virCheckFlags(0, NULL);
|
virCheckFlags(0, NULL);
|
||||||
|
|
||||||
virObjectLock(privconn);
|
virObjectLock(privconn);
|
||||||
if ((def = virInterfaceDefParseString(xmlStr)) == NULL)
|
if ((def = virInterfaceDefParseString(xmlStr, 0)) == NULL)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
if ((obj = virInterfaceObjListAssignDef(privconn->ifaces, def)) == NULL)
|
if ((obj = virInterfaceObjListAssignDef(privconn->ifaces, def)) == NULL)
|
||||||
|
@ -24,7 +24,7 @@ testCompareXMLToXMLFiles(const char *xml)
|
|||||||
if (virTestLoadFile(xml, &xmlData) < 0)
|
if (virTestLoadFile(xml, &xmlData) < 0)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
if (!(dev = virInterfaceDefParseString(xmlData)))
|
if (!(dev = virInterfaceDefParseString(xmlData, 0)))
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
if (!(actual = virInterfaceDefFormat(dev)))
|
if (!(actual = virInterfaceDefFormat(dev)))
|
||||||
|
Loading…
Reference in New Issue
Block a user