Blob Blame History Raw
From 74fdd26c949847bca41c7ca71bc88d30d92d92aa Mon Sep 17 00:00:00 2001
From: Uri Lublin <uril@redhat.com>
Date: Sun, 17 Jan 2021 19:25:57 +0200
Subject: [PATCH] vnc: no dialog for server-closed-connection error

Following commit de5cd71, when the server closes the connection
(likely when qemu-kvm exits), a dialog is shown to the user.

This behavior change is not good for automatic tests that expect
virt-viewer to exit without any dialog.

This patch makes sure no dialog is shown for this error, by
checking if the VNC connection was already initialized.

Signed-off-by: Uri Lublin <uril@redhat.com>
---
 src/virt-viewer-app.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/virt-viewer-app.c b/src/virt-viewer-app.c
index 8d795ca..4a579f8 100644
--- a/src/virt-viewer-app.c
+++ b/src/virt-viewer-app.c
@@ -139,6 +139,7 @@ struct _VirtViewerAppPrivate {
     gboolean kiosk;
     gboolean vm_ui;
     gboolean vm_running;
+    gboolean initialized;
 
     VirtViewerSession *session;
     gboolean active;
@@ -1651,6 +1652,7 @@ virt_viewer_app_deactivate(VirtViewerApp *self, gboolean connect_error)
         virt_viewer_session_close(VIRT_VIEWER_SESSION(priv->session));
     }
 
+    priv->initialized = FALSE;
     priv->connected = FALSE;
     priv->active = FALSE;
     priv->started = FALSE;
@@ -1689,6 +1691,7 @@ static void
 virt_viewer_app_initialized(VirtViewerSession *session G_GNUC_UNUSED,
                             VirtViewerApp *self)
 {
+    self->priv->initialized = TRUE;
     virt_viewer_app_update_title(self);
 }
 
@@ -1727,7 +1730,10 @@ virt_viewer_app_error(VirtViewerSession *session G_GNUC_UNUSED,
 {
     VirtViewerAppPrivate *priv = self->priv;
 
-    priv->connected = FALSE; /* display error dialog */
+    /* Do not open a dialog if the connection was initialized
+     * This happens when the VNC server closes the connection */
+    if (!priv->initialized)
+        priv->connected = FALSE; /* display error dialog */
 
     virt_viewer_app_disconnected(session, msg, self);
 }
-- 
2.29.2