From 47854dded60b8a33d695fdb0b5278695c65bd326 Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Mon, 10 Apr 2023 20:35:39 +0200 Subject: new packet handler --- webAO/client.ts | 66 +++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 57 insertions(+), 9 deletions(-) diff --git a/webAO/client.ts b/webAO/client.ts index 100a178..857e4c2 100644 --- a/webAO/client.ts +++ b/webAO/client.ts @@ -105,6 +105,8 @@ class Client extends EventEmitter { _lastTimeICReceived: any; manifest: string[]; viewport: Viewport; + partial_packet: boolean; + temp_packet: String; connect: () => void; loadResources: () => void isLowMemory: () => void @@ -150,6 +152,8 @@ class Client extends EventEmitter { this.sender = sender this.viewport = masterViewport(); this._lastTimeICReceived = new Date(0); + this.partial_packet = false; + this.temp_packet = ""; loadResources isLowMemory } @@ -193,6 +197,7 @@ class Client extends EventEmitter { joinServer() { this.sender.sendServer(`HI#${hdid}#%`); this.sender.sendServer(`ID#webAO#${version}#%`); + if (mode !== "replay") { this.checkUpdater = setInterval(() => this.sender.sendCheck(), 5000); } @@ -230,19 +235,62 @@ class Client extends EventEmitter { const msg = e.data; console.debug(`S: ${msg}`); - const packets = Array(msg.split("%")); + this.handle_server_packet(msg); + + } - packets.forEach(function(data: String){ - const splitPacket = String(data).split('#') - const packetHeader = splitPacket[0]; + /** + * Decode the packet + * @param {MessageEvent} e + */ + handle_server_packet(p_data: string) +{ + let in_data = p_data; + + if (!p_data.endsWith("%")) { + this.partial_packet = true; + this.temp_packet = this.temp_packet + in_data + console.log("Partial packet") + return; + } - packetHandler.has(packetHeader) - ? packetHandler.get(packetHeader)(splitPacket) - : console.warn(`Invalid packet header ${packetHeader}`); - }); - + else { + if (this.partial_packet) { + in_data = this.temp_packet + in_data + this.temp_packet = ""; + this.partial_packet = false; + } + } + + const packet_list = in_data.split("%"); + console.log(packet_list) + + for (var packet of packet_list) { + let f_contents; + // Packet should *always* end with # + if (packet.endsWith("#")) { + f_contents = packet.slice(0, -1).split("#"); + } + // But, if it somehow doesn't, we should still be able to handle it + else { + f_contents = packet.split("#"); + } + // Empty packets are suspicious! + if (f_contents.length == 0) { + console.warn("WARNING: Empty packet received from server, skipping..."); + continue; + } + // Take the first arg as the command + const command = f_contents[0]; + console.log(command) + // The rest is contents of the packet + packetHandler.has(command) + ? packetHandler.get(command)(f_contents) + : console.warn(`Invalid packet header ${command}`); + }; } + /** * Triggered when an network error occurs. * @param {ErrorEvent} e -- cgit From db1b7352f3c7233b98d47b4fd6617fe07cdab618 Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Mon, 10 Apr 2023 20:44:07 +0200 Subject: spammy logging --- webAO/client.ts | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/webAO/client.ts b/webAO/client.ts index 566334e..e5c5e2b 100644 --- a/webAO/client.ts +++ b/webAO/client.ts @@ -38,6 +38,7 @@ export const UPDATE_INTERVAL = 60; */ export let oldLoading = false; export const setOldLoading = (val: boolean) => { + console.warn("old loading set to "+val) oldLoading = val } @@ -261,7 +262,6 @@ class Client extends EventEmitter { } const packet_list = in_data.split("%"); - console.log(packet_list) for (var packet of packet_list) { let f_contents; @@ -280,12 +280,14 @@ class Client extends EventEmitter { } // Take the first arg as the command const command = f_contents[0]; - console.log(command) - // The rest is contents of the packet - packetHandler.has(command) - ? packetHandler.get(command)(f_contents) - : console.warn(`Invalid packet header ${command}`); - }; + if(command!=="") + { + // The rest is contents of the packet + packetHandler.has(command) + ? packetHandler.get(command)(f_contents) + : console.warn(`Invalid packet header ${command}`); + }; + } } -- cgit From d912b828b233a2bf25b3d18a5eb2274237249fc5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jul 2023 04:04:46 +0000 Subject: Bump tough-cookie from 4.1.2 to 4.1.3 Bumps [tough-cookie](https://github.com/salesforce/tough-cookie) from 4.1.2 to 4.1.3. - [Release notes](https://github.com/salesforce/tough-cookie/releases) - [Changelog](https://github.com/salesforce/tough-cookie/blob/master/CHANGELOG.md) - [Commits](https://github.com/salesforce/tough-cookie/compare/v4.1.2...v4.1.3) --- updated-dependencies: - dependency-name: tough-cookie dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9157104..00414c6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11305,9 +11305,9 @@ } }, "node_modules/tough-cookie": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", - "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", -- cgit From e62ccef6159744b116500a1e379eaf15ea8a0e6f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 14 Jul 2023 12:47:55 +0000 Subject: Bump semver from 6.3.0 to 6.3.1 Bumps [semver](https://github.com/npm/node-semver) from 6.3.0 to 6.3.1. - [Release notes](https://github.com/npm/node-semver/releases) - [Changelog](https://github.com/npm/node-semver/blob/v6.3.1/CHANGELOG.md) - [Commits](https://github.com/npm/node-semver/compare/v6.3.0...v6.3.1) --- updated-dependencies: - dependency-name: semver dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9157104..8d1a0b8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8532,9 +8532,9 @@ } }, "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -10539,9 +10539,9 @@ } }, "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -11418,9 +11418,9 @@ } }, "node_modules/ts-loader/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dependencies": { "lru-cache": "^6.0.0" }, -- cgit From 15c2e53af870504e6669b22531bddf1115a1c056 Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Sun, 16 Jul 2023 18:14:34 +0200 Subject: no more brackets --- webAO/encoding.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webAO/encoding.ts b/webAO/encoding.ts index 3477d7b..697e1d0 100644 --- a/webAO/encoding.ts +++ b/webAO/encoding.ts @@ -52,5 +52,5 @@ export function decodeChat(estring: string): string { */ export function prepChat(msg: string): string { // TODO: make this less awful - return unescapeChat(decodeChat(msg)); + return safeTags(unescapeChat(decodeChat(msg))); } -- cgit