|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
From efe6c8021146d046846ead5b5efc9828d97c1ceb Mon Sep 17 00:00:00 2001
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
From: Christophe Fergeau <cfergeau@redhat.com>
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
Date: Thu, 12 Jul 2012 13:52:36 +0200
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
Subject: [PATCH] Fix daemon auto-spawning
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
Commit 32a9aac switched libvirt to use the XDG base directories
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
to locate most of its data/config. In particular, the per-user socket
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
for qemu:///session is now stored in the XDG runtime directory.
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
This directory is located by looking at the XDG_RUNTIME_DIR environment
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
variable, with a fallback to ~/.cache/libvirt if this variable is not
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
set.
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
When the daemon is autospawned because a client application wants
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
to use qemu:///session, the daemon is ran in a clean environment
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
which does not contain XDG_RUNTIME_DIR. It will create its socket
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
in ~/.cache/libvirt. If the client application has XDG_RUNTIME_DIR
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
set, it will not look for the socket in the fallback place, and will
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
fail to connect to the autospawned daemon.
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
This patch adds XDG_RUNTIME_DIR to the daemon environment before
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
auto-starting it. I've done this in virNetSocketForkDaemon rather
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
than in virCommandAddEnvPassCommon as I wasn't sure we want to pass
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
these variables to other commands libvirt spawns. XDG_CACHE_HOME
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
and XDG_CONFIG_HOME are also added to the daemon env as it makes use
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
of those as well.
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
---
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
src/rpc/virnetsocket.c | 3 +++
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
1 file changed, 3 insertions(+)
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
diff --git a/src/rpc/virnetsocket.c b/src/rpc/virnetsocket.c
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
index 0b32ffe..08dfbb0 100644
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
--- a/src/rpc/virnetsocket.c
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
+++ b/src/rpc/virnetsocket.c
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
@@ -97,6 +97,9 @@ static int virNetSocketForkDaemon(const char *binary)
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
NULL);
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
virCommandAddEnvPassCommon(cmd);
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
+ virCommandAddEnvPass(cmd, "XDG_CACHE_HOME");
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
+ virCommandAddEnvPass(cmd, "XDG_CONFIG_HOME");
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
+ virCommandAddEnvPass(cmd, "XDG_RUNTIME_DIR");
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
virCommandClearCaps(cmd);
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
virCommandDaemonize(cmd);
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
ret = virCommandRun(cmd, NULL);
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
--
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
1.7.10.4
|
|
![](https://seccdn.libravatar.org/avatar/6bc2ebbc861c9a4776b76939247a95d742d150e3feb2878a3b1ffd4d950329db?s=16&d=retro) |
f4e752 |
|