summary refs log tree commit diff
diff options
context:
space:
mode:
authorFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-04-06 14:15:13 +0200
committerFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-04-06 14:15:13 +0200
commit7279df5efbb785e8353c65c793fbce41c4f86859 (patch)
tree59552a56859e3d0d66e36ada68151a7b7d525c0d
parentadd .lean to mongodb queries (diff)
downloadserver-7279df5efbb785e8353c65c793fbce41c4f86859.tar.xz
:bug: fix hearbeat gateway
-rw-r--r--package-lock.json18
-rw-r--r--package.json2
-rw-r--r--src/events/Message.ts15
-rw-r--r--src/opcodes/Heartbeat.ts4
-rw-r--r--src/opcodes/Resume.ts2
-rw-r--r--src/opcodes/instanceOf.ts1
6 files changed, 21 insertions, 21 deletions
diff --git a/package-lock.json b/package-lock.json

index bf6d8cc1..aad08fef 100644 --- a/package-lock.json +++ b/package-lock.json
@@ -14,7 +14,7 @@ "fosscord-server-util": "github:fosscord/fosscord-server-util", "jsonwebtoken": "^8.5.1", "lambert-db": "^1.1.8", - "lambert-server": "^1.1.6", + "lambert-server": "^1.1.7", "missing-native-js-functions": "^1.2.3", "node-fetch": "^2.6.1", "uuid": "^8.3.2", @@ -550,7 +550,7 @@ }, "node_modules/fosscord-server-util": { "version": "1.0.0", - "resolved": "git+ssh://git@github.com/fosscord/fosscord-server-util.git#a888147dfc44710b0e7c70d04b7a841a181fb71d", + "resolved": "git+ssh://git@github.com/fosscord/fosscord-server-util.git#6fbfcac1ba72ad123700824535c1e076190f4630", "license": "ISC", "dependencies": { "jsonwebtoken": "^8.5.1", @@ -783,9 +783,9 @@ } }, "node_modules/lambert-server": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lambert-server/-/lambert-server-1.1.6.tgz", - "integrity": "sha512-dNfSmzgue+BwFRbCGvSxMhBIXGspOcFt2r1fAf3tdPDHvgZY2nuDBcEAYFNC2Yy3yXbxiFdVykFWQvxDRrUxtA==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/lambert-server/-/lambert-server-1.1.7.tgz", + "integrity": "sha512-zb1aR4JbBt7E13dZTGL5yl+zOV+tq6Givi2DliAEdFdPdoNBiR46z04dDnesu6HtNDfbXbfM91MlxwIO9+Lnqg==", "dependencies": { "body-parser": "^1.19.0", "express": "^4.17.1", @@ -2226,7 +2226,7 @@ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" }, "fosscord-server-util": { - "version": "git+ssh://git@github.com/fosscord/fosscord-server-util.git#a888147dfc44710b0e7c70d04b7a841a181fb71d", + "version": "git+ssh://git@github.com/fosscord/fosscord-server-util.git#6fbfcac1ba72ad123700824535c1e076190f4630", "from": "fosscord-server-util@github:fosscord/fosscord-server-util", "requires": { "jsonwebtoken": "^8.5.1", @@ -2405,9 +2405,9 @@ } }, "lambert-server": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lambert-server/-/lambert-server-1.1.6.tgz", - "integrity": "sha512-dNfSmzgue+BwFRbCGvSxMhBIXGspOcFt2r1fAf3tdPDHvgZY2nuDBcEAYFNC2Yy3yXbxiFdVykFWQvxDRrUxtA==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/lambert-server/-/lambert-server-1.1.7.tgz", + "integrity": "sha512-zb1aR4JbBt7E13dZTGL5yl+zOV+tq6Givi2DliAEdFdPdoNBiR46z04dDnesu6HtNDfbXbfM91MlxwIO9+Lnqg==", "requires": { "body-parser": "^1.19.0", "express": "^4.17.1", diff --git a/package.json b/package.json
index cf1923cc..b10042c5 100644 --- a/package.json +++ b/package.json
@@ -17,7 +17,7 @@ "fosscord-server-util": "github:fosscord/fosscord-server-util", "jsonwebtoken": "^8.5.1", "lambert-db": "^1.1.8", - "lambert-server": "^1.1.6", + "lambert-server": "^1.1.7", "missing-native-js-functions": "^1.2.3", "node-fetch": "^2.6.1", "uuid": "^8.3.2", diff --git a/src/events/Message.ts b/src/events/Message.ts
index 6aa62a22..2d461e1d 100644 --- a/src/events/Message.ts +++ b/src/events/Message.ts
@@ -3,6 +3,7 @@ import erlpack from "erlpack"; import OPCodeHandlers from "../opcodes"; import { Payload, CLOSECODES } from "../util/Constants"; import { instanceOf, Tuple } from "lambert-server"; +import { check } from "../opcodes/instanceOf"; const PayloadSchema = { op: Number, @@ -15,14 +16,12 @@ export async function Message(this: WebSocket, buffer: Data) { // TODO: compression var data: Payload; - try { - if (this.encoding === "etf" && buffer instanceof Buffer) data = erlpack.unpack(buffer); - else if (this.encoding === "json" && typeof buffer === "string") data = JSON.parse(buffer); - const result = instanceOf(PayloadSchema, data); - if (result !== true) throw "invalid data"; - } catch (error) { - return this.close(CLOSECODES.Decode_error); - } + if (this.encoding === "etf" && buffer instanceof Buffer) data = erlpack.unpack(buffer); + else if (this.encoding === "json" && typeof buffer === "string") data = JSON.parse(buffer); + + check.call(this, PayloadSchema, data); + + console.log(data); // @ts-ignore const OPCodeHandler = OPCodeHandlers[data.op]; diff --git a/src/opcodes/Heartbeat.ts b/src/opcodes/Heartbeat.ts
index 4c8df739..015257b9 100644 --- a/src/opcodes/Heartbeat.ts +++ b/src/opcodes/Heartbeat.ts
@@ -3,10 +3,10 @@ import { Send } from "../util/Send"; import { setHeartbeat } from "../util/setHeartbeat"; import WebSocket from "../util/WebSocket"; -export function onHeartbeat(this: WebSocket, data: Payload) { +export async function onHeartbeat(this: WebSocket, data: Payload) { // TODO: validate payload setHeartbeat(this); - Send(this, { op: 11 }); + await Send(this, { op: 11 }); } diff --git a/src/opcodes/Resume.ts b/src/opcodes/Resume.ts
index 8badbb35..3c54b5c7 100644 --- a/src/opcodes/Resume.ts +++ b/src/opcodes/Resume.ts
@@ -3,5 +3,5 @@ import { CLOSECODES, Payload } from "../util/Constants"; import WebSocket from "../util/WebSocket"; export function onResume(this: WebSocket, data: Payload) { - return this.close(CLOSECODES.Session_timed_out); + return this.close(CLOSECODES.Invalid_session); } diff --git a/src/opcodes/instanceOf.ts b/src/opcodes/instanceOf.ts
index 752ea2b6..4a34477f 100644 --- a/src/opcodes/instanceOf.ts +++ b/src/opcodes/instanceOf.ts
@@ -6,6 +6,7 @@ export function check(this: WebSocket, schema: any, data: any) { try { if (instanceOf(schema, data) !== true) throw "invalid"; } catch (error) { + console.error(error); // invalid payload this.close(CLOSECODES.Decode_error); return false;