diff --git a/ChangeLog b/ChangeLog index 74dff1edb2..df4a201a0f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Wed May 2 18:42:00 BST 2007 Richard Jones + + * src/libvirt.c, src/qemu_internal.c: Allow network + drivers to DECLINE to take accept a call. Only fail + outright if the network driver reports an error. + * src/qemu_internal.c (qemuNetworkOpen): Fix path to + driver used in the non-root case. + Wed May 2 18:38:00 BST 2007 Richard Jones * src/proxy_internal.c, src/qemu_internal.c, src/test.c, diff --git a/src/libvirt.c b/src/libvirt.c index 53393968c4..b1c3d39d95 100644 --- a/src/libvirt.c +++ b/src/libvirt.c @@ -295,8 +295,8 @@ do_open (const char *name, int flags) for (i = 0; i < virNetworkDriverTabCount; i++) { res = virNetworkDriverTab[i]->open (ret, name, flags); - if (res == -1) goto failed; - else if (res == 0) { + if (res == VIR_DRV_OPEN_ERROR) goto failed; + else if (res == VIR_DRV_OPEN_SUCCESS) { ret->networkDriver = virNetworkDriverTab[i]; break; } diff --git a/src/qemu_internal.c b/src/qemu_internal.c index 1e677a21d2..6362bf2b3e 100644 --- a/src/qemu_internal.c +++ b/src/qemu_internal.c @@ -963,10 +963,10 @@ static int qemuNetworkOpen(virConnectPtr conn, netpriv->qemud_fd = priv->qemud_fd; netpriv->shared = 1; conn->networkPrivateData = netpriv; - return 0; + return VIR_DRV_OPEN_SUCCESS; } else { /* Non-QEMU driver is active - open a new connection */ - const char *drvname = geteuid() == 0 ? "qemu:///system" : "qemu://session"; + const char *drvname = geteuid() == 0 ? "qemu:///system" : "qemu:///session"; xmlURIPtr uri = xmlParseURI(drvname); int ret = qemuOpenConnection(conn, uri, flags & VIR_DRV_OPEN_RO ? 1 : 0); xmlFreeURI(uri); @@ -978,7 +978,7 @@ static int qemuNetworkOpen(virConnectPtr conn, netpriv->qemud_fd = ret; netpriv->shared = 0; conn->networkPrivateData = netpriv; - return 0; + return VIR_DRV_OPEN_SUCCESS; } } }