[Spice-devel] [PATCH spice-gtk 6/9] session: parse spice+unix:// URI
Marc-André Lureau
marcandre.lureau at redhat.com
Tue Jan 13 08:38:25 PST 2015
---
gtk/spice-session.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/gtk/spice-session.c b/gtk/spice-session.c
index 6f04a1a..ecc9e86 100644
--- a/gtk/spice-session.c
+++ b/gtk/spice-session.c
@@ -349,6 +349,7 @@ spice_session_finalize(GObject *gobject)
}
#define URI_SCHEME_SPICE "spice://"
+#define URI_SCHEME_SPICE_UNIX "spice+unix://"
#define URI_QUERY_START ";?"
#define URI_QUERY_SEP ";&"
@@ -383,10 +384,15 @@ static int spice_parse_uri(SpiceSession *session, const char *original_uri)
uri = g_strdup(original_uri);
+ if (g_str_has_prefix(uri, URI_SCHEME_SPICE_UNIX)) {
+ path = g_strdup(uri + strlen(URI_SCHEME_SPICE_UNIX));
+ goto end;
+ }
+
/* Break up the URI into its various parts, scheme, authority,
* path (ignored) and query
*/
- if (strncmp(uri, URI_SCHEME_SPICE, strlen(URI_SCHEME_SPICE)) != 0) {
+ if (!g_str_has_prefix(uri, URI_SCHEME_SPICE)) {
g_warning("Expected a URI scheme of '%s' in URI '%s'",
URI_SCHEME_SPICE, uri);
goto fail;
@@ -489,14 +495,17 @@ static int spice_parse_uri(SpiceSession *session, const char *original_uri)
goto fail;
}
+end:
/* parsed ok -> apply */
g_free(uri);
g_free(unescaped_path);
+ g_free(s->unix_path);
g_free(s->host);
g_free(s->port);
g_free(s->tls_port);
g_free(s->username);
g_free(s->password);
+ s->unix_path = path;
s->host = host;
s->port = port;
s->tls_port = tls_port;
@@ -507,6 +516,7 @@ static int spice_parse_uri(SpiceSession *session, const char *original_uri)
fail:
g_free(uri);
g_free(unescaped_path);
+ g_free(path);
g_free(host);
g_free(port);
g_free(tls_port);
--
2.1.0
More information about the Spice-devel
mailing list