From 987f7dba19c72bcf7fbccc9785244077584086c7 Mon Sep 17 00:00:00 2001 From: rickparrish <rickparrish@users.noreply.github.com> Date: Thu, 7 Sep 2023 13:34:21 -0400 Subject: [PATCH] Replace the UseBinary flag with a SubProtocol check --- exec/websocketservice.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/exec/websocketservice.js b/exec/websocketservice.js index edf7678528..bc1bedf7e4 100644 --- a/exec/websocketservice.js +++ b/exec/websocketservice.js @@ -45,7 +45,7 @@ var FServerSocket = null; var FWebSocketDataQueue = ''; var FWebSocketHeader = {}; var FWebSocketState = WEBSOCKET_NEED_PACKET_START; -var FWebSocketUseBinary = false; +var FWebSocketSubProtocol = ''; var ipFile; // Main line @@ -456,7 +456,7 @@ function SendToWebSocketClientDraft0(AData) { function SendToWebSocketClientVersion7(AData) { var ToSend = ''; - if (FWebSocketUseBinary) { + if (FWebSocketSubProtocol === 'binary') { for (var i = 0; i < AData.length; i++) { ToSend += String.fromCharCode(AData[i]); } @@ -660,16 +660,16 @@ function ShakeHandsVersion7() { "Sec-WebSocket-Accept: " + Encoded + "\r\n"; if ('SubProtocol' in FWebSocketHeader) { if (FWebSocketHeader['SubProtocol'].indexOf('binary') >= 0) { - log(LOG_DEBUG, 'Selecting "binary" SubProtocol'); - Response += "Sec-WebSocket-Protocol: binary\r\n"; - FWebSocketUseBinary = true; + FWebSocketSubProtocol = 'binary'; } else if (FWebSocketHeader['SubProtocol'].indexOf('plain') >= 0) { - log(LOG_DEBUG, 'Selecting "plain" SubProtocol'); - Response += "Sec-WebSocket-Protocol: plain\r\n"; + FWebSocketSubProtocol = 'plain'; } else { log(LOG_ERR, 'No supported SubProtocols found ("binary" and "plain" are only supported options'); return false; } + + log(LOG_DEBUG, 'Selecting "' + FWebSocketSubProtocol + '" SubProtocol'); + Response += "Sec-WebSocket-Protocol: " + FWebSocketSubProtocol + "\r\n"; } Response += "\r\n"; -- GitLab