]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
admin: Add support for URI aliases
authorErik Skultety <eskultet@redhat.com>
Fri, 30 Oct 2015 11:11:52 +0000 (12:11 +0100)
committerErik Skultety <eskultet@redhat.com>
Mon, 30 Nov 2015 08:44:28 +0000 (09:44 +0100)
Now that we introduced URI support in libvirt-admin, we should also support URI
aliases during connection establishment phase. After applying this patch,
virAdmConnectOpen will also support VIR_CONNECT_NO_ALIASES flag.

src/libvirt-admin.c

index a0f4ebc06e41dbebb303cb805f28cfb6047e815d..b82b745a7ac71fdfa679b2af9a87737aa4132730 100644 (file)
@@ -195,6 +195,7 @@ virAdmConnectPtr
 virAdmConnectOpen(const char *name, unsigned int flags)
 {
     char *sock_path = NULL;
+    char *alias = NULL;
     virAdmConnectPtr conn = NULL;
     virConfPtr conf = NULL;
 
@@ -203,6 +204,7 @@ virAdmConnectOpen(const char *name, unsigned int flags)
 
     VIR_DEBUG("flags=%x", flags);
     virResetLastError();
+    virCheckFlags(VIR_CONNECT_NO_ALIASES, NULL);
 
     if (!(conn = virAdmConnectNew()))
         goto error;
@@ -213,7 +215,11 @@ virAdmConnectOpen(const char *name, unsigned int flags)
     if (!name && !(name = virAdmGetDefaultURI(conf)))
         goto error;
 
-    if (!(conn->uri = virURIParse(name)))
+    if ((!(flags & VIR_CONNECT_NO_ALIASES) &&
+         virURIResolveAlias(conf, name, &alias) < 0))
+        goto error;
+
+    if (!(conn->uri = virURIParse(alias ? alias : name)))
         goto error;
 
     if (!(sock_path = getSocketPath(conn->uri)))
@@ -229,6 +235,7 @@ virAdmConnectOpen(const char *name, unsigned int flags)
 
  cleanup:
     VIR_FREE(sock_path);
+    VIR_FREE(alias);
     virConfFree(conf);
     return conn;