From 37a11c37269e87b6a5aeffa63ada7416f3271e0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1n=20Tomko?= Date: Tue, 20 Aug 2019 22:14:13 +0200 Subject: [PATCH] util: xml: introduce virXMLNamespaceRegister MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- src/util/virxml.c | 19 +++++++++++++++++++ src/util/virxml.h | 3 +++ 2 files changed, 22 insertions(+) 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);