Blob Blame History Raw
From 8ebff59a59bc89c4533240348d7c231d9a07f886 Mon Sep 17 00:00:00 2001
From: Pavel Grunt <pgrunt@redhat.com>
Date: Thu, 18 May 2017 11:59:18 +0200
Subject: [PATCH virt-viewer 33/35] virt-viewer: Ensure to not close during
 migration
To: virt-tools-list@redhat.com

Take a look at the shutdown event detail before killing
the connection. Otherwise it breaks the SPICE seamless migration
feature.

Regression since commit a62827d28c6b69e90102e4c1c8043cbddad8929a

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1442929
Signed-off-by: Pavel Grunt <pgrunt@redhat.com>
Acked-by: Daniel P. Berrange <berrange@redhat.com>
(cherry picked from commit 209c80375b152dc02f903a3ac72272872b4e5270)
---
 src/virt-viewer.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/virt-viewer.c b/src/virt-viewer.c
index fe10229..875f86e 100644
--- a/src/virt-viewer.c
+++ b/src/virt-viewer.c
@@ -52,6 +52,10 @@
 #include "virt-viewer-auth.h"
 #include "virt-viewer-util.h"
 
+#ifdef HAVE_SPICE_GTK
+#include "virt-viewer-session-spice.h"
+#endif
+
 struct _VirtViewerPrivate {
     char *uri;
     virConnectPtr conn;
@@ -737,6 +741,13 @@ virt_viewer_domain_event(virConnectPtr conn G_GNUC_UNUSED,
     switch (event) {
     case VIR_DOMAIN_EVENT_STOPPED:
         session = virt_viewer_app_get_session(app);
+#ifdef HAVE_SPICE_GTK
+        /* do not disconnect due to migration */
+        if (detail == VIR_DOMAIN_EVENT_STOPPED_MIGRATED &&
+            VIRT_VIEWER_IS_SESSION_SPICE(session)) {
+            break;
+        }
+#endif
         if (session != NULL)
             virt_viewer_session_close(session);
         break;
-- 
2.13.0