On 11.07.2016 11:45, Daniel P. Berrange wrote: > Signed-off-by: Daniel P. Berrange <berrange@xxxxxxxxxx> > --- > 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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list