The aim of this helper is to manipulate the .ignore value for
given list of parameters. For instance:
virURIParamsSetIgnore(uri, false, {"mode", "socket", NULL});
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/libvirt_private.syms | 1 +
src/util/viruri.c | 18 ++++++++++++++++++
src/util/viruri.h | 2 ++
3 files changed, 21 insertions(+)
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 7ca8b472be..97c3d86217 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -3560,6 +3560,7 @@ virURIFormat;
virURIFormatParams;
virURIFree;
virURIGetParam;
+virURIParamsSetIgnore;
virURIParse;
virURIResolveAlias;
diff --git a/src/util/viruri.c b/src/util/viruri.c
index 79492e87ce..85a9355918 100644
--- a/src/util/viruri.c
+++ b/src/util/viruri.c
@@ -409,3 +409,21 @@ virURICheckUnixSocket(virURI *uri)
return false;
}
+
+
+void
+virURIParamsSetIgnore(virURI *uri,
+ bool ignore,
+ const char *names[])
+{
+ size_t i;
+
+ for (i = 0; i < uri->paramsCount; i++) {
+ size_t j;
+
+ for (j = 0; names[j]; j++) {
+ if (STRCASEEQ(uri->params[i].name, names[j]))
+ uri->params[i].ignore = ignore;
+ }
+ }
+}
diff --git a/src/util/viruri.h b/src/util/viruri.h
index 7e4f95a2b1..de59e7f0f8 100644
--- a/src/util/viruri.h
+++ b/src/util/viruri.h
@@ -61,6 +61,8 @@ const char *virURIGetParam(virURI *uri, const char *name);
bool virURICheckUnixSocket(virURI *uri);
+void virURIParamsSetIgnore(virURI *uri, bool ignore, const char *names[]);
+
#define VIR_URI_SERVER(uri) ((uri) && (uri)->server ? (uri)->server :
"localhost")
/* helper macros to ease extraction of arguments from the URI */
--
2.39.1