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