From 9570c4fe191e20439d17e8116dd0a8a419ccd494 Mon Sep 17 00:00:00 2001 From: gjsjohnmurray Date: Tue, 5 Jul 2022 17:28:51 +0100 Subject: [PATCH] End the /terminalsocket session when window is closed or /logout command issued --- src/cls/WebTerminal/Engine.cls | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/cls/WebTerminal/Engine.cls b/src/cls/WebTerminal/Engine.cls index 1cacf41..5456d07 100644 --- a/src/cls/WebTerminal/Engine.cls +++ b/src/cls/WebTerminal/Engine.cls @@ -189,8 +189,10 @@ Method ClientLoop() As %Status [ Private ] for { set message = ..GetMessage() quit:(message = "") // if client is gone, finish looping - if (message.error) { - set st = ..Send("error", message.error) + if (message.error '= "") { + if (message.error '[ "ERROR #7951") { // don't try and send message if it was a WS close error + set st = ..Send("error", message.error) + } quit } if (message."_cb" '= "") { set ..handler = message."_cb" } @@ -250,6 +252,7 @@ Method Server() As %Status do ..Send("oLocalized", "%wsRefuse(" _ authMessage _ ")") } do ..EndServer() + set %session.EndSession = 1 quit $$$OK }