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:
Kristina Hanicova 2021-08-20 13:57:08 +02:00 committed by Michal Privoznik
parent 499c0e4ecf
commit 1b0caedb72
3 changed files with 11 additions and 7 deletions

View File

@ -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);
} }

View File

@ -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);

View File

@ -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)