[PATCH spice-gtk 13/13] migration: delay switch host reconnect

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Wait until the main channel is reset() before initiating a reconnect.

With the added precondition checks in previous patch, we hit the
following critical otherwise:

(remote-viewer:4617): GSpice-CRITICAL **: channel_connect: assertion
'c->sock == NULL' failed
---
 gtk/channel-main.c  | 3 ---
 gtk/spice-channel.c | 6 ++++++
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/gtk/channel-main.c b/gtk/channel-main.c
index 18fa0a0..30f6d6c 100644
--- a/gtk/channel-main.c
+++ b/gtk/channel-main.c
@@ -2272,9 +2272,6 @@ static gboolean switch_host_delayed(gpointer data)
     spice_channel_disconnect(channel, SPICE_CHANNEL_SWITCHING);
     spice_session_switching_disconnect(session);
 
-    spice_channel_connect(channel);
-    spice_session_set_migration_state(session, SPICE_SESSION_MIGRATION_NONE);
-
     return FALSE;
 }
 
diff --git a/gtk/spice-channel.c b/gtk/spice-channel.c
index 571eeb1..b0a2ad6 100644
--- a/gtk/spice-channel.c
+++ b/gtk/spice-channel.c
@@ -2638,6 +2638,12 @@ static void channel_disconnect(SpiceChannel *channel)
     spice_channel_reset(channel, FALSE);
 
     g_return_if_fail(SPICE_IS_CHANNEL(channel));
+
+    if (c->state == SPICE_CHANNEL_STATE_SWITCHING) {
+        spice_channel_connect(channel);
+        spice_session_set_migration_state(spice_channel_get_session(channel),
+                                          SPICE_SESSION_MIGRATION_NONE);
+    }
 }
 
 /**
-- 
1.9.3

_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/spice-devel





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]