]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Fix misc bugs in qemu connection opening
authorDaniel P. Berrange <berrange@redhat.com>
Thu, 8 Mar 2007 15:16:01 +0000 (15:16 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Thu, 8 Mar 2007 15:16:01 +0000 (15:16 +0000)
ChangeLog
src/qemu_internal.c

index 3aeccc14f2c2d77449032daec4cd3ec33302d8ba..5eb3135a4df114304bd9f10fe6af64aff7811c69 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Thu Mar  8 10:14:24 EST 2007 Daniel P. Berrange <berrange@redhat.com>
+
+       * src/qemu_internal.c: Fix inverted check on file handle to
+       avoid opening connection twice. Avoid SEGV if uri->scheme is
+       NULL. Don't run autostart for system instance.
+
 Thu Mar  8 09:47:24 EST 2007 Daniel P. Berrange <berrange@redhat.com>
 
        * src/libvirt.c: Refactored driver registration to avoid
index d37753b1ee7fd43910eb6af79abc2fcab27856e9..4347f0f8dea564f969db2f9c64673972509a8aea 100644 (file)
@@ -329,6 +329,7 @@ static int qemuProcessRequest(virConnectPtr conn,
  */
 static int qemuOpenConnection(virConnectPtr conn, xmlURIPtr uri, int readonly) {
     char path[PATH_MAX];
+    int autostart = 0;
 
     if (uri->server != NULL) {
         return -1;
@@ -358,8 +359,9 @@ static int qemuOpenConnection(virConnectPtr conn, xmlURIPtr uri, int readonly) {
         if (snprintf(path, sizeof(path), "@%s/.libvirt/qemud-sock", pw->pw_dir) == sizeof(path)) {
             return -1;
         }
+        autostart = 1;
     }
-    return qemuOpenClientUNIX(conn, path, 1);
+    return qemuOpenClientUNIX(conn, path, autostart);
 }
 
 
@@ -845,13 +847,13 @@ static int qemuNetworkOpen(virConnectPtr conn,
     xmlURIPtr uri = NULL;
     int ret = -1;
 
-    if (conn->qemud_fd == -1)
+    if (conn->qemud_fd != -1)
         return 0;
 
     if (name)
         uri = xmlParseURI(name);
 
-    if (uri && !strcmp(uri->scheme, "qemu"))
+    if (uri && uri->scheme && !strcmp(uri->scheme, "qemu"))
         ret = qemuOpen(conn, name, flags);
     else if (geteuid() == 0)
         ret = qemuOpen(conn, "qemu:///system", flags);