From a14c260bb47ba0ef735a913cd9837fba3b049dae Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Wed, 12 Feb 2025 13:15:07 -0500 Subject: [PATCH] update TLS servername for frame stream --- mods/bambu/frames.js | 5 ++--- mods/bambu/init.js | 3 ++- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mods/bambu/frames.js b/mods/bambu/frames.js index 33f300b6..08dd46c0 100644 --- a/mods/bambu/frames.js +++ b/mods/bambu/frames.js @@ -10,7 +10,7 @@ const { bblCA } = require('./certificates'); class FrameStream extends EventEmitter { #remoteSocket; - constructor(host, code) { + constructor(host, code, serial) { super(); const abuf = new ArrayBuffer(80); @@ -25,12 +25,11 @@ class FrameStream extends EventEmitter { new Uint8Array(abuf, 0x30, codeBytes.length).set(codeBytes); let frame; - const remoteSocket = this.#remoteSocket = tls.connect({ host, port: 6000, ca: bblCA, - checkServerIdentity: () => {} // TODO: use `servername: serial` instead + servername: serial }, () => { // send authentication to start jpeg frame stream remoteSocket.write(Buffer.from(abuf)); diff --git a/mods/bambu/init.js b/mods/bambu/init.js index 370a6e36..ec2f5c1a 100644 --- a/mods/bambu/init.js +++ b/mods/bambu/init.js @@ -64,7 +64,8 @@ module.exports = async (server) => { this.#frames.end(); this.#frames = undefined; } else if (!this.#frames && bool) { - this.#frames = new FrameStream(this.#options.host, this.#options.password) + let { host, password } = this.#options; + this.#frames = new FrameStream(host, password, this.#serial) .on("frame", jpg => { wsend({ serial: this.#serial, frame: jpg.toString('base64') }); })