[virt-tools-list] [virt-viewer v3 1/6] ovirt: Remove extra '/' from oVirt URI
Christophe Fergeau
cfergeau at redhat.com
Thu Aug 7 12:47:54 UTC 2014
The 'path' part of the URI will always start with a '/' when present as
this is what separates it from the hostname. When rebuilding the final
URI, the current code inserts a '/' by itself between the hostname and
the path, which results in URIs with an extra '/':
https://ovirt.example.com//some/path/api
This is not only cosmetic as this can cause issues with cookie handling
if libgovirt accesses //some/path/api while the cookie is set for
/some/path/api.
---
src/remote-viewer.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/remote-viewer.c b/src/remote-viewer.c
index a27a165..2a21d93 100644
--- a/src/remote-viewer.c
+++ b/src/remote-viewer.c
@@ -649,6 +649,7 @@ parse_ovirt_uri(const gchar *uri_str, char **rest_uri, char **name, char** usern
xmlFreeURI(uri);
return FALSE;
}
+ g_return_val_if_fail(*uri->path == '/', FALSE);
/* extract VM name from path */
path_elements = g_strsplit(uri->path, "/", -1);
@@ -668,7 +669,7 @@ parse_ovirt_uri(const gchar *uri_str, char **rest_uri, char **name, char** usern
/* build final URI */
rel_path = g_strjoinv("/", path_elements);
/* FIXME: how to decide between http and https? */
- *rest_uri = g_strdup_printf("https://%s/%s/api/", uri->server, rel_path);
+ *rest_uri = g_strdup_printf("https://%s%s/api/", uri->server, rel_path);
*name = vm_name;
g_free(rel_path);
g_strfreev(path_elements);
--
1.9.3
More information about the virt-tools-list
mailing list