ACK. On Tue, Jan 27, 2015 at 05:10:15PM +0100, Marc-André Lureau wrote: > --- > gtk/spice-session.c | 56 ++++++++++++++++++++++++++++++++++++++--------------- > 1 file changed, 40 insertions(+), 16 deletions(-) > > diff --git a/gtk/spice-session.c b/gtk/spice-session.c > index 98708c8..f9e1fed 100644 > --- a/gtk/spice-session.c > +++ b/gtk/spice-session.c > @@ -19,7 +19,9 @@ > > #include <gio/gio.h> > #include <glib.h> > - > +#ifdef G_OS_UNIX > +#include <gio/gunixsocketaddress.h> > +#endif > #include "common/ring.h" > > #include "spice-client.h" > @@ -1980,21 +1982,36 @@ static gboolean open_host_idle_cb(gpointer data) > return FALSE; > } > > - if (open_host->proxy) > + if (open_host->proxy) { > g_resolver_lookup_by_name_async(g_resolver_get_default(), > spice_uri_get_hostname(open_host->proxy), > open_host->cancellable, > proxy_lookup_ready, open_host); > - else > - { > - GSocketConnectable *address; > + } else { > + GSocketConnectable *address = NULL; > + > + if (s->unix_path) { > + SPICE_DEBUG("open unix path %s", s->unix_path); > +#ifdef G_OS_UNIX > + address = G_SOCKET_CONNECTABLE(g_unix_socket_address_new(s->unix_path)); > +#else > + g_set_error_literal(&open_host->error, SPICE_CLIENT_ERROR, SPICE_CLIENT_ERROR_FAILED, > + "Unix path unsupported on this platform"); > +#endif > + } else { > + SPICE_DEBUG("open host %s:%d", s->host, open_host->port); > + address = g_network_address_new(s->host, open_host->port); > + } > + > + if (address == NULL || open_host->error != NULL) { > + coroutine_yieldto(open_host->from, NULL); > + return FALSE; > + } > > - address = g_network_address_new(s->host, open_host->port); > open_host_connectable_connect(open_host, address); > g_object_unref(address); > } > > - SPICE_DEBUG("open host %s:%d", s->host, open_host->port); > if (open_host->proxy != NULL) { > gchar *str = spice_uri_to_string(open_host->proxy); > SPICE_DEBUG("(with proxy %s)", str); > @@ -2028,15 +2045,22 @@ GSocketConnection* spice_session_channel_open_host(SpiceSession *session, SpiceC > spice_strv_contains(s->secure_channels, name)) > *use_tls = TRUE; > > - port = *use_tls ? s->tls_port : s->port; > - if (port == NULL) > - return NULL; > - > - open_host.port = strtol(port, &endptr, 10); > - if (*port == '\0' || *endptr != '\0' || > - open_host.port <= 0 || open_host.port > G_MAXUINT16) { > - g_warning("Invalid port value %s", port); > - return NULL; > + if (s->unix_path) { > + if (*use_tls) { > + CHANNEL_DEBUG(channel, "No TLS for Unix sockets"); > + return NULL; > + } > + } else { > + port = *use_tls ? s->tls_port : s->port; > + if (port == NULL) > + return NULL; > + > + open_host.port = strtol(port, &endptr, 10); > + if (*port == '\0' || *endptr != '\0' || > + open_host.port <= 0 || open_host.port > G_MAXUINT16) { > + g_warning("Invalid port value %s", port); > + return NULL; > + } > } > > open_host.client = g_socket_client_new(); > -- > 2.1.0 > > _______________________________________________ > Spice-devel mailing list > Spice-devel@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/spice-devel
Attachment:
pgp4yGq1Zx4f7.pgp
Description: PGP signature
_______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel