From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <d.csapak@proxmox.com>
Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits))
 (No client certificate requested)
 by lists.proxmox.com (Postfix) with ESMTPS id BBE3B74EC5
 for <pve-devel@lists.proxmox.com>; Wed, 23 Jun 2021 09:46:03 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
 by firstgate.proxmox.com (Proxmox) with ESMTP id A9D7A2F2A8
 for <pve-devel@lists.proxmox.com>; Wed, 23 Jun 2021 09:45:33 +0200 (CEST)
Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com
 [94.136.29.106])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits))
 (No client certificate requested)
 by firstgate.proxmox.com (Proxmox) with ESMTPS id 3C3E12F29F
 for <pve-devel@lists.proxmox.com>; Wed, 23 Jun 2021 09:45:33 +0200 (CEST)
Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1])
 by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 0AFBF464F3
 for <pve-devel@lists.proxmox.com>; Wed, 23 Jun 2021 09:45:33 +0200 (CEST)
From: Dominik Csapak <d.csapak@proxmox.com>
To: pve-devel@lists.proxmox.com
Date: Wed, 23 Jun 2021 09:45:32 +0200
Message-Id: <20210623074532.12141-1-d.csapak@proxmox.com>
X-Mailer: git-send-email 2.20.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-SPAM-LEVEL: Spam detection results:  0
 AWL 0.781 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment
 SPF_HELO_NONE           0.001 SPF: HELO does not publish an SPF Record
 SPF_PASS               -0.001 SPF: sender matches SPF record
Subject: [pve-devel] [PATCH spiceterm] screen.c: fix exiting on client
 disconnect
X-BeenThere: pve-devel@lists.proxmox.com
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com>
List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe>
List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/>
List-Post: <mailto:pve-devel@lists.proxmox.com>
List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help>
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe>
X-List-Received-Date: Wed, 23 Jun 2021 07:46:03 -0000

the way we detected a client_disconnect does not work anymore with
spice-server >= 0.14.3, but there is a convienient function
that exits the spice-server on client disconnect

there is a slight behaviour change that should not make a big difference:

previously, if a user used the same '.vv' file twice, the first client
got disconnected and the second would connect

now, because the server closes on disconnect, the second client is
not be able to connect anymore

using our ui though, every click on 'shell>spice' generates a new '.vv'
file that works though (and for container shells we use dtach to mux)

i could not (in reasonable time) find out why the first client
disconnects at all, and also could not find another way to detect a
client disconnect that is similar to our previous method

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
 src/screen.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/screen.c b/src/screen.c
index 871d16f..ee6e34a 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -789,6 +789,8 @@ spice_screen_new(
         }
     }
 
+    spice_server_set_exit_on_disconnect(server, 1);
+
     int res = spice_server_init(server, core);
     if (res != 0) {
         g_error("spice_server_init failed, res = %d\n", res);
-- 
2.20.1