[PATCH v2 7/8] viruri: Introduce virURIParamsSetIgnore()

Michal Privoznik mprivozn at redhat.com
Wed Feb 8 15:19:13 UTC 2023


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 at redhat.com>
Reviewed-by: Peter Krempa <pkrempa at 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 54db0bda06..3af2e54565 100644
--- a/src/util/viruri.c
+++ b/src/util/viruri.c
@@ -422,3 +422,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 4f27fa26d2..ad00570b7f 100644
--- a/src/util/viruri.h
+++ b/src/util/viruri.h
@@ -61,4 +61,6 @@ 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")
-- 
2.39.1



More information about the libvir-list mailing list