[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