Add tabs on packet-parser code

This commit is contained in:
fullgream 2025-08-17 23:44:55 +03:00
parent c7fe3b36c5
commit cc2ed1c277

View File

@ -1,33 +1,38 @@
function simpleParseHeaders (packet) { function simpleParseHeaders(packet) {
return Object.fromEntries(packet.match(/[a-z\-]{1,}:\s{0,}.{1,}(\n|\r){1,}/gmiu)?.map(i => { return Object.fromEntries(
const [key, value] = i.split(/:\s{0,}/miu); packet.match(/[a-z\-]{1,}:\s{0,}.{1,}(\n|\r){1,}/gimu)?.map((i) => {
return [ const [key, value] = i.split(/:\s{0,}/imu);
key.trim(), return [key.trim(), value.trim()];
value.trim() }) ?? [],
]; );
}) ?? []);
} }
class PacketParseResult { class PacketParseResult {
constructor (result, isEncrypted = false) { constructor(result, isEncrypted = false) {
this.result = result; this.result = result;
this.isEncrypted = isEncrypted; this.isEncrypted = isEncrypted;
} }
} }
module.exports = async (bytes) => { module.exports = async (bytes) => {
//console.log("((('", bytes.toString("utf8"), "')))"); //console.log("((('", bytes.toString("utf8"), "')))");
const packet = 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 }); //console.log({ isHTTP });
let isWebSocket = false; let isWebSocket = false;
if (isHTTP) { if (isHTTP) {
const headers = simpleParseHeaders(packet); const headers = simpleParseHeaders(packet);
if (headers.Upgrade === "websocket") if (headers.Upgrade === "websocket") isWebSocket = true;
isWebSocket = true; }
} return new PacketParseResult(
return new PacketParseResult({ {
isHTTP, isWebSocket isHTTP,
}, false); isWebSocket,
} },
false,
);
};