var->ignore = 1; \
continue; \
}
+
+
+static char *remoteGetUNIXSocketNonRoot(void)
+{
+ char *sockname = NULL;
+ char *userdir = virGetUserRuntimeDirectory();
+
+ if (!userdir)
+ return NULL;
+
+ if (virAsprintf(&sockname, "%s/" LIBVIRTD_USER_UNIX_SOCKET, userdir) < 0) {
+ VIR_FREE(userdir);
+ return NULL;
+ }
+ VIR_FREE(userdir);
+
+ VIR_DEBUG("Chosen UNIX sockname %s", sockname);
+ return sockname;
+}
+
+static char *remoteGetUNIXSocketRoot(unsigned int flags)
+{
+ char *sockname = NULL;
+
+ if (VIR_STRDUP(sockname,
+ flags & VIR_DRV_OPEN_REMOTE_RO ?
+ LIBVIRTD_PRIV_UNIX_SOCKET_RO : LIBVIRTD_PRIV_UNIX_SOCKET) < 0)
+ return NULL;
+
+ VIR_DEBUG("Chosen UNIX sockname %s", sockname);
+ return sockname;
+}
+
/*
* URIs that this driver needs to handle:
*
goto failed;
}
- if (VIR_STRDUP(sockname,
- flags & VIR_DRV_OPEN_REMOTE_RO ?
- LIBVIRTD_PRIV_UNIX_SOCKET_RO : LIBVIRTD_PRIV_UNIX_SOCKET) < 0)
+ if (!(sockname = remoteGetUNIXSocketRoot(flags)))
goto failed;
}
goto failed;
}
- if (VIR_STRDUP(sockname,
- flags & VIR_DRV_OPEN_REMOTE_RO ?
- LIBVIRTD_PRIV_UNIX_SOCKET_RO : LIBVIRTD_PRIV_UNIX_SOCKET) < 0)
+ if (!(sockname = remoteGetUNIXSocketRoot(flags)))
goto failed;
}
#ifndef WIN32
case trans_unix:
if (!sockname) {
- if (flags & VIR_DRV_OPEN_REMOTE_USER) {
- char *userdir = virGetUserRuntimeDirectory();
-
- if (!userdir)
- goto failed;
-
- if (virAsprintf(&sockname, "%s/" LIBVIRTD_USER_UNIX_SOCKET, userdir) < 0) {
- VIR_FREE(userdir);
- goto failed;
- }
- VIR_FREE(userdir);
- } else {
- if (VIR_STRDUP(sockname,
- flags & VIR_DRV_OPEN_REMOTE_RO ?
- LIBVIRTD_PRIV_UNIX_SOCKET_RO : LIBVIRTD_PRIV_UNIX_SOCKET) < 0)
- goto failed;
- }
- VIR_DEBUG("Proceeding with sockname %s", sockname);
+ if (flags & VIR_DRV_OPEN_REMOTE_USER)
+ sockname = remoteGetUNIXSocketNonRoot();
+ else
+ sockname = remoteGetUNIXSocketRoot(flags);
+ if (!sockname)
+ goto failed;
}
if ((flags & VIR_DRV_OPEN_REMOTE_AUTOSTART) &&
goto failed;
}
- if (VIR_STRDUP(sockname,
- flags & VIR_DRV_OPEN_REMOTE_RO ?
- LIBVIRTD_PRIV_UNIX_SOCKET_RO : LIBVIRTD_PRIV_UNIX_SOCKET) < 0)
+ if (!(sockname = remoteGetUNIXSocketRoot(flags)))
goto failed;
}