
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@veillard.com | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/