From 28a309bcdc8a187b64bac70525663bf86c2ed868 Mon Sep 17 00:00:00 2001 From: Madeline <46743919+MaddyUnderStars@users.noreply.github.com> Date: Fri, 30 Dec 2022 23:28:45 +1100 Subject: [PATCH 1/3] Update build workflow to use v3 checkout and setup-node --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c8a9cee7..e3bcc81f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -17,9 +17,9 @@ jobs: # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 + uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} cache: 'npm' From 6ca65a19f2690090d5031a12e05ef657f46bcd37 Mon Sep 17 00:00:00 2001 From: Madeline <46743919+MaddyUnderStars@users.noreply.github.com> Date: Sat, 31 Dec 2022 12:00:00 +1100 Subject: [PATCH 2/3] Add WS_LOGEVENTS and WS_VERBOSE env vars --- src/gateway/events/Connection.ts | 16 +++++++++++++++- src/gateway/events/Message.ts | 2 ++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/gateway/events/Connection.ts b/src/gateway/events/Connection.ts index ee75212f..d47ac314 100644 --- a/src/gateway/events/Connection.ts +++ b/src/gateway/events/Connection.ts @@ -12,7 +12,7 @@ import { Config } from "@fosscord/util"; var erlpack: any; try { erlpack = require("@yukikaze-bot/erlpack"); -} catch (error) {} +} catch (error) { } // TODO: check rate limit // TODO: specify rate limit in config @@ -39,6 +39,20 @@ export async function Connection( // `[Gateway] New connection from ${socket.ipAddress}, total ${this.clients.size}`, // ); + if (process.env.WS_LOGEVENTS) + [ + "close", + "error", + "upgrade", + //"message", + "open", + "ping", + "pong", + "unexpected-response" + ].forEach((x) => { + socket.on(x, (y) => console.log(x, y)); + }); + const { searchParams } = new URL(`http://localhost${request.url}`); // @ts-ignore socket.encoding = searchParams.get("encoding") || "json"; diff --git a/src/gateway/events/Message.ts b/src/gateway/events/Message.ts index a88495f6..57af0c69 100644 --- a/src/gateway/events/Message.ts +++ b/src/gateway/events/Message.ts @@ -33,6 +33,8 @@ export async function Message(this: WebSocket, buffer: WS.Data) { } else return this.close(CLOSECODES.Decode_error); + if (process.env.WS_VERBOSE) console.log(`[Websocket] Incomming message: ${JSON.stringify(data)}`); + check.call(this, PayloadSchema, data); // @ts-ignore From 4b518774b1972eb68f3da438d94f2fd0c8ec6d38 Mon Sep 17 00:00:00 2001 From: Madeline <46743919+MaddyUnderStars@users.noreply.github.com> Date: Sat, 31 Dec 2022 14:52:58 +1100 Subject: [PATCH 3/3] Allow Bearer tokens through, like Bot --- src/util/util/Token.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/util/util/Token.ts b/src/util/util/Token.ts index 19e64f47..ab323f2a 100644 --- a/src/util/util/Token.ts +++ b/src/util/util/Token.ts @@ -7,6 +7,7 @@ export const JWTOptions: VerifyOptions = { algorithms: ["HS256"] }; export function checkToken(token: string, jwtSecret: string): Promise { return new Promise((res, rej) => { token = token.replace("Bot ", ""); + token = token.replace("Bearer ", ""); /** in fosscord, even with instances that have bot distinction; we won't enforce "Bot" prefix, as we don't really have separate pathways for bots