From c4b8fd03dc12ce009b1931f895edce8ac27acd4c Mon Sep 17 00:00:00 2001 From: zefie Date: Mon, 11 Aug 2025 16:16:44 -0400 Subject: [PATCH] more optimizations --- zefie_wtvp_minisrv/app.js | 11 ++++++---- .../includes/ServiceVault/wtv-tricks/info.js | 2 +- .../includes/classes/WTVClientCapabilities.js | 21 +++++++++---------- .../includes/classes/WTVClientSessionData.js | 2 +- zefie_wtvp_minisrv/includes/classes/WTVIRC.js | 2 +- zefie_wtvp_minisrv/package-lock.json | 4 ++-- 6 files changed, 22 insertions(+), 20 deletions(-) diff --git a/zefie_wtvp_minisrv/app.js b/zefie_wtvp_minisrv/app.js index f102ab42..2a36d713 100644 --- a/zefie_wtvp_minisrv/app.js +++ b/zefie_wtvp_minisrv/app.js @@ -185,7 +185,7 @@ function configureService(service_name, service_obj, initial = false) { } // Where we store our session information -const ssid_sessions = []; +let ssid_sessions = []; let socket_sessions = []; const ports = []; @@ -626,8 +626,10 @@ async function processPath(socket, service_vault_file_path, request_headers = [] try { if (typeof vmResults[item[1]] !== "undefined") { // Safely assign without eval - if (item[0] === `ssid_sessions['${socket.ssid}']` && privileged) { + if (item[0] === `ssid_sessions['${socket.ssid}']`) { ssid_sessions[socket.ssid] = vmResults[item[1]]; + } else if (item[0] === 'ssid_sessions' && privileged) { + ssid_sessions = vmResults[item[1]]; } else if (item[0] === 'headers') { headers = vmResults[item[1]]; } else if (item[0] === 'data') { @@ -808,8 +810,10 @@ async function processPath(socket, service_vault_file_path, request_headers = [] try { if (typeof vmResults[item[1]] !== "undefined") { // Safely assign without eval - if (item[0] === `ssid_sessions['${socket.ssid}']` && privileged) { + if (item[0] === `ssid_sessions['${socket.ssid}']`) { ssid_sessions[socket.ssid] = vmResults[item[1]]; + } else if (item[0] === 'ssid_sessions' && privileged) { + ssid_sessions = vmResults[item[1]]; } else if (item[0] === 'headers') { headers = vmResults[item[1]]; } else if (item[0] === 'data') { @@ -1530,7 +1534,6 @@ async function sendToClient(socket, headers_obj, data = null) { headers_obj["wtv-lzpf"] = 0; const wtvcomp = new LZPF(); data = wtvcomp.compress(data); - wtvcomp = null; // Makes the garbage gods happy so it cleans up our mess break; case 2: diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/wtv-tricks/info.js b/zefie_wtvp_minisrv/includes/ServiceVault/wtv-tricks/info.js index e80614d2..c27d3afb 100644 --- a/zefie_wtvp_minisrv/includes/ServiceVault/wtv-tricks/info.js +++ b/zefie_wtvp_minisrv/includes/ServiceVault/wtv-tricks/info.js @@ -4,7 +4,7 @@ let client_caps = null; if (socket.ssid != null) { if (session_data.capabilities) { - client_caps = session_data.capabilities; + client_caps = session_data.capabilities.get(); } } diff --git a/zefie_wtvp_minisrv/includes/classes/WTVClientCapabilities.js b/zefie_wtvp_minisrv/includes/classes/WTVClientCapabilities.js index 9bbccca7..1505f60a 100644 --- a/zefie_wtvp_minisrv/includes/classes/WTVClientCapabilities.js +++ b/zefie_wtvp_minisrv/includes/classes/WTVClientCapabilities.js @@ -86,18 +86,18 @@ class WTVClientCapabilities { this.capabilities_table = capabilities_table; - var capabilities = new Array(); + const capabilities = []; // might want to pass without a flag to get the table if (wtv_capability_flags != null) { // define function to convert hex string to binary string (0s & 1s) - var hex2bin = function (hex) { - var binary = ""; - var remainingSize = hex.length; - for (var p = 0; p < hex.length / 8; p++) { + const hex2bin = function (hex) { + let binary = ""; + let remainingSize = hex.length; + for (let p = 0; p < hex.length / 8; p++) { //In case remaining hex length (or initial) is not multiple of 8 - var blockSize = remainingSize < 8 ? remainingSize : 8; + let blockSize = remainingSize < 8 ? remainingSize : 8; binary += parseInt(hex.slice(p * 8, blockSize), 16).toString(2); @@ -107,18 +107,18 @@ class WTVClientCapabilities { } // convert wtv_capability_flags to binary string, reverse the string, and split into array containing each character; - var bitfield = hex2bin(wtv_capability_flags).split("").reverse(); + const bitfield = hex2bin(wtv_capability_flags).split("").reverse(); this.debug("bitfield:", bitfield) - var add = function (flag_name, flag) { + const add = function (flag_name, flag) { capabilities[flag_name] = flag; } - var i = 0; + let i = 0; // process bitfield and set capabilities Object.keys(bitfield).forEach(function (k) { // Convert binary to boolean, 0 to false, 1 to true - var bitfield_result = (bitfield[k] == "1") + const bitfield_result = (bitfield[k] == "1") // set flags based on position of bit try { @@ -131,7 +131,6 @@ class WTVClientCapabilities { }); this.capabilities = capabilities; - return capabilities; } } diff --git a/zefie_wtvp_minisrv/includes/classes/WTVClientSessionData.js b/zefie_wtvp_minisrv/includes/classes/WTVClientSessionData.js index 2651d178..d6ac00c1 100644 --- a/zefie_wtvp_minisrv/includes/classes/WTVClientSessionData.js +++ b/zefie_wtvp_minisrv/includes/classes/WTVClientSessionData.js @@ -827,7 +827,7 @@ class WTVClientSessionData { hasCap(cap) { if (this.capabilities) { - return this.capabilities[cap] || false; + return this.capabilities.get(cap) || false; } return false; } diff --git a/zefie_wtvp_minisrv/includes/classes/WTVIRC.js b/zefie_wtvp_minisrv/includes/classes/WTVIRC.js index 3f23d555..b6d6dcf5 100644 --- a/zefie_wtvp_minisrv/includes/classes/WTVIRC.js +++ b/zefie_wtvp_minisrv/includes/classes/WTVIRC.js @@ -252,7 +252,7 @@ class WTVIRC { data = data.toString('ascii'); } if (data.length > this.max_message_len) { - data = data.alice(0, this.max_message_len - 2) + '\r\n'; + data = data.slice(0, this.max_message_len - 2) + '\r\n'; this.debugLog('warn', `Data length exceeds max_message_len (${this.max_message_len}), truncating: ${data.length} > ${this.max_message_len}`); } diff --git a/zefie_wtvp_minisrv/package-lock.json b/zefie_wtvp_minisrv/package-lock.json index 8ff89542..05932d73 100644 --- a/zefie_wtvp_minisrv/package-lock.json +++ b/zefie_wtvp_minisrv/package-lock.json @@ -1,12 +1,12 @@ { "name": "zefie_wtvp_minisrv", - "version": "0.9.63-pre", + "version": "0.9.64-dev", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "zefie_wtvp_minisrv", - "version": "0.9.63-pre", + "version": "0.9.64-dev", "license": "GPL3", "dependencies": { "adm-zip": "^0.5.12",