From: Richard W.M. Jones Date: Thu, 20 Sep 2007 17:13:39 +0000 (+0000) Subject: Thu Sep 20 18:10:00 BST 2007 Richard W.M. Jones X-Git-Tag: LIBVIRT_0_3_3~18 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9a79baba76f29d6b80a8e4ef1a89503d533f188f;p=thirdparty%2Flibvirt.git Thu Sep 20 18:10:00 BST 2007 Richard W.M. Jones * src/qemu_driver.c, docs/libvir.html: Support virConnectGetHostname and virConnectGetURI for qemu driver. --- diff --git a/ChangeLog b/ChangeLog index 88fd8b888f..12024549a1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Thu Sep 20 18:10:00 BST 2007 Richard W.M. Jones + + * 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 * src/libvirt.c: Don't try to generate an error message with diff --git a/docs/hvsupport.html b/docs/hvsupport.html index b6244e088e..f390d91090 100644 --- a/docs/hvsupport.html +++ b/docs/hvsupport.html @@ -27,8 +27,8 @@ updated on 2007-08-20. virConnectGetHostname 0.3.0 ≥ 0.3.0 - - + ≥ 0.3.3 + ≥ 0.3.3 ≥ 0.3.0 virConnectGetMaxVcpus 0.2.1 @@ -45,8 +45,8 @@ updated on 2007-08-20. virConnectGetURI 0.3.0 ≥ 0.3.0 - - + ≥ 0.3.0 + ≥ 0.3.0 ≥ 0.3.0 virConnectGetVersion All diff --git a/docs/libvir.html b/docs/libvir.html index 47a1d22859..e5382bb2cc 100644 --- a/docs/libvir.html +++ b/docs/libvir.html @@ -2785,8 +2785,8 @@ updated on 2007-08-20. virConnectGetHostname 0.3.0 ≥ 0.3.0 - - + ≥ 0.3.3 + ≥ 0.3.3 ≥ 0.3.0 @@ -2809,8 +2809,8 @@ updated on 2007-08-20. virConnectGetURI 0.3.0 ≥ 0.3.0 - - + ≥ 0.3.0 + ≥ 0.3.0 ≥ 0.3.0 diff --git a/src/qemu_driver.c b/src/qemu_driver.c index f912c86bc4..0dac4b388f 100644 --- a/src/qemu_driver.c +++ b/src/qemu_driver.c @@ -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 */ diff --git a/src/remote_internal.c b/src/remote_internal.c index 1eed983efc..6eb896ffe5 100644 --- a/src/remote_internal.c +++ b/src/remote_internal.c @@ -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;