--- 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 03e0618..1050fd3 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 = 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; @@ -484,19 +490,23 @@ static int spice_parse_uri(SpiceSession *session, const char *original_uri) } } + path = NULL; if (port == NULL && tls_port == NULL) { g_warning("Missing port or tls-port in spice URI '%s'", 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 = g_strdup(path); s->host = host; s->port = port; s->tls_port = tls_port; -- 2.1.0 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel