]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Thu Sep 20 18:10:00 BST 2007 Richard W.M. Jones <rjones@redhat.com>
authorRichard W.M. Jones <rjones@redhat.com>
Thu, 20 Sep 2007 17:13:39 +0000 (17:13 +0000)
committerRichard W.M. Jones <rjones@redhat.com>
Thu, 20 Sep 2007 17:13:39 +0000 (17:13 +0000)
        * src/qemu_driver.c, docs/libvir.html: Support virConnectGetHostname
        and virConnectGetURI for qemu driver.

ChangeLog
docs/hvsupport.html
docs/libvir.html
src/qemu_driver.c
src/remote_internal.c

index 88fd8b888f4e3646de2c7d0b193411679ec5073c..12024549a179b1bf524afefe5c6684d36835b167 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Thu Sep 20 18:10:00 BST 2007 Richard W.M. Jones <rjones@redhat.com>
+
+       * src/qemu_driver.c, docs/libvir.html: Support virConnectGetHostname
+       and virConnectGetURI for qemu driver.
+
 Thu Sep 20 13:02:00 BST 2007 Richard W.M. Jones <rjones@redhat.com>
 
        * src/libvirt.c: Don't try to generate an error message with
index b6244e088e7422e1318422f9e849fb0ee08772ed..f390d91090897a65b131c123e9f5e5c8e260bd2c 100644 (file)
@@ -27,8 +27,8 @@ updated on <i>2007-08-20</i>.
 </tr><tr><td> virConnectGetHostname </td>
   <td> 0.3.0 </td>
   <td> &#8805; 0.3.0 </td>
-  <td>  </td>
-  <td>  </td>
+  <td> &#8805; 0.3.3 </td>
+  <td> &#8805; 0.3.3 </td>
   <td> &#8805; 0.3.0 </td>
 </tr><tr><td> virConnectGetMaxVcpus </td>
   <td> 0.2.1 </td>
@@ -45,8 +45,8 @@ updated on <i>2007-08-20</i>.
 </tr><tr><td> virConnectGetURI </td>
   <td> 0.3.0 </td>
   <td> &#8805; 0.3.0 </td>
-  <td>  </td>
-  <td>  </td>
+  <td> &#8805; 0.3.0 </td>
+  <td> &#8805; 0.3.0 </td>
   <td> &#8805; 0.3.0 </td>
 </tr><tr><td> virConnectGetVersion </td>
   <td> All </td>
index 47a1d22859f5a58eca7cde6d0b593fa067f710c3..e5382bb2ccedb8a474cf5168e5df40929bb6d21c 100644 (file)
@@ -2785,8 +2785,8 @@ updated on <i>2007-08-20</i>.
   <td> virConnectGetHostname </td>
   <td> 0.3.0 </td>
   <td> &ge; 0.3.0 </td>
-  <td>  </td>
-  <td>  </td>
+  <td> &ge; 0.3.3 </td>
+  <td> &ge; 0.3.3 </td>
   <td> &ge; 0.3.0 </td>
 </tr>
 <tr>
@@ -2809,8 +2809,8 @@ updated on <i>2007-08-20</i>.
   <td> virConnectGetURI </td>
   <td> 0.3.0 </td>
   <td> &ge; 0.3.0 </td>
-  <td>  </td>
-  <td>  </td>
+  <td> &ge; 0.3.0 </td>
+  <td> &ge; 0.3.0 </td>
   <td> &ge; 0.3.0 </td>
 </tr>
 <tr>
index f912c86bc4923d76ac962e932c16b5ae15ae1418..0dac4b388f2a4ef8bad295094af604b75f387e85 100644 (file)
@@ -1369,12 +1369,12 @@ static virDrvOpenStatus qemudOpen(virConnectPtr conn,
     if (qemu_driver == NULL)
         return VIR_DRV_OPEN_DECLINED;
 
-    if (uid) {
-        if (strcmp(name, "qemu:///session"))
+    if (uid != 0) {
+        if (STRNEQ (name, "qemu:///session"))
             return VIR_DRV_OPEN_DECLINED;
-    } else {
-        if (strcmp(name, "qemu:///system") &&
-            strcmp(name, "qemu:///session"))
+    } else { /* root */
+        if (STRNEQ (name, "qemu:///system") &&
+            STRNEQ (name, "qemu:///session"))
             return VIR_DRV_OPEN_DECLINED;
     }
 
@@ -1698,6 +1698,28 @@ static int qemudGetVersion(virConnectPtr conn, unsigned long *version) {
     return 0;
 }
 
+static char *
+qemudGetHostname (virConnectPtr conn)
+{
+    int r;
+    char hostname[HOST_NAME_MAX+1], *str;
+
+    r = gethostname (hostname, HOST_NAME_MAX+1);
+    if (r == -1) {
+        qemudReportError (conn, NULL, NULL, VIR_ERR_SYSTEM_ERROR,
+                          "%s", strerror (errno));
+        return NULL;
+    }
+    /* Caller frees this string. */
+    str = strdup (hostname);
+    if (str == NULL) {
+        qemudReportError (conn, NULL, NULL, VIR_ERR_SYSTEM_ERROR,
+                         "%s", strerror (errno));
+        return NULL;
+    }
+    return str;
+}
+
 static int qemudListDomains(virConnectPtr conn, int *ids, int nids) {
     struct qemud_driver *driver = (struct qemud_driver *)conn->privateData;
     struct qemud_vm *vm = driver->vms;
@@ -2621,8 +2643,8 @@ static virDriver qemuDriver = {
     NULL, /* supports_feature */
     qemudGetType, /* type */
     qemudGetVersion, /* version */
-    NULL, /* hostname */
-    NULL, /* uri */
+    qemudGetHostname, /* hostname */
+    NULL, /* URI - never called because remote_internal.c answers this */
     qemudGetMaxVCPUs, /* getMaxVcpus */
     qemudGetNodeInfo, /* nodeGetInfo */
     qemudGetCapabilities, /* getCapabilities */
index 1eed983efc4eb2f889511dcaa98c1fcbe7f2c7a4..6eb896ffe564f59f49da55a488b76d981845cf41 100644 (file)
@@ -693,9 +693,9 @@ remoteOpen (virConnectPtr conn, const char *uri_str, int flags)
         rflags |= VIR_DRV_OPEN_REMOTE_RO;
 
     if (uri_str) {
-        if (!strcmp(uri_str, "qemu:///system")) {
+        if (STREQ (uri_str, "qemu:///system")) {
             rflags |= VIR_DRV_OPEN_REMOTE_UNIX;
-        } else if (!strcmp(uri_str, "qemu:///session")) {
+        } else if (STREQ (uri_str, "qemu:///session")) {
             rflags |= VIR_DRV_OPEN_REMOTE_UNIX;
             if (getuid() > 0) {
                 rflags |= VIR_DRV_OPEN_REMOTE_USER;