]> xenbits.xensource.com Git - libvirt.git/commitdiff
* configure.in: when configuring with --prefix=/usr i.e. the same
authorDaniel Veillard <veillard@redhat.com>
Tue, 27 Nov 2007 14:39:42 +0000 (14:39 +0000)
committerDaniel Veillard <veillard@redhat.com>
Tue, 27 Nov 2007 14:39:42 +0000 (14:39 +0000)
  prefix as the installed libvirt, use the same localstatedir /var
  (instead of /usr/var) and sysconfdir /etc (instead of /usr/etc) to
  be able to connect to the system daemon, and use the system local
  options
* src/xs_internal.c: avoid error message when non-root cannot open
  xenstore
* src/xend_internal.c: avoid error message when non-root cannot
  directly access xend, in those 2 cases the proxy (or remote code)
  should implement the access so there is no need to raise the error
  there.
Daniel

ChangeLog
configure.in
src/xend_internal.c
src/xs_internal.c

index fc66b146a8857649aa0c1788bb6e3224ceb5ff20..18d0f0fcf9f8c400c257af4cb0cb16e5c6052889 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+Tue Nov 27 15:29:01 CET 2007 Daniel Veillard <veillard@redhat.com>
+
+       * configure.in: when configuring with --prefix=/usr i.e. the same
+         prefix as the installed libvirt, use the same localstatedir /var
+         (instead of /usr/var) and sysconfdir /etc (instead of /usr/etc) to
+         be able to connect to the system daemon, and use the system local
+         options
+       * src/xs_internal.c: avoid error message when non-root cannot open
+         xenstore
+       * src/xend_internal.c: avoid error message when non-root cannot
+         directly access xend, in those 2 cases the proxy (or remote code)
+         should implement the access so there is no need to raise the error
+         there.
+
 Mon Nov 26 15:06:19 CET 2007 Daniel Veillard <veillard@redhat.com>
 
        * doc/*: modified the python page into a bindings page, 
index 6247d9c7d916120c25ea67d69eba1d45e2734d32..6dc98adba9127c6fca7a57ee53bba2e8ab173602 100644 (file)
@@ -89,6 +89,18 @@ AC_ARG_WITH(html-subdir, AC_HELP_STRING([--with-html-subdir=path],
             [HTML_DIR="$HTML_DIR/\$(PACKAGE)-\$(VERSION)/html"])
 AC_SUBST(HTML_DIR)
 
+dnl if --prefix is /usr, don't use /usr/var for localstatedir
+dnl or /usr/etc for sysconfdir
+dnl as this makes a lot of things break in testing situations
+
+if test $prefix = "/usr" -a $localstatedir = '${prefix}/var' ; then
+    localstatedir='/var'
+fi
+if test $prefix = "/usr" -a $sysconfdir = '${prefix}/etc' ; then
+    sysconfdir='/etc'
+fi
+
+
 dnl Allow to build without Xen, QEMU/KVM, test or remote driver
 AC_ARG_WITH(xen,
 [  --with-xen              add XEN support (on)],[],[with_xen=yes])
index 7dc1ae4103720a3c5ffd9f40b493d3c5fff8e969..4cddb09b3d0c3dd44325442ddc84300245873cd6 100644 (file)
@@ -232,8 +232,15 @@ do_connect(virConnectPtr xend)
         close(s);
         errno = serrno;
         s = -1;
-        virXendError(xend, VIR_ERR_INTERNAL_ERROR,
-                     "failed to connect to xend");
+       /*
+        * not being able to connect via the socket as a normal user
+        * is rather normal, this should fallback to the proxy (or
+        * remote) mechanism.
+        */
+       if ((getuid() == 0) || (xend->flags & VIR_DRV_OPEN_RO)) {
+           virXendError(xend, VIR_ERR_INTERNAL_ERROR,
+                        "failed to connect to xend");
+        }
     }
 
     return s;
index 5086434c4e05fe8df605e9349d34c9b87a2ff303..d735079a8c3cf9a30d0a725bcbb7babd6ecc5ca7 100644 (file)
@@ -341,8 +341,15 @@ xenStoreOpen(virConnectPtr conn,
 #endif /* ! PROXY */
 
     if (priv->xshandle == NULL) {
-        virXenStoreError(NULL, VIR_ERR_NO_XEN, 
-                            _("failed to connect to Xen Store"));
+       /*
+         * not being able to connect via the socket as a normal user
+         * is rather normal, this should fallback to the proxy (or
+         * remote) mechanism.
+        */
+        if (getuid() == 0) {
+           virXenStoreError(NULL, VIR_ERR_NO_XEN, 
+                                _("failed to connect to Xen Store"));
+       }
         return (-1);
     }
     return (0);