From 5621067c3811b4d8ca1ffeb316032b3418a45272 Mon Sep 17 00:00:00 2001 From: Elijah R Date: Thu, 5 Jun 2025 15:45:36 -0400 Subject: [PATCH] Bump nodejs-rfb, fix vncvm --- cvmts/package.json | 2 +- cvmts/src/index.ts | 2 +- cvmts/src/vm/vnc/VNCVM.ts | 34 +++++++++++++----------------- yarn.lock | 44 ++++++++++++++++++++++++++++++++++----- 4 files changed, 56 insertions(+), 26 deletions(-) diff --git a/cvmts/package.json b/cvmts/package.json index fafeb5d..e38615d 100644 --- a/cvmts/package.json +++ b/cvmts/package.json @@ -12,7 +12,7 @@ "author": "Elijah R, modeco80", "license": "GPL-3.0", "dependencies": { - "@computernewb/nodejs-rfb": "^0.3.0", + "@computernewb/nodejs-rfb": "^0.4.2", "@computernewb/superqemu": "^0.3.0", "@cvmts/cvm-rs": "*", "@maxmind/geoip2-node": "^5.0.0", diff --git a/cvmts/src/index.ts b/cvmts/src/index.ts index 9018c11..f4e5252 100644 --- a/cvmts/src/index.ts +++ b/cvmts/src/index.ts @@ -103,9 +103,9 @@ async function start() { TheProtocolManager.registerProtocol("guacamole", () => new GuacamoleProtocol); TheProtocolManager.registerProtocol("binary1", () => new BinRectsProtocol); - await VM.Start(); // Start up the server var CVM = new CollabVMServer(Config, VM, banmgr, auth, geoipReader); + await VM.Start(); var WS = new WSServer(Config, banmgr); WS.on('connect', (client: User) => CVM.connectionOpened(client)); diff --git a/cvmts/src/vm/vnc/VNCVM.ts b/cvmts/src/vm/vnc/VNCVM.ts index 678a227..7e96f37 100644 --- a/cvmts/src/vm/vnc/VNCVM.ts +++ b/cvmts/src/vm/vnc/VNCVM.ts @@ -36,24 +36,6 @@ export default class VNCVM extends EventEmitter implements VM { await this.Start(); } } - - private Connect() { - if (this.vnc) { - this.Disconnect(); - } - - this.vnc = new VncDisplay({ - host: this.def.vncHost, - port: this.def.vncPort - }); - - let self = this; - this.vnc.on('connected', () => { - self.logger.info('Connected'); - self.SetState(VMState.Started); - }); - } - private Disconnect() { if (this.vnc) { this.vnc.Disconnect(); @@ -69,10 +51,24 @@ export default class VNCVM extends EventEmitter implements VM { StartDisplay(): void { this.logger.info('Connecting to VNC server'); - this.Connect(); + let self = this; + + this.vnc = new VncDisplay({ + host: this.def.vncHost, + port: this.def.vncPort, + path: null + }); + + self.vnc!.on('connected', () => { + self.logger.info('Connected to VNC server'); + self.SetState(VMState.Started); + }); + + self.vnc!.Connect(); } async Start(): Promise { + this.Disconnect(); if (this.def.startCmd) await execaCommand(this.def.startCmd, { shell: true }); this.SetState(VMState.Started); } diff --git a/yarn.lock b/yarn.lock index 1710db0..e98beef 100644 --- a/yarn.lock +++ b/yarn.lock @@ -34,10 +34,13 @@ __metadata: languageName: node linkType: hard -"@computernewb/nodejs-rfb@npm:^0.3.0": - version: 0.3.0 - resolution: "@computernewb/nodejs-rfb@npm:0.3.0" - checksum: 10c0/915a76118011a4a64e28fcc91fafcffe659e5e86db2505554578f1e5dff4883dbaf5fcc013ac377719fe9c798e730b178aa5030027da0f5a9583355ec2ac8af2 +"@computernewb/nodejs-rfb@npm:^0.4.2": + version: 0.4.2 + resolution: "@computernewb/nodejs-rfb@npm:0.4.2" + dependencies: + des.js: "npm:^1.1.0" + js-md4: "npm:^0.3.2" + checksum: 10c0/749839702dcc7c85613a9060a01cc0f808804a6ac40c6dc088504186f7481bd429bf6f7f0161992bcbf28162b8d0557e9fe93f59fe2f72533254cf6bdd3f4026 languageName: node linkType: hard @@ -74,7 +77,7 @@ __metadata: version: 0.0.0-use.local resolution: "@cvmts/cvmts@workspace:cvmts" dependencies: - "@computernewb/nodejs-rfb": "npm:^0.3.0" + "@computernewb/nodejs-rfb": "npm:^0.4.2" "@computernewb/superqemu": "npm:^0.3.0" "@cvmts/cvm-rs": "npm:*" "@maxmind/geoip2-node": "npm:^5.0.0" @@ -2013,6 +2016,16 @@ __metadata: languageName: node linkType: hard +"des.js@npm:^1.1.0": + version: 1.1.0 + resolution: "des.js@npm:1.1.0" + dependencies: + inherits: "npm:^2.0.1" + minimalistic-assert: "npm:^1.0.0" + checksum: 10c0/671354943ad67493e49eb4c555480ab153edd7cee3a51c658082fcde539d2690ed2a4a0b5d1f401f9cde822edf3939a6afb2585f32c091f2d3a1b1665cd45236 + languageName: node + linkType: hard + "detect-libc@npm:^1.0.3": version: 1.0.3 resolution: "detect-libc@npm:1.0.3" @@ -2529,6 +2542,13 @@ __metadata: languageName: node linkType: hard +"inherits@npm:^2.0.1": + version: 2.0.4 + resolution: "inherits@npm:2.0.4" + checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 + languageName: node + linkType: hard + "ip-address@npm:^9.0.5": version: 9.0.5 resolution: "ip-address@npm:9.0.5" @@ -2670,6 +2690,13 @@ __metadata: languageName: node linkType: hard +"js-md4@npm:^0.3.2": + version: 0.3.2 + resolution: "js-md4@npm:0.3.2" + checksum: 10c0/8313e00c45f710a53bdadc199c095b48ebaf54ea7b8cdb67a3f1863c270a5e9d0f89f204436b73866002af8c7ac4cacc872fdf271fc70e26614e424c7685b577 + languageName: node + linkType: hard + "js-tokens@npm:^4.0.0": version: 4.0.0 resolution: "js-tokens@npm:4.0.0" @@ -2960,6 +2987,13 @@ __metadata: languageName: node linkType: hard +"minimalistic-assert@npm:^1.0.0": + version: 1.0.1 + resolution: "minimalistic-assert@npm:1.0.1" + checksum: 10c0/96730e5601cd31457f81a296f521eb56036e6f69133c0b18c13fe941109d53ad23a4204d946a0d638d7f3099482a0cec8c9bb6d642604612ce43ee536be3dddd + languageName: node + linkType: hard + "minimatch@npm:^10.0.0": version: 10.0.1 resolution: "minimatch@npm:10.0.1"