src: honour the RUNSTATEDIR variable in all code

All code using LOCALSTATEDIR "/run" is updated to use RUNSTATEDIR
instead. The exception is the remote driver client which still
uses LOCALSTATEDIR "/run". The client needs to connect to remote
machines which may not be using /run, so /var/run is more portable
due to the /var/run -> /run symlink.

Some duplicate paths in the apparmor code are also purged.

There's no functional change by default yet since both expressions
expand to the same value.

Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
Daniel P. Berrangé 2019-08-20 16:05:12 +01:00
parent 0824385221
commit d29c917ef4
31 changed files with 109 additions and 96 deletions

View File

@ -31,7 +31,7 @@
#define BHYVE_AUTOSTART_DIR SYSCONFDIR "/libvirt/bhyve/autostart" #define BHYVE_AUTOSTART_DIR SYSCONFDIR "/libvirt/bhyve/autostart"
#define BHYVE_CONFIG_DIR SYSCONFDIR "/libvirt/bhyve" #define BHYVE_CONFIG_DIR SYSCONFDIR "/libvirt/bhyve"
#define BHYVE_STATE_DIR LOCALSTATEDIR "/run/libvirt/bhyve" #define BHYVE_STATE_DIR RUNSTATEDIR "/libvirt/bhyve"
#define BHYVE_LOG_DIR LOCALSTATEDIR "/log/libvirt/bhyve" #define BHYVE_LOG_DIR LOCALSTATEDIR "/log/libvirt/bhyve"
typedef struct _virBhyveDriverConfig virBhyveDriverConfig; typedef struct _virBhyveDriverConfig virBhyveDriverConfig;

View File

@ -102,7 +102,7 @@ netcfStateInitialize(bool privileged,
if (privileged) { if (privileged) {
if (virAsprintf(&driver->stateDir, if (virAsprintf(&driver->stateDir,
"%s/run/libvirt/interface", LOCALSTATEDIR) < 0) "%s/libvirt/interface", RUNSTATEDIR) < 0)
goto error; goto error;
} else { } else {
VIR_AUTOFREE(char *) rundir = NULL; VIR_AUTOFREE(char *) rundir = NULL;

View File

@ -1181,7 +1181,7 @@ udevStateInitialize(bool privileged,
if (privileged) { if (privileged) {
if (virAsprintf(&driver->stateDir, if (virAsprintf(&driver->stateDir,
"%s/run/libvirt/interface", LOCALSTATEDIR) < 0) "%s/libvirt/interface", RUNSTATEDIR) < 0)
goto cleanup; goto cleanup;
} else { } else {
VIR_AUTOFREE(char *) rundir = NULL; VIR_AUTOFREE(char *) rundir = NULL;

View File

@ -149,7 +149,7 @@ getSocketPath(virURIPtr uri)
} }
if (STREQ_NULLABLE(uri->path, "/system")) { if (STREQ_NULLABLE(uri->path, "/system")) {
if (virAsprintf(&sock_path, LOCALSTATEDIR "/run/libvirt/%s", if (virAsprintf(&sock_path, RUNSTATEDIR "/libvirt/%s",
sockbase) < 0) sockbase) < 0)
goto error; goto error;
} else if (STREQ_NULLABLE(uri->path, "/session")) { } else if (STREQ_NULLABLE(uri->path, "/session")) {

View File

@ -48,7 +48,7 @@
#define LIBXL_CONFIG_BASE_DIR SYSCONFDIR "/libvirt" #define LIBXL_CONFIG_BASE_DIR SYSCONFDIR "/libvirt"
#define LIBXL_CONFIG_DIR SYSCONFDIR "/libvirt/libxl" #define LIBXL_CONFIG_DIR SYSCONFDIR "/libvirt/libxl"
#define LIBXL_AUTOSTART_DIR LIBXL_CONFIG_DIR "/autostart" #define LIBXL_AUTOSTART_DIR LIBXL_CONFIG_DIR "/autostart"
#define LIBXL_STATE_DIR LOCALSTATEDIR "/run/libvirt/libxl" #define LIBXL_STATE_DIR RUNSTATEDIR "/libvirt/libxl"
#define LIBXL_LOG_DIR LOCALSTATEDIR "/log/libvirt/libxl" #define LIBXL_LOG_DIR LOCALSTATEDIR "/log/libvirt/libxl"
#define LIBXL_LIB_DIR LOCALSTATEDIR "/lib/libvirt/libxl" #define LIBXL_LIB_DIR LOCALSTATEDIR "/lib/libvirt/libxl"
#define LIBXL_SAVE_DIR LIBXL_LIB_DIR "/save" #define LIBXL_SAVE_DIR LIBXL_LIB_DIR "/save"

View File

@ -447,8 +447,8 @@ virLockDaemonUnixSocketPaths(bool privileged,
char **adminSockfile) char **adminSockfile)
{ {
if (privileged) { if (privileged) {
if (VIR_STRDUP(*sockfile, LOCALSTATEDIR "/run/libvirt/virtlockd-sock") < 0 || if (VIR_STRDUP(*sockfile, RUNSTATEDIR "/libvirt/virtlockd-sock") < 0 ||
VIR_STRDUP(*adminSockfile, LOCALSTATEDIR "/run/libvirt/virtlockd-admin-sock") < 0) VIR_STRDUP(*adminSockfile, RUNSTATEDIR "/libvirt/virtlockd-admin-sock") < 0)
goto error; goto error;
} else { } else {
char *rundir = NULL; char *rundir = NULL;
@ -831,7 +831,7 @@ virLockDaemonExecRestartStatePath(bool privileged,
char **state_file) char **state_file)
{ {
if (privileged) { if (privileged) {
if (VIR_STRDUP(*state_file, LOCALSTATEDIR "/run/virtlockd-restart-exec.json") < 0) if (VIR_STRDUP(*state_file, RUNSTATEDIR "/virtlockd-restart-exec.json") < 0)
goto error; goto error;
} else { } else {
char *rundir = NULL; char *rundir = NULL;
@ -1062,14 +1062,14 @@ virLockDaemonUsage(const char *argv0, bool privileged)
" %s/libvirt/virtlockd.conf\n" " %s/libvirt/virtlockd.conf\n"
"\n" "\n"
" Sockets:\n" " Sockets:\n"
" %s/run/libvirt/virtlockd-sock\n" " %s/libvirt/virtlockd-sock\n"
"\n" "\n"
" PID file (unless overridden by -p):\n" " PID file (unless overridden by -p):\n"
" %s/run/virtlockd.pid\n" " %s/virtlockd.pid\n"
"\n"), "\n"),
SYSCONFDIR, SYSCONFDIR,
LOCALSTATEDIR, RUNSTATEDIR,
LOCALSTATEDIR); RUNSTATEDIR);
} else { } else {
fprintf(stderr, "%s", fprintf(stderr, "%s",
_("\n" _("\n"
@ -1221,7 +1221,7 @@ int main(int argc, char **argv) {
if (!pid_file && if (!pid_file &&
virPidFileConstructPath(privileged, virPidFileConstructPath(privileged,
LOCALSTATEDIR, RUNSTATEDIR,
"virtlockd", "virtlockd",
&pid_file) < 0) { &pid_file) < 0) {
VIR_ERROR(_("Can't determine pid file path.")); VIR_ERROR(_("Can't determine pid file path."));
@ -1248,7 +1248,7 @@ int main(int argc, char **argv) {
/* Ensure the rundir exists (on tmpfs on some systems) */ /* Ensure the rundir exists (on tmpfs on some systems) */
if (privileged) { if (privileged) {
if (VIR_STRDUP_QUIET(run_dir, LOCALSTATEDIR "/run/libvirt") < 0) if (VIR_STRDUP_QUIET(run_dir, RUNSTATEDIR "/libvirt") < 0)
goto no_memory; goto no_memory;
} else { } else {
if (!(run_dir = virGetUserRuntimeDirectory())) { if (!(run_dir = virGetUserRuntimeDirectory())) {

View File

@ -124,7 +124,7 @@ static char *virLockManagerLockDaemonPath(bool privileged)
{ {
char *path; char *path;
if (privileged) { if (privileged) {
if (VIR_STRDUP(path, LOCALSTATEDIR "/run/libvirt/virtlockd-sock") < 0) if (VIR_STRDUP(path, RUNSTATEDIR "/libvirt/virtlockd-sock") < 0)
return NULL; return NULL;
} else { } else {
char *rundir = NULL; char *rundir = NULL;

View File

@ -72,11 +72,11 @@ upgrades of the virtlockd service.
The default configuration file used by virtlockd, unless overridden on the The default configuration file used by virtlockd, unless overridden on the
command line using the B<-f>|B<--config> option. command line using the B<-f>|B<--config> option.
=item F<LOCALSTATEDIR/run/libvirt/virtlockd-sock> =item F<RUNSTATEDIR/libvirt/virtlockd-sock>
The sockets libvirtd will use. The sockets libvirtd will use.
=item F<LOCALSTATEDIR/run/virtlockd.pid> =item F<RUNSTATEDIR/virtlockd.pid>
The PID file to use, unless overridden by the B<-p>|B<--pid-file> option. The PID file to use, unless overridden by the B<-p>|B<--pid-file> option.
@ -116,8 +116,8 @@ To retrieve the version of virtlockd:
To start virtlockd, instructing it to daemonize and create a PID file: To start virtlockd, instructing it to daemonize and create a PID file:
# virtlockd -d # virtlockd -d
# ls -la LOCALSTATEDIR/run/virtlockd.pid # ls -la RUNSTATEDIR/virtlockd.pid
-rw-r--r-- 1 root root 6 Jul 9 02:40 LOCALSTATEDIR/run/virtlockd.pid -rw-r--r-- 1 root root 6 Jul 9 02:40 RUNSTATEDIR/virtlockd.pid
# #
=head1 BUGS =head1 BUGS

View File

@ -388,8 +388,8 @@ virLogDaemonUnixSocketPaths(bool privileged,
char **adminSockfile) char **adminSockfile)
{ {
if (privileged) { if (privileged) {
if (VIR_STRDUP(*sockfile, LOCALSTATEDIR "/run/libvirt/virtlogd-sock") < 0 || if (VIR_STRDUP(*sockfile, RUNSTATEDIR "/libvirt/virtlogd-sock") < 0 ||
VIR_STRDUP(*adminSockfile, LOCALSTATEDIR "/run/libvirt/virtlogd-admin-sock") < 0) VIR_STRDUP(*adminSockfile, RUNSTATEDIR "/libvirt/virtlogd-admin-sock") < 0)
goto error; goto error;
} else { } else {
char *rundir = NULL; char *rundir = NULL;
@ -623,7 +623,7 @@ virLogDaemonExecRestartStatePath(bool privileged,
char **state_file) char **state_file)
{ {
if (privileged) { if (privileged) {
if (VIR_STRDUP(*state_file, LOCALSTATEDIR "/run/virtlogd-restart-exec.json") < 0) if (VIR_STRDUP(*state_file, RUNSTATEDIR "/virtlogd-restart-exec.json") < 0)
goto error; goto error;
} else { } else {
char *rundir = NULL; char *rundir = NULL;
@ -834,14 +834,14 @@ virLogDaemonUsage(const char *argv0, bool privileged)
" %s/libvirt/virtlogd.conf\n" " %s/libvirt/virtlogd.conf\n"
"\n" "\n"
" Sockets:\n" " Sockets:\n"
" %s/run/libvirt/virtlogd-sock\n" " %s/libvirt/virtlogd-sock\n"
"\n" "\n"
" PID file (unless overridden by -p):\n" " PID file (unless overridden by -p):\n"
" %s/run/virtlogd.pid\n" " %s/virtlogd.pid\n"
"\n"), "\n"),
SYSCONFDIR, SYSCONFDIR,
LOCALSTATEDIR, RUNSTATEDIR,
LOCALSTATEDIR); RUNSTATEDIR);
} else { } else {
fprintf(stderr, "%s", fprintf(stderr, "%s",
_("\n" _("\n"
@ -992,7 +992,7 @@ int main(int argc, char **argv) {
if (!pid_file && if (!pid_file &&
virPidFileConstructPath(privileged, virPidFileConstructPath(privileged,
LOCALSTATEDIR, RUNSTATEDIR,
"virtlogd", "virtlogd",
&pid_file) < 0) { &pid_file) < 0) {
VIR_ERROR(_("Can't determine pid file path.")); VIR_ERROR(_("Can't determine pid file path."));
@ -1019,7 +1019,7 @@ int main(int argc, char **argv) {
/* Ensure the rundir exists (on tmpfs on some systems) */ /* Ensure the rundir exists (on tmpfs on some systems) */
if (privileged) { if (privileged) {
if (VIR_STRDUP_QUIET(run_dir, LOCALSTATEDIR "/run/libvirt") < 0) if (VIR_STRDUP_QUIET(run_dir, RUNSTATEDIR "/libvirt") < 0)
goto no_memory; goto no_memory;
} else { } else {
if (!(run_dir = virGetUserRuntimeDirectory())) { if (!(run_dir = virGetUserRuntimeDirectory())) {

View File

@ -45,7 +45,7 @@ virLogManagerDaemonPath(bool privileged)
{ {
char *path; char *path;
if (privileged) { if (privileged) {
if (VIR_STRDUP(path, LOCALSTATEDIR "/run/libvirt/virtlogd-sock") < 0) if (VIR_STRDUP(path, RUNSTATEDIR "/libvirt/virtlogd-sock") < 0)
return NULL; return NULL;
} else { } else {
char *rundir = NULL; char *rundir = NULL;

View File

@ -72,11 +72,11 @@ upgrades of the virtlogd service.
The default configuration file used by virtlogd, unless overridden on the The default configuration file used by virtlogd, unless overridden on the
command line using the B<-f>|B<--config> option. command line using the B<-f>|B<--config> option.
=item F<LOCALSTATEDIR/run/libvirt/virtlogd-sock> =item F<RUNSTATEDIR/libvirt/virtlogd-sock>
The sockets libvirtd will use. The sockets libvirtd will use.
=item F<LOCALSTATEDIR/run/virtlogd.pid> =item F<RUNSTATEDIR/virtlogd.pid>
The PID file to use, unless overridden by the B<-p>|B<--pid-file> option. The PID file to use, unless overridden by the B<-p>|B<--pid-file> option.
@ -116,8 +116,8 @@ To retrieve the version of virtlogd:
To start virtlogd, instructing it to daemonize and create a PID file: To start virtlogd, instructing it to daemonize and create a PID file:
# virtlogd -d # virtlogd -d
# ls -la LOCALSTATEDIR/run/virtlogd.pid # ls -la RUNSTATEDIR/virtlogd.pid
-rw-r--r-- 1 root root 6 Jul 9 02:40 LOCALSTATEDIR/run/virtlogd.pid -rw-r--r-- 1 root root 6 Jul 9 02:40 RUNSTATEDIR/virtlogd.pid
# #
=head1 BUGS =head1 BUGS

View File

@ -38,7 +38,7 @@
#define LXC_DRIVER_NAME "LXC" #define LXC_DRIVER_NAME "LXC"
#define LXC_CONFIG_DIR SYSCONFDIR "/libvirt/lxc" #define LXC_CONFIG_DIR SYSCONFDIR "/libvirt/lxc"
#define LXC_STATE_DIR LOCALSTATEDIR "/run/libvirt/lxc" #define LXC_STATE_DIR RUNSTATEDIR "/libvirt/lxc"
#define LXC_LOG_DIR LOCALSTATEDIR "/log/libvirt/lxc" #define LXC_LOG_DIR LOCALSTATEDIR "/log/libvirt/lxc"
#define LXC_AUTOSTART_DIR LXC_CONFIG_DIR "/autostart" #define LXC_AUTOSTART_DIR LXC_CONFIG_DIR "/autostart"

View File

@ -470,7 +470,7 @@ static int virLXCProcessSetupNamespaceNet(int ns_type, const char *name)
return -1; return -1;
} }
if (virAsprintf(&path, "/var/run/netns/%s", name) < 0) if (virAsprintf(&path, "%s/netns/%s", RUNSTATEDIR, name) < 0)
return -1; return -1;
fd = open(path, O_RDONLY); fd = open(path, O_RDONLY);
VIR_FREE(path); VIR_FREE(path);

View File

@ -726,9 +726,9 @@ networkStateInitialize(bool privileged,
VIR_STRDUP(network_driver->networkAutostartDir, VIR_STRDUP(network_driver->networkAutostartDir,
SYSCONFDIR "/libvirt/qemu/networks/autostart") < 0 || SYSCONFDIR "/libvirt/qemu/networks/autostart") < 0 ||
VIR_STRDUP(network_driver->stateDir, VIR_STRDUP(network_driver->stateDir,
LOCALSTATEDIR "/run/libvirt/network") < 0 || RUNSTATEDIR "/libvirt/network") < 0 ||
VIR_STRDUP(network_driver->pidDir, VIR_STRDUP(network_driver->pidDir,
LOCALSTATEDIR "/run/libvirt/network") < 0 || RUNSTATEDIR "/libvirt/network") < 0 ||
VIR_STRDUP(network_driver->dnsmasqStateDir, VIR_STRDUP(network_driver->dnsmasqStateDir,
LOCALSTATEDIR "/lib/libvirt/dnsmasq") < 0 || LOCALSTATEDIR "/lib/libvirt/dnsmasq") < 0 ||
VIR_STRDUP(network_driver->radvdStateDir, VIR_STRDUP(network_driver->radvdStateDir,

View File

@ -160,7 +160,7 @@ main(int argc, char **argv)
interface) < 0) interface) < 0)
goto cleanup; goto cleanup;
if (VIR_STRDUP(pid_file, LOCALSTATEDIR "/run/leaseshelper.pid") < 0) if (VIR_STRDUP(pid_file, RUNSTATEDIR "/leaseshelper.pid") < 0)
goto cleanup; goto cleanup;
/* Try to claim the pidfile, exiting if we can't */ /* Try to claim the pidfile, exiting if we can't */

View File

@ -619,7 +619,7 @@ nodeStateInitialize(bool privileged ATTRIBUTE_UNUSED,
if (privileged) { if (privileged) {
if (virAsprintf(&driver->stateDir, if (virAsprintf(&driver->stateDir,
"%s/run/libvirt/nodedev", LOCALSTATEDIR) < 0) "%s/libvirt/nodedev", RUNSTATEDIR) < 0)
goto failure; goto failure;
} else { } else {
VIR_AUTOFREE(char *) rundir = NULL; VIR_AUTOFREE(char *) rundir = NULL;

View File

@ -1830,7 +1830,7 @@ nodeStateInitialize(bool privileged,
if (privileged) { if (privileged) {
if (virAsprintf(&driver->stateDir, if (virAsprintf(&driver->stateDir,
"%s/run/libvirt/nodedev", LOCALSTATEDIR) < 0) "%s/libvirt/nodedev", RUNSTATEDIR) < 0)
goto cleanup; goto cleanup;
} else { } else {
VIR_AUTOFREE(char *) rundir = NULL; VIR_AUTOFREE(char *) rundir = NULL;

View File

@ -29,7 +29,7 @@
* while :; do kill -SIGTERM `pidof dhclient`; dhclient eth0; ifconfig eth0; done * while :; do kill -SIGTERM `pidof dhclient`; dhclient eth0; ifconfig eth0; done
* *
* On the host check the lease file and that it's periodically shortened: * On the host check the lease file and that it's periodically shortened:
* cat /var/run/libvirt/network/nwfilter.leases; date +%s * cat $runstatedir/libvirt/network/nwfilter.leases; date +%s
* *
* On the host also check that the ebtables rules 'look' ok: * On the host also check that the ebtables rules 'look' ok:
* ebtables -t nat -L * ebtables -t nat -L
@ -71,7 +71,7 @@ VIR_LOG_INIT("nwfilter.nwfilter_dhcpsnoop");
#ifdef HAVE_LIBPCAP #ifdef HAVE_LIBPCAP
# define LEASEFILE_DIR LOCALSTATEDIR "/run/libvirt/network/" # define LEASEFILE_DIR RUNSTATEDIR "/libvirt/network/"
# define LEASEFILE LEASEFILE_DIR "nwfilter.leases" # define LEASEFILE LEASEFILE_DIR "nwfilter.leases"
# define TMPLEASEFILE LEASEFILE_DIR "nwfilter.ltmp" # define TMPLEASEFILE LEASEFILE_DIR "nwfilter.ltmp"

View File

@ -205,7 +205,7 @@ nwfilterStateInitialize(bool privileged,
nwfilterDriverLock(); nwfilterDriverLock();
if (VIR_STRDUP(driver->stateDir, LOCALSTATEDIR "/run/libvirt/nwfilter") < 0) if (VIR_STRDUP(driver->stateDir, RUNSTATEDIR "/libvirt/nwfilter") < 0)
goto error; goto error;
if (virFileMakePathWithMode(driver->stateDir, S_IRWXU) < 0) { if (virFileMakePathWithMode(driver->stateDir, S_IRWXU) < 0) {
@ -261,7 +261,7 @@ nwfilterStateInitialize(bool privileged,
goto error; goto error;
} }
if (VIR_STRDUP(driver->bindingDir, LOCALSTATEDIR "/run/libvirt/nwfilter-binding") < 0) if (VIR_STRDUP(driver->bindingDir, RUNSTATEDIR "/libvirt/nwfilter-binding") < 0)
goto error; goto error;
if (virFileMakePathWithMode(driver->bindingDir, S_IRWXU) < 0) { if (virFileMakePathWithMode(driver->bindingDir, S_IRWXU) < 0) {

View File

@ -142,11 +142,11 @@ virQEMUDriverConfigPtr virQEMUDriverConfigNew(bool privileged)
goto error; goto error;
if (virAsprintf(&cfg->stateDir, if (virAsprintf(&cfg->stateDir,
"%s/run/libvirt/qemu", LOCALSTATEDIR) < 0) "%s/libvirt/qemu", RUNSTATEDIR) < 0)
goto error; goto error;
if (virAsprintf(&cfg->swtpmStateDir, if (virAsprintf(&cfg->swtpmStateDir,
"%s/run/libvirt/qemu/swtpm", LOCALSTATEDIR) < 0) "%s/libvirt/qemu/swtpm", RUNSTATEDIR) < 0)
goto error; goto error;
if (virAsprintf(&cfg->cacheDir, if (virAsprintf(&cfg->cacheDir,

View File

@ -84,9 +84,9 @@ On receipt of B<SIGHUP> libvirtd will reload its configuration.
The default configuration file used by libvirtd, unless overridden on the The default configuration file used by libvirtd, unless overridden on the
command line using the B<-f>|B<--config> option. command line using the B<-f>|B<--config> option.
=item F<LOCALSTATEDIR/run/libvirt/libvirt-sock> =item F<RUNSTATEDIR/libvirt/libvirt-sock>
=item F<LOCALSTATEDIR/run/libvirt/libvirt-sock-ro> =item F<RUNSTATEDIR/libvirt/libvirt-sock-ro>
The sockets libvirtd will use. The sockets libvirtd will use.
@ -102,7 +102,7 @@ The TLS B<Server> certificate libvirtd will use.
The TLS B<Server> private key libvirtd will use. The TLS B<Server> private key libvirtd will use.
=item F<LOCALSTATEDIR/run/libvirtd.pid> =item F<RUNSTATEDIR/libvirtd.pid>
The PID file to use, unless overridden by the B<-p>|B<--pid-file> option. The PID file to use, unless overridden by the B<-p>|B<--pid-file> option.
@ -154,8 +154,8 @@ To retrieve the version of libvirtd:
To start libvirtd, instructing it to daemonize and create a PID file: To start libvirtd, instructing it to daemonize and create a PID file:
# libvirtd -d # libvirtd -d
# ls -la LOCALSTATEDIR/run/libvirtd.pid # ls -la RUNSTATEDIR/libvirtd.pid
-rw-r--r-- 1 root root 6 Jul 9 02:40 LOCALSTATEDIR/run/libvirtd.pid -rw-r--r-- 1 root root 6 Jul 9 02:40 RUNSTATEDIR/libvirtd.pid
# #
=head1 BUGS =head1 BUGS

View File

@ -238,12 +238,12 @@ daemonUnixSocketPaths(struct daemonConfig *config,
} }
} else { } else {
if (privileged) { if (privileged) {
if (virAsprintf(sockfile, "%s/run/libvirt/%s-sock", if (virAsprintf(sockfile, "%s/libvirt/%s-sock",
LOCALSTATEDIR, SOCK_PREFIX) < 0 || RUNSTATEDIR, SOCK_PREFIX) < 0 ||
virAsprintf(rosockfile, "%s/run/libvirt/%s-sock-ro", virAsprintf(rosockfile, "%s/libvirt/%s-sock-ro",
LOCALSTATEDIR, SOCK_PREFIX) < 0 || RUNSTATEDIR, SOCK_PREFIX) < 0 ||
virAsprintf(admsockfile, "%s/run/libvirt/%s-admin-sock", virAsprintf(admsockfile, "%s/libvirt/%s-admin-sock",
LOCALSTATEDIR, SOCK_PREFIX) < 0) RUNSTATEDIR, SOCK_PREFIX) < 0)
goto cleanup; goto cleanup;
} else { } else {
mode_t old_umask; mode_t old_umask;
@ -945,11 +945,11 @@ daemonUsage(const char *argv0, bool privileged)
fprintf(stderr, " %s\n", _("Sockets:")); fprintf(stderr, " %s\n", _("Sockets:"));
fprintf(stderr, " %s/libvirt/%s-sock\n", fprintf(stderr, " %s/libvirt/%s-sock\n",
privileged ? LOCALSTATEDIR "/run" : "$XDG_RUNTIME_DIR", privileged ? RUNSTATEDIR : "$XDG_RUNTIME_DIR",
SOCK_PREFIX); SOCK_PREFIX);
if (privileged) if (privileged)
fprintf(stderr, " %s/run/libvirt/%s-sock-ro\n", fprintf(stderr, " %s/libvirt/%s-sock-ro\n",
LOCALSTATEDIR, SOCK_PREFIX); RUNSTATEDIR, SOCK_PREFIX);
fprintf(stderr, "\n"); fprintf(stderr, "\n");
#ifdef WITH_IP #ifdef WITH_IP
@ -969,7 +969,7 @@ daemonUsage(const char *argv0, bool privileged)
fprintf(stderr, " %s\n", fprintf(stderr, " %s\n",
_("PID file (unless overridden by -p):")); _("PID file (unless overridden by -p):"));
fprintf(stderr, " %s/%s.pid\n", fprintf(stderr, " %s/%s.pid\n",
privileged ? LOCALSTATEDIR "/run" : "$XDG_RUNTIME_DIR/libvirt", privileged ? RUNSTATEDIR : "$XDG_RUNTIME_DIR/libvirt",
DAEMON_NAME); DAEMON_NAME);
fprintf(stderr, "\n"); fprintf(stderr, "\n");
} }
@ -1149,7 +1149,7 @@ int main(int argc, char **argv) {
if (!pid_file && if (!pid_file &&
virPidFileConstructPath(privileged, virPidFileConstructPath(privileged,
LOCALSTATEDIR, RUNSTATEDIR,
DAEMON_NAME, DAEMON_NAME,
&pid_file) < 0) { &pid_file) < 0) {
VIR_ERROR(_("Can't determine pid file path.")); VIR_ERROR(_("Can't determine pid file path."));
@ -1194,7 +1194,7 @@ int main(int argc, char **argv) {
/* Ensure the rundir exists (on tmpfs on some systems) */ /* Ensure the rundir exists (on tmpfs on some systems) */
if (privileged) { if (privileged) {
if (VIR_STRDUP_QUIET(run_dir, LOCALSTATEDIR "/run/libvirt") < 0) { if (VIR_STRDUP_QUIET(run_dir, RUNSTATEDIR "/libvirt") < 0) {
VIR_ERROR(_("Can't allocate memory")); VIR_ERROR(_("Can't allocate memory"));
goto cleanup; goto cleanup;
} }

View File

@ -2192,8 +2192,8 @@ remoteDispatchProbeURI(bool readonly,
for (i = 0; i < (ssize_t) ARRAY_CARDINALITY(drivers) && !*probeduri; i++) { for (i = 0; i < (ssize_t) ARRAY_CARDINALITY(drivers) && !*probeduri; i++) {
VIR_AUTOFREE(char *) sockname = NULL; VIR_AUTOFREE(char *) sockname = NULL;
if (virAsprintf(&sockname, "%s/run/libvirt/virt%sd-%s", if (virAsprintf(&sockname, "%s/libvirt/virt%sd-%s",
LOCALSTATEDIR, drivers[i], RUNSTATEDIR, drivers[i],
readonly ? "sock-ro" : "sock") < 0) readonly ? "sock-ro" : "sock") < 0)
return -1; return -1;

View File

@ -789,6 +789,12 @@ remoteGetUNIXSocketHelper(remoteDriverTransport transport,
userdir, sock_prefix) < 0) userdir, sock_prefix) < 0)
return NULL; return NULL;
} else { } else {
/* Intentionally do *NOT* use RUNSTATEDIR here. We might
* be connecting to a remote machine, and cannot assume
* the remote host has /run. The converse is ok though,
* any machine with /run will have a /var/run symlink.
* The portable option is to thus use $LOCALSTATEDIR/run
*/
if (virAsprintf(&sockname, "%s/run/libvirt/%s-%s", if (virAsprintf(&sockname, "%s/run/libvirt/%s-%s",
LOCALSTATEDIR, sock_prefix, LOCALSTATEDIR, sock_prefix,
flags & VIR_DRV_OPEN_REMOTE_RO ? flags & VIR_DRV_OPEN_REMOTE_RO ?

View File

@ -474,7 +474,7 @@ secretStateInitialize(bool privileged,
"%s/libvirt/secrets", SYSCONFDIR) < 0) "%s/libvirt/secrets", SYSCONFDIR) < 0)
goto error; goto error;
if (virAsprintf(&driver->stateDir, if (virAsprintf(&driver->stateDir,
"%s/run/libvirt/secrets", LOCALSTATEDIR) < 0) "%s/libvirt/secrets", RUNSTATEDIR) < 0)
goto error; goto error;
} else { } else {
VIR_AUTOFREE(char *) rundir = NULL; VIR_AUTOFREE(char *) rundir = NULL;

View File

@ -1232,8 +1232,8 @@ get_files(vahControl * ctl)
/* Unix socket for QEMU and swtpm to use */ /* Unix socket for QEMU and swtpm to use */
virBufferAsprintf(&buf, virBufferAsprintf(&buf,
" \"/run/libvirt/qemu/swtpm/%s-swtpm.sock\" rw,\n", " \"%s/libvirt/qemu/swtpm/%s-swtpm.sock\" rw,\n",
shortName); RUNSTATEDIR, shortName);
/* Paths for swtpm to use: give it access to its state /* Paths for swtpm to use: give it access to its state
* directory, log, and PID files. * directory, log, and PID files.
*/ */
@ -1244,8 +1244,8 @@ get_files(vahControl * ctl)
" \"%s/log/swtpm/libvirt/qemu/%s-swtpm.log\" a,\n", " \"%s/log/swtpm/libvirt/qemu/%s-swtpm.log\" a,\n",
LOCALSTATEDIR, ctl->def->name); LOCALSTATEDIR, ctl->def->name);
virBufferAsprintf(&buf, virBufferAsprintf(&buf,
" \"/run/libvirt/qemu/swtpm/%s-swtpm.pid\" rw,\n", " \"%s/libvirt/qemu/swtpm/%s-swtpm.pid\" rw,\n",
shortName); RUNSTATEDIR, shortName);
VIR_FREE(shortName); VIR_FREE(shortName);
break; break;
@ -1486,14 +1486,10 @@ main(int argc, char **argv)
LOCALSTATEDIR, ctl->def->name); LOCALSTATEDIR, ctl->def->name);
virBufferAsprintf(&buf, " \"%s/lib/libvirt/qemu/domain-%d-%.*s/*\" rw,\n", virBufferAsprintf(&buf, " \"%s/lib/libvirt/qemu/domain-%d-%.*s/*\" rw,\n",
LOCALSTATEDIR, ctl->def->id, 20, ctl->def->name); LOCALSTATEDIR, ctl->def->id, 20, ctl->def->name);
virBufferAsprintf(&buf, " \"%s/run/libvirt/**/%s.pid\" rwk,\n", virBufferAsprintf(&buf, " \"%s/libvirt/**/%s.pid\" rwk,\n",
LOCALSTATEDIR, ctl->def->name); RUNSTATEDIR, ctl->def->name);
virBufferAsprintf(&buf, " \"/run/libvirt/**/%s.pid\" rwk,\n", virBufferAsprintf(&buf, " \"%s/libvirt/**/*.tunnelmigrate.dest.%s\" rw,\n",
ctl->def->name); RUNSTATEDIR, ctl->def->name);
virBufferAsprintf(&buf, " \"%s/run/libvirt/**/*.tunnelmigrate.dest.%s\" rw,\n",
LOCALSTATEDIR, ctl->def->name);
virBufferAsprintf(&buf, " \"/run/libvirt/**/*.tunnelmigrate.dest.%s\" rw,\n",
ctl->def->name);
} }
if (ctl->files) if (ctl->files)
virBufferAdd(&buf, ctl->files, -1); virBufferAdd(&buf, ctl->files, -1);

View File

@ -278,7 +278,7 @@ storageStateInitialize(bool privileged,
VIR_STRDUP(driver->autostartDir, VIR_STRDUP(driver->autostartDir,
SYSCONFDIR "/libvirt/storage/autostart") < 0 || SYSCONFDIR "/libvirt/storage/autostart") < 0 ||
VIR_STRDUP(driver->stateDir, VIR_STRDUP(driver->stateDir,
LOCALSTATEDIR "/run/libvirt/storage") < 0) RUNSTATEDIR "/libvirt/storage") < 0)
goto error; goto error;
} else { } else {
configdir = virGetUserConfigDirectory(); configdir = virGetUserConfigDirectory();

View File

@ -41,7 +41,7 @@
VIR_LOG_INIT("util.hostdev"); VIR_LOG_INIT("util.hostdev");
#define HOSTDEV_STATE_DIR LOCALSTATEDIR "/run/libvirt/hostdevmgr" #define HOSTDEV_STATE_DIR RUNSTATEDIR "/libvirt/hostdevmgr"
static virHostdevManagerPtr manager; /* global hostdev manager, never freed */ static virHostdevManagerPtr manager; /* global hostdev manager, never freed */

View File

@ -479,7 +479,7 @@ int virPidFileRelease(const char *dir,
int int
virPidFileConstructPath(bool privileged, virPidFileConstructPath(bool privileged,
const char *statedir, const char *runstatedir,
const char *progname, const char *progname,
char **pidfile) char **pidfile)
{ {
@ -490,12 +490,12 @@ virPidFileConstructPath(bool privileged,
* This is here just to allow calling this function with * This is here just to allow calling this function with
* statedir == NULL; of course only when !privileged. * statedir == NULL; of course only when !privileged.
*/ */
if (!statedir) { if (!runstatedir) {
virReportError(VIR_ERR_INTERNAL_ERROR, virReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("No statedir specified")); "%s", _("No runstatedir specified"));
return -1; return -1;
} }
if (virAsprintf(pidfile, "%s/run/%s.pid", statedir, progname) < 0) if (virAsprintf(pidfile, "%s/%s.pid", runstatedir, progname) < 0)
return -1; return -1;
} else { } else {
if (!(rundir = virGetUserRuntimeDirectory())) if (!(rundir = virGetUserRuntimeDirectory()))

View File

@ -749,29 +749,40 @@ virSystemdActivationInitFromMap(virSystemdActivationPtr act,
goto error; goto error;
} }
VIR_DEBUG("Got socket family %d for FD %d",
addr.data.sa.sa_family, nextfd);
for (i = 0; i < nmap && !name; i++) { for (i = 0; i < nmap && !name; i++) {
if (map[i].name == NULL) if (map[i].name == NULL)
continue; continue;
if (addr.data.sa.sa_family == AF_INET) { if (addr.data.sa.sa_family == AF_INET) {
if (map[i].family == AF_INET && if (map[i].family == AF_INET) {
addr.data.inet4.sin_port == htons(map[i].port)) VIR_DEBUG("Expect %d got %d",
name = map[i].name; map[i].port, ntohs(addr.data.inet4.sin_port));
if (addr.data.inet4.sin_port == htons(map[i].port))
name = map[i].name;
}
} else if (addr.data.sa.sa_family == AF_INET6) { } else if (addr.data.sa.sa_family == AF_INET6) {
/* NB use of AF_INET here is correct. The "map" struct /* NB use of AF_INET here is correct. The "map" struct
* only refers to AF_INET. The socket may be AF_INET * only refers to AF_INET. The socket may be AF_INET
* or AF_INET6 * or AF_INET6
*/ */
if (map[i].family == AF_INET && if (map[i].family == AF_INET) {
addr.data.inet6.sin6_port == htons(map[i].port)) VIR_DEBUG("Expect %d got %d",
name = map[i].name; map[i].port, ntohs(addr.data.inet6.sin6_port));
if (addr.data.inet6.sin6_port == htons(map[i].port))
name = map[i].name;
}
#ifndef WIN32 #ifndef WIN32
} else if (addr.data.sa.sa_family == AF_UNIX) { } else if (addr.data.sa.sa_family == AF_UNIX) {
if (map[i].family == AF_UNIX && if (map[i].family == AF_UNIX) {
STREQLEN(map[i].path, VIR_DEBUG("Expect %s got %s", map[i].path, addr.data.un.sun_path);
addr.data.un.sun_path, if (STREQLEN(map[i].path,
sizeof(addr.data.un.sun_path))) addr.data.un.sun_path,
name = map[i].name; sizeof(addr.data.un.sun_path)))
name = map[i].name;
}
#endif #endif
} else { } else {
virReportError(VIR_ERR_INTERNAL_ERROR, virReportError(VIR_ERR_INTERNAL_ERROR,

View File

@ -60,7 +60,7 @@ VIR_LOG_INIT("parallels.parallels_driver");
#define PRLCTL "prlctl" #define PRLCTL "prlctl"
#define VZ_STATEDIR LOCALSTATEDIR "/run/libvirt/vz" #define VZ_STATEDIR RUNSTATEDIR "/libvirt/vz"
static virClassPtr vzDriverClass; static virClassPtr vzDriverClass;