From 233c304b3c6560951a0e5635143c1627aa162718 Mon Sep 17 00:00:00 2001 From: Marcel Baumgartner Date: Sun, 4 Jun 2023 21:41:15 +0200 Subject: [PATCH] Fixed error when closing a failed websocket connection --- Moonlight/App/Helpers/Wings/WingsConsole.cs | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/Moonlight/App/Helpers/Wings/WingsConsole.cs b/Moonlight/App/Helpers/Wings/WingsConsole.cs index a15bbfcc..c51910a8 100644 --- a/Moonlight/App/Helpers/Wings/WingsConsole.cs +++ b/Moonlight/App/Helpers/Wings/WingsConsole.cs @@ -142,18 +142,28 @@ public class WingsConsole : IDisposable switch (eventData.Event) { case "jwt error": - await WebSocket.CloseAsync(WebSocketCloseStatus.Empty, "Jwt error detected", - CancellationToken.None); + if (WebSocket != null) + { + if (WebSocket.State == WebSocketState.Connecting || WebSocket.State == WebSocketState.Open) + await WebSocket.CloseAsync(WebSocketCloseStatus.Empty, null, CancellationToken.None); + + WebSocket.Dispose(); + } await UpdateServerState(ServerState.Offline); await UpdateConsoleState(ConsoleState.Disconnected); - await SaveMessage("Received a jwt error", true); + await SaveMessage("Received a jwt error. Disconnected", true); break; case "token expired": - await WebSocket.CloseAsync(WebSocketCloseStatus.Empty, "Jwt error detected", - CancellationToken.None); + if (WebSocket != null) + { + if (WebSocket.State == WebSocketState.Connecting || WebSocket.State == WebSocketState.Open) + await WebSocket.CloseAsync(WebSocketCloseStatus.Empty, null, CancellationToken.None); + + WebSocket.Dispose(); + } await UpdateServerState(ServerState.Offline); await UpdateConsoleState(ConsoleState.Disconnected);