From 2b635e84196be818b8f913b39480475a48d0b766 Mon Sep 17 00:00:00 2001 From: Saya <davexdme@gmail.com> Date: Sun, 22 Dec 2024 17:11:20 +0800 Subject: [PATCH] fix: query string parsing --- src/Indomitable.ts | 2 +- src/concurrency/ConcurrencyServer.ts | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/Indomitable.ts b/src/Indomitable.ts index 595bd12..d2c0e2e 100644 --- a/src/Indomitable.ts +++ b/src/Indomitable.ts @@ -234,7 +234,7 @@ export class Indomitable extends EventEmitter { const sessions = await this.fetchSessions(); this.concurrencyServer = new ConcurrencyServer(this, sessions.session_start_limit.max_concurrency); const info = await this.concurrencyServer.start(); - this.emit(LibraryEvents.DEBUG, `Handle concurrency is currently enabled! =>\nServer is currently bound to:\n Address: ${info.address}:${info.port}\n Concurrency: ${sessions.session_start_limit.max_concurrency}`); + this.emit(LibraryEvents.DEBUG, `Handle concurrency is currently enabled! =>\n Server is currently bound to:\n Address: ${info.address}:${info.port}\n Concurrency: ${sessions.session_start_limit.max_concurrency}`); } if (typeof this.clusterCount !== 'number') this.clusterCount = Os.cpus().length; diff --git a/src/concurrency/ConcurrencyServer.ts b/src/concurrency/ConcurrencyServer.ts index 74f486d..60aa761 100644 --- a/src/concurrency/ConcurrencyServer.ts +++ b/src/concurrency/ConcurrencyServer.ts @@ -1,8 +1,9 @@ import { AddressInfo } from 'node:net'; import { ConcurrencyManager } from './ConcurrencyManager'; import { Indomitable } from '../Indomitable'; +import { LibraryEvents } from '../Util'; import Http from 'node:http'; -import {LibraryEvents} from "../Util"; +import QueryString from 'node:querystring'; /** * Server that handles identify locks @@ -10,7 +11,7 @@ import {LibraryEvents} from "../Util"; export class ConcurrencyServer { private readonly manager: Indomitable; /** - * Fastify instance of this server + * Http server of this instance * @private */ private readonly server: Http.Server; @@ -64,15 +65,13 @@ export class ConcurrencyServer { return void response.end(); } - // @ts-expect-error: this is ok - if (!request.query.hasOwnProperty('shardId')) { + if (!request.url.includes('?shardId=')) { response.statusCode = 400; response.statusMessage = 'Bad Request'; return void response.end('Missing shardId query string'); } - // @ts-expect-error: this is ok - const shardId = Number(request.query['shardId']); + const shardId = Number(request.url.split('?shardId=')[1]); if (isNaN(shardId)) { response.statusCode = 400;