ovirt: Remove extra '/' from oVirt URI

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.
This commit is contained in:
Christophe Fergeau 2014-04-16 13:56:48 +02:00
parent 49abd71dae
commit 914f75ee8d

View File

@ -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);