[libvirt] [PATCH 06/16] libvirt: convert to typesafe virConf accessors
Michal Privoznik
mprivozn at redhat.com
Mon Jul 11 15:25:44 UTC 2016
On 11.07.2016 11:45, Daniel P. Berrange wrote:
> Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
> ---
> src/libvirt-admin.c | 66 ++++++++++++++++++++++++++++----------------------
> src/libvirt.c | 70 +++++++++++++++++++++++++++++------------------------
> 2 files changed, 76 insertions(+), 60 deletions(-)
>
> diff --git a/src/libvirt-admin.c b/src/libvirt-admin.c
> index f07cb10..9d1a219 100644
> --- a/src/libvirt-admin.c
> +++ b/src/libvirt-admin.c
> @@ -158,35 +158,32 @@ getSocketPath(virURIPtr uri)
> goto cleanup;
> }
>
> -static const char *
> -virAdmGetDefaultURI(virConfPtr conf)
> +static int
> +virAdmGetDefaultURI(virConfPtr conf, char **uristr)
> {
> - virConfValuePtr value = NULL;
> - const char *uristr = NULL;
> -
> - uristr = virGetEnvAllowSUID("LIBVIRT_ADMIN_DEFAULT_URI");
> - if (uristr && *uristr) {
> - VIR_DEBUG("Using LIBVIRT_ADMIN_DEFAULT_URI '%s'", uristr);
> - } else if ((value = virConfGetValue(conf, "admin_uri_default"))) {
> - if (value->type != VIR_CONF_STRING) {
> - virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> - _("Expected a string for 'admin_uri_default' config "
> - "parameter"));
> + const char *defname = virGetEnvAllowSUID("LIBVIRT_ADMIN_DEFAULT_URI");
> + if (defname && *defname) {
> + if (VIR_STRDUP(*uristr, defname) < 0)
> return NULL;
This function is now returning an int, therefore s/NULL/-1/.
> - }
> -
> - VIR_DEBUG("Using config file uri '%s'", value->str);
> - uristr = value->str;
> + VIR_DEBUG("Using LIBVIRT_ADMIN_DEFAULT_URI '%s'", *uristr);
> } else {
> - /* Since we can't probe connecting via any hypervisor driver as libvirt
> - * does, if no explicit URI was given and neither the environment
> - * variable, nor the configuration parameter had previously been set,
> - * we set the default admin server URI to 'libvirtd://system'.
> - */
> - uristr = "libvirtd:///system";
> + if (virConfGetValueString(conf, "admin_uri_default", uristr) < 0)
> + return -1;
> +
> + if (*uristr) {
> + VIR_DEBUG("Using config file uri '%s'", *uristr);
> + } else {
> + /* Since we can't probe connecting via any hypervisor driver as libvirt
> + * does, if no explicit URI was given and neither the environment
> + * variable, nor the configuration parameter had previously been set,
> + * we set the default admin server URI to 'libvirtd://system'.
> + */
> + if (VIR_STRDUP(*uristr, "libvirtd:///system") < 0)
> + return -1;
> + }
> }
>
> - return uristr;
> + return 0;
> }
>
Michal
More information about the libvir-list
mailing list