From: "Daniel P. Berrange" <berrange(a)redhat.com>
It is permissible to pass in NULL for a URI to libvirt, which
causes it to probe for a supported driver. In such a case we
should populate priv->uri with the resulting probed URI after
opening the connection
* libvirt-gobject/libvirt-gobject-connection.c: Populate URI
after opening connection, if NULL
---
libvirt-gobject/libvirt-gobject-connection.c | 16 ++++++++++++++++
1 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/libvirt-gobject/libvirt-gobject-connection.c
b/libvirt-gobject/libvirt-gobject-connection.c
index 786a026..ffdc62f 100644
--- a/libvirt-gobject/libvirt-gobject-connection.c
+++ b/libvirt-gobject/libvirt-gobject-connection.c
@@ -420,6 +420,22 @@ gboolean gvir_connection_open(GVirConnection *conn,
return FALSE;
}
+ if (!priv->uri) {
+ char *uri = virConnectGetURI(priv->conn);
+ if (!uri) {
+ if (err)
+ *err = gvir_error_new(GVIR_CONNECTION_ERROR,
+ 0,
+ "%s", "Unable to get connection
URI");
+ virConnectClose(priv->conn);
+ priv->conn = NULL;
+ g_mutex_unlock(priv->lock);
+ return FALSE;
+ }
+ priv->uri = g_strdup(uri);
+ free(uri);
+ }
+
if (virConnectDomainEventRegister(priv->conn, domain_event_cb, conn, NULL) != -1)
priv->domain_event = TRUE;
else
--
1.7.6.4