Looks good, you moved the code out of a #if GLIB_CHECK_VERSION(2,26,0) block, this seems ok, but I prefer to mention it. Christophe On Mon, Jan 28, 2013 at 09:19:32PM +0100, Marc-André Lureau wrote: > --- > gtk/spice-session-priv.h | 2 ++ > gtk/spice-session.c | 40 +++++++++++++++++++++++----------------- > 2 files changed, 25 insertions(+), 17 deletions(-) > > diff --git a/gtk/spice-session-priv.h b/gtk/spice-session-priv.h > index 804658d..7ee6b6c 100644 > --- a/gtk/spice-session-priv.h > +++ b/gtk/spice-session-priv.h > @@ -22,6 +22,7 @@ > #include <gio/gio.h> > #include "desktop-integration.h" > #include "spice-session.h" > +#include "spice-proxy.h" > #include "spice-gtk-session.h" > #include "spice-channel-cache.h" > #include "decode.h" > @@ -44,6 +45,7 @@ struct _SpiceSessionPrivate { > char *cert_subject; > guint verify; > gboolean read_only; > + SpiceProxy *proxy; > > /* whether to enable audio */ > gboolean audio; > diff --git a/gtk/spice-session.c b/gtk/spice-session.c > index 0e405bc..5beb6a1 100644 > --- a/gtk/spice-session.c > +++ b/gtk/spice-session.c > @@ -118,6 +118,26 @@ enum { > static guint signals[SPICE_SESSION_LAST_SIGNAL]; > > > +static SpiceProxy* get_proxy(void) > +{ > + GError *error = NULL; > + SpiceProxy *proxy; > + > + const gchar *proxy_env = g_getenv("SPICE_PROXY"); > + if (proxy_env == NULL || strlen(proxy_env) == 0) > + return NULL; > + > + proxy = spice_proxy_new(); > + if (!spice_proxy_parse(proxy, proxy_env, &error)) > + g_clear_object(&proxy); > + if (error) { > + g_warning ("%s", error->message); > + g_clear_error (&error); > + } > + > + return proxy; > +} > + > static void spice_session_init(SpiceSession *session) > { > SpiceSessionPrivate *s; > @@ -147,6 +167,7 @@ static void spice_session_init(SpiceSession *session) > cache_init(&s->images, "image"); > cache_init(&s->palettes, "palette"); > s->glz_window = glz_decoder_window_new(); > + s->proxy = get_proxy(); > } > > static void > @@ -179,6 +200,7 @@ spice_session_dispose(GObject *gobject) > g_clear_object(&s->desktop_integration); > g_clear_object(&s->gtk_session); > g_clear_object(&s->usb_manager); > + g_clear_object(&s->proxy); > > /* Chain up to the parent class */ > if (G_OBJECT_CLASS(spice_session_parent_class)->dispose) > @@ -1647,21 +1669,6 @@ static void proxy_lookup_ready(GObject *source_object, GAsyncResult *result, > open_host_connectable_connect(open_host, G_SOCKET_CONNECTABLE(address)); > g_resolver_free_addresses(addresses); > } > - > -static SpiceProxy* get_proxy(GError **error) > -{ > - SpiceProxy *proxy; > - > - const gchar *proxy_env = g_getenv("SPICE_PROXY"); > - if (proxy_env == NULL || strlen(proxy_env) == 0) > - return NULL; > - > - proxy = spice_proxy_new(); > - if (!spice_proxy_parse(proxy, proxy_env, error)) > - g_clear_object(&proxy); > - > - return proxy; > -} > #endif > > /* main context */ > @@ -1674,7 +1681,7 @@ static gboolean open_host_idle_cb(gpointer data) > g_return_val_if_fail(open_host->socket == NULL, FALSE); > > #if GLIB_CHECK_VERSION(2,26,0) > - open_host->proxy = get_proxy(&open_host->error); > + open_host->proxy = s->proxy; > if (open_host->error != NULL) { > coroutine_yieldto(open_host->from, NULL); > return FALSE; > @@ -1729,7 +1736,6 @@ GSocket* spice_session_channel_open_host(SpiceSession *session, SpiceChannel *ch > } > > g_clear_object(&open_host.client); > - g_clear_object(&open_host.proxy); > return open_host.socket; > } > > -- > 1.8.1.1.439.g50a6b54 > > _______________________________________________ > Spice-devel mailing list > Spice-devel@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/spice-devel
Attachment:
pgpWYtpyLncoE.pgp
Description: PGP signature
_______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel