</tr><tr><td> virConnectGetHostname </td>
<td> 0.3.0 </td>
<td> ≥ 0.3.0 </td>
- <td> </td>
- <td> </td>
+ <td> ≥ 0.3.3 </td>
+ <td> ≥ 0.3.3 </td>
<td> ≥ 0.3.0 </td>
</tr><tr><td> virConnectGetMaxVcpus </td>
<td> 0.2.1 </td>
</tr><tr><td> virConnectGetURI </td>
<td> 0.3.0 </td>
<td> ≥ 0.3.0 </td>
- <td> </td>
- <td> </td>
+ <td> ≥ 0.3.0 </td>
+ <td> ≥ 0.3.0 </td>
<td> ≥ 0.3.0 </td>
</tr><tr><td> virConnectGetVersion </td>
<td> All </td>
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;
}
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;
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 */
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;