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@xxxxxxxxxxxx | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/ -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list