From fd2a9dda8758e4273d503f66d8f04c67c20a85f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= Date: Fri, 20 Dec 2019 14:59:47 +0000 Subject: [PATCH] util: add helper API for getting URI parameters MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Michal Privoznik Signed-off-by: Daniel P. Berrangé --- src/libvirt_private.syms | 1 + src/util/viruri.c | 16 ++++++++++++++++ src/util/viruri.h | 2 ++ 3 files changed, 19 insertions(+) diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 907640b684..3608f73b4e 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -3334,6 +3334,7 @@ virTypedParamsValidate; virURIFormat; virURIFormatParams; virURIFree; +virURIGetParam; virURIParse; virURIResolveAlias; diff --git a/src/util/viruri.c b/src/util/viruri.c index 1b848bd336..f16ea16ac1 100644 --- a/src/util/viruri.c +++ b/src/util/viruri.c @@ -376,3 +376,19 @@ virURIResolveAlias(virConfPtr conf, const char *alias, char **uri) return ret; } + + +const char * +virURIGetParam(virURIPtr uri, const char *name) +{ + size_t i; + + for (i = 0; i < uri->paramsCount; i++) { + if (STREQ(uri->params[i].name, name)) + return uri->params[i].value; + } + + virReportError(VIR_ERR_INVALID_ARG, + _("Missing URI parameter '%s'"), name); + return NULL; +} diff --git a/src/util/viruri.h b/src/util/viruri.h index b7f845f41f..1735620a2f 100644 --- a/src/util/viruri.h +++ b/src/util/viruri.h @@ -62,4 +62,6 @@ void virURIFree(virURIPtr uri); G_DEFINE_AUTOPTR_CLEANUP_FUNC(virURI, virURIFree); int virURIResolveAlias(virConfPtr conf, const char *alias, char **uri); +const char *virURIGetParam(virURIPtr uri, const char *name); + #define VIR_URI_SERVER(uri) ((uri) && (uri)->server ? (uri)->server : "localhost")