From: Ján Tomko Date: Tue, 20 Aug 2019 20:14:13 +0000 (+0200) Subject: util: xml: introduce virXMLNamespaceRegister X-Git-Tag: v5.7.0-rc1~142 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=37a11c37269e87b6a5aeffa63ada7416f3271e0f;p=thirdparty%2Flibvirt.git util: xml: introduce virXMLNamespaceRegister A wrapper around xmlXPathRegisterNs that will save us from having to include xpathInternals.h everywhere we want to use a custom namespace and open-coding the strings already contained in virXMLNamespace. Signed-off-by: Ján Tomko Reviewed-by: Jiri Denemark --- diff --git a/src/util/virxml.c b/src/util/virxml.c index 02693d14ed..84b824f432 100644 --- a/src/util/virxml.c +++ b/src/util/virxml.c @@ -24,6 +24,8 @@ #include /* for isnan() */ #include +#include + #include "virerror.h" #include "virxml.h" #include "virbuffer.h" @@ -1416,3 +1418,20 @@ virXMLNamespaceFormatNS(virBufferPtr buf, { virBufferAsprintf(buf, " xmlns:%s='%s'", ns->prefix, ns->href()); } + + +int +virXMLNamespaceRegister(xmlXPathContextPtr ctxt, + virXMLNamespace const *ns) +{ + if (xmlXPathRegisterNs(ctxt, + BAD_CAST ns->prefix, + BAD_CAST ns->href()) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("Failed to register xml namespace '%s'"), + ns->href()); + return -1; + } + + return 0; +} diff --git a/src/util/virxml.h b/src/util/virxml.h index cdea116196..be2abd23f7 100644 --- a/src/util/virxml.h +++ b/src/util/virxml.h @@ -265,3 +265,6 @@ typedef virXMLNamespace *virXMLNamespacePtr; void virXMLNamespaceFormatNS(virBufferPtr buf, virXMLNamespace const *ns); +int +virXMLNamespaceRegister(xmlXPathContextPtr ctxt, + virXMLNamespace const *ns);