From cc2ed1c277b3261c904a10cd400a0fbbf6823356 Mon Sep 17 00:00:00 2001 From: fullgream Date: Sun, 17 Aug 2025 23:44:55 +0300 Subject: [PATCH] Add tabs on packet-parser code --- server/packet-parser.js | 55 ++++++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 25 deletions(-) diff --git a/server/packet-parser.js b/server/packet-parser.js index b04df25..e663817 100644 --- a/server/packet-parser.js +++ b/server/packet-parser.js @@ -1,33 +1,38 @@ -function simpleParseHeaders (packet) { - return Object.fromEntries(packet.match(/[a-z\-]{1,}:\s{0,}.{1,}(\n|\r){1,}/gmiu)?.map(i => { - const [key, value] = i.split(/:\s{0,}/miu); - return [ - key.trim(), - value.trim() - ]; - }) ?? []); +function simpleParseHeaders(packet) { + return Object.fromEntries( + packet.match(/[a-z\-]{1,}:\s{0,}.{1,}(\n|\r){1,}/gimu)?.map((i) => { + const [key, value] = i.split(/:\s{0,}/imu); + return [key.trim(), value.trim()]; + }) ?? [], + ); } class PacketParseResult { - constructor (result, isEncrypted = false) { - this.result = result; - this.isEncrypted = isEncrypted; - } + constructor(result, isEncrypted = false) { + this.result = result; + this.isEncrypted = isEncrypted; + } } module.exports = async (bytes) => { - //console.log("((('", bytes.toString("utf8"), "')))"); - const packet = bytes.toString("utf8"); + //console.log("((('", bytes.toString("utf8"), "')))"); + const packet = bytes.toString("utf8"); - const isHTTP = packet.match(/(GET|POST|PUT|DELETE|OPTIONS|HEAD|PATCH|TRACE|CONNECT)\s{1,}\/[a-zA-Z0-9_\-\.\/?=&%:]{0,}\s{1,}HTTP(S|)\/(1\.0|1\.1|2\.0)(\n|\r)/gmu)?.length > 0 ?? false; + const isHTTP = + packet.match( + /(GET|POST|PUT|DELETE|OPTIONS|HEAD|PATCH|TRACE|CONNECT)\s{1,}\/[a-zA-Z0-9_\-\.\/?=&%:]{0,}\s{1,}HTTP(S|)\/(1\.0|1\.1|2\.0)(\n|\r)/gmu, + )?.length > 0 ?? false; //console.log({ isHTTP }); - let isWebSocket = false; - if (isHTTP) { - const headers = simpleParseHeaders(packet); - if (headers.Upgrade === "websocket") - isWebSocket = true; - } - return new PacketParseResult({ - isHTTP, isWebSocket - }, false); -} + let isWebSocket = false; + if (isHTTP) { + const headers = simpleParseHeaders(packet); + if (headers.Upgrade === "websocket") isWebSocket = true; + } + return new PacketParseResult( + { + isHTTP, + isWebSocket, + }, + false, + ); +};