mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-10-05 22:05:47 +00:00
nwfilter_conf: add validation against schema in define
This patch also includes propagation of flags into the virNWFilterDefParse(). Signed-off-by: Kristina Hanicova <khanicov@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
499c0e4ecf
commit
1b0caedb72
@ -2739,12 +2739,14 @@ virNWFilterDefParseNode(xmlDocPtr xml,
|
|||||||
|
|
||||||
static virNWFilterDef *
|
static virNWFilterDef *
|
||||||
virNWFilterDefParse(const char *xmlStr,
|
virNWFilterDefParse(const char *xmlStr,
|
||||||
const char *filename)
|
const char *filename,
|
||||||
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
virNWFilterDef *def = NULL;
|
virNWFilterDef *def = NULL;
|
||||||
g_autoptr(xmlDoc) xml = NULL;
|
g_autoptr(xmlDoc) xml = NULL;
|
||||||
|
|
||||||
if ((xml = virXMLParse(filename, xmlStr, _("(nwfilter_definition)"), NULL, false))) {
|
if ((xml = virXMLParse(filename, xmlStr, _("(nwfilter_definition)"), "nwfilter.rng",
|
||||||
|
flags & VIR_NWFILTER_DEFINE_VALIDATE))) {
|
||||||
def = virNWFilterDefParseNode(xml, xmlDocGetRootElement(xml));
|
def = virNWFilterDefParseNode(xml, xmlDocGetRootElement(xml));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2753,16 +2755,17 @@ virNWFilterDefParse(const char *xmlStr,
|
|||||||
|
|
||||||
|
|
||||||
virNWFilterDef *
|
virNWFilterDef *
|
||||||
virNWFilterDefParseString(const char *xmlStr)
|
virNWFilterDefParseString(const char *xmlStr,
|
||||||
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
return virNWFilterDefParse(xmlStr, NULL);
|
return virNWFilterDefParse(xmlStr, NULL, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
virNWFilterDef *
|
virNWFilterDef *
|
||||||
virNWFilterDefParseFile(const char *filename)
|
virNWFilterDefParseFile(const char *filename)
|
||||||
{
|
{
|
||||||
return virNWFilterDefParse(NULL, filename);
|
return virNWFilterDefParse(NULL, filename, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -546,7 +546,8 @@ virNWFilterSaveConfig(const char *configDir,
|
|||||||
virNWFilterDef *def);
|
virNWFilterDef *def);
|
||||||
|
|
||||||
virNWFilterDef *
|
virNWFilterDef *
|
||||||
virNWFilterDefParseString(const char *xml);
|
virNWFilterDefParseString(const char *xml,
|
||||||
|
unsigned int flags);
|
||||||
|
|
||||||
virNWFilterDef *
|
virNWFilterDef *
|
||||||
virNWFilterDefParseFile(const char *filename);
|
virNWFilterDefParseFile(const char *filename);
|
||||||
|
@ -547,7 +547,7 @@ nwfilterDefineXMLFlags(virConnectPtr conn,
|
|||||||
nwfilterDriverLock();
|
nwfilterDriverLock();
|
||||||
virNWFilterWriteLockFilterUpdates();
|
virNWFilterWriteLockFilterUpdates();
|
||||||
|
|
||||||
if (!(def = virNWFilterDefParseString(xml)))
|
if (!(def = virNWFilterDefParseString(xml, 0)))
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
if (virNWFilterDefineXMLFlagsEnsureACL(conn, def) < 0)
|
if (virNWFilterDefineXMLFlagsEnsureACL(conn, def) < 0)
|
||||||
|
Loading…
Reference in New Issue
Block a user