On Fri, Oct 23, 2009 at 02:05:36PM +0100, Daniel P. Berrange wrote:
virInitialize must be the first libvirt function called to ensure
threads, error handling & random number generator are all setup.
Move UNIX socket directory permissions change to place of use
---
daemon/libvirtd.c | 21 ++++++++++-----------
1 files changed, 10 insertions(+), 11 deletions(-)
diff --git a/daemon/libvirtd.c b/daemon/libvirtd.c
index db151cd..252d527 100644
--- a/daemon/libvirtd.c
+++ b/daemon/libvirtd.c
@@ -700,9 +700,15 @@ static int qemudInitPaths(struct qemud_server *server,
int ret = -1;
char *sock_dir_prefix = NULL;
- if (unix_sock_dir)
+ if (unix_sock_dir) {
sock_dir = unix_sock_dir;
- else {
+ /* Change the group ownership of /var/run/libvirt to unix_sock_gid */
+ if (server->privileged) {
+ if (chown(unix_sock_dir, -1, unix_sock_gid) < 0)
+ VIR_ERROR(_("Failed to change group ownership of %s"),
+ unix_sock_dir);
+ }
+ } else {
sock_dir = sockname;
if (server->privileged) {
dir_prefix = strdup (LOCAL_STATE_DIR);
@@ -797,8 +803,6 @@ static struct qemud_server *qemudInitialize(int sigread) {
return NULL;
}
- virInitialize();
-
/*
* Note that the order is important: the first ones have a higher
* priority when calling virStateInitialize. We must register
@@ -2848,6 +2852,8 @@ int main(int argc, char **argv) {
{0, 0, 0, 0}
};
+ virInitialize();
+
while (1) {
int optidx = 0;
int c;
@@ -2988,13 +2994,6 @@ int main(int argc, char **argv) {
if (remoteReadConfigFile (server, remote_config_file) < 0)
goto error2;
- /* Change the group ownership of /var/run/libvirt to unix_sock_gid */
- if (unix_sock_dir && server->privileged) {
- if (chown(unix_sock_dir, -1, unix_sock_gid) < 0)
- VIR_ERROR(_("Failed to change group ownership of %s"),
- unix_sock_dir);
- }
-
if (virEventAddHandleImpl(sigpipe[0],
VIR_EVENT_HANDLE_READABLE,
qemudDispatchSignalEvent,
ACK makes sense,
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit
http://xmlsoft.org/
daniel(a)veillard.com | Rpmfind RPM search engine
http://rpmfind.net/
http://veillard.com/ | virtualization library
http://libvirt.org/