more optimizations

This commit is contained in:
zefie
2025-08-11 16:16:44 -04:00
parent 6d660f387b
commit c4b8fd03dc
6 changed files with 22 additions and 20 deletions

View File

@@ -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:

View File

@@ -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();
}
}

View File

@@ -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;
}
}

View File

@@ -827,7 +827,7 @@ class WTVClientSessionData {
hasCap(cap) {
if (this.capabilities) {
return this.capabilities[cap] || false;
return this.capabilities.get(cap) || false;
}
return false;
}

View File

@@ -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}`);
}

View File

@@ -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",