[libvirt] [PATCH v3 33/48] admin: add ability to connect to the per-driver daemon sockets

Andrea Bolognani abologna at redhat.com
Tue Jul 30 14:21:37 UTC 2019


On Mon, 2019-07-29 at 18:11 +0100, Daniel P. Berrangé wrote:
> +++ b/src/libvirt-admin.c
> @@ -127,27 +123,29 @@ getSocketPath(virURIPtr uri)
>          if (STREQ_NULLABLE(uri->path, "/system")) {
> -            if (virAsprintf(&sock_path, LOCALSTATEDIR "/run/libvirt/%s",
> -                            sockbase) < 0)
> +            if (virAsprintf(&sock_path, "%s/run/libvirt/%s-admin-sock",
> +                            LOCALSTATEDIR,
> +                            legacy ? "libvirt" : uri->scheme) < 0)
>                  goto error;
>          } else if (STREQ_NULLABLE(uri->path, "/session")) {
> -            if (!rundir || virAsprintf(&sock_path, "%s/%s", rundir,
> -                                       sockbase) < 0)
> +            if (!rundir || virAsprintf(&sock_path, "%s/%s-admin-sock", rundir,
> +                                       legacy ? "libvirt" : uri->scheme) < 0)
>                  goto error;

I'm not sure why I didn't suggest this during the previous review
round, but you could also do something like

  VIR_AUTOFREE(char *) sockbase = NULL;

  /* ... */

  if (legacy) {
      if (VIR_STRDUP(sockbase, "libvirt-admin-sock") < 0)
          goto error;
  } else {
      if (virAsprintf(&sockbase, "%s-admin-sock", uri->scheme) < 0)
          goto error;
  }

or even

  VIR_AUTOFREE(char *) sockbase = NULL;

  /* ... */

  if (virAsprintf(&sockbase, "%s-admin-sock",
                  legacy ? "libvirt" : uri->scheme) < 0) {
      goto error;
  }

and then keep using sockbase when building sock_path, getting rid of
the duplicated Elvis operator in the process.

But either version works, really.

-- 
Andrea Bolognani / Red Hat / Virtualization




More information about the libvir-list mailing list