[Spice-devel] [PATCH spice-gtk] usb: channel-new handler to be after default handlers

Marc-André Lureau marcandre.lureau at redhat.com
Wed Apr 29 15:59:05 PDT 2015


Client usually connect to channel-new to connect their
handlers, such as open-fd.

The usbmanager channel-new handler will call channel_connect() on usbredir
channels, which may call open-fd.

However, open-fd can be emitted before the client had a chance to
connect their handlers (from the channel-new callback).

Connecting after the default handler solves this case.

Fixes:
https://bugzilla.gnome.org/show_bug.cgi?id=748665
---
 gtk/usb-device-manager.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/gtk/usb-device-manager.c b/gtk/usb-device-manager.c
index e11eae0..7aa60c4 100644
--- a/gtk/usb-device-manager.c
+++ b/gtk/usb-device-manager.c
@@ -310,8 +310,7 @@ static gboolean spice_usb_device_manager_initable_init(GInitable  *initable,
 #endif
 
     /* Start listening for usb channels connect/disconnect */
-    g_signal_connect(priv->session, "channel-new",
-                     G_CALLBACK(channel_new), self);
+    spice_g_signal_connect_object(priv->session, "channel-new", G_CALLBACK(channel_new), self, G_CONNECT_AFTER);
     g_signal_connect(priv->session, "channel-destroy",
                      G_CALLBACK(channel_destroy), self);
     list = spice_session_get_channels(priv->session);
-- 
2.1.0



More information about the Spice-devel mailing list