[libvirt] [PATCH 26/29] remote: refactor the code for choosing the UNIX socket path

Daniel P. Berrangé berrange at redhat.com
Fri Jul 12 14:10:21 UTC 2019


On Fri, Jul 12, 2019 at 03:36:56PM +0200, Michal Privoznik wrote:
> On 7/11/19 6:05 PM, Daniel P. Berrangé wrote:
> > The ssh, libssh, libssh2 & unix transports all need to use a UNIX socket
> > path, and duplicate some of the same logic for error checking. Pull this
> > out into a separate method to increase code sharing.
> > 
> > Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
> > ---
> >   src/remote/remote_driver.c | 111 ++++++++++++-------------------------
> >   1 file changed, 36 insertions(+), 75 deletions(-)
> > 
> > diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c
> > index 87c184720c..c6905dffff 100644
> > --- a/src/remote/remote_driver.c
> > +++ b/src/remote/remote_driver.c
> > @@ -739,34 +739,35 @@ remoteConnectSupportsFeatureUnlocked(virConnectPtr conn,
> >       }
> > -#ifndef WIN32
> > -static char *remoteGetUNIXSocketNonRoot(void)
> > +static char *
> > +remoteGetUNIXSocket(remoteDriverTransport transport,
> > +                    unsigned int flags)
> >   {
> >       char *sockname = NULL;
> > -    char *userdir = virGetUserRuntimeDirectory();
> > -
> > -    if (!userdir)
> > -        return NULL;
> > +    VIR_AUTOFREE(char *userdir);
> 
> Ouch, how does this even compile?

Quite easily

  #define VIR_AUTOFREE(type) __attribute__((cleanup(virFree))) type

will expand correctly regardless :)

> VIR_AUTOFREE(char *) userdir = NULL;

but yes that's right.

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|




More information about the libvir-list mailing list