Fixed IP-KVM port cleanup.

Ylian Saint-Hilaire committed Dec 7, 2021 at 19:45 UTC c80c1b5c98832d1a89f1e9e4cce1c919dfa27e40
1 file changed +11 -4
meshipkvm.js
+11 -4
@@ -200,7 +200,7 @@ function CreateIPKVMManager(parent) {
200 const kvmmanager = obj.managedGroups[kvmport.meshid];
201 if (kvmmanager == null) return null;
202 urlargs.shift();
203 - var relurl = '/' + urlargs.join('/')
203 + var relurl = '/' + urlargs.join('/');
204 if (relurl.endsWith('/.websocket')) { relurl = relurl.substring(0, relurl.length - 11); }
205 return { domain: domain.id, relurl: relurl, preurl: q.path.substring(0, i + 76), nodeid: nodeid, nid: nid, kvmmanager: kvmmanager, kvmport: kvmport };
206 }
@@ -549,7 +549,6 @@ function CreateRaritanKX3Manager(parent, hostname, port, username, password) {
549 delete kvmport.bytesIn;
550 delete kvmport.bytesOut;
551 delete kvmport.connectionStart;
552 - delete wsClient.kvmport;
552 delete wsClient.reqinfo;
553 }
554
@@ -609,8 +608,14 @@ function CreateRaritanKX3Manager(parent, hostname, port, username, password) {
608 if (this.wsClient) {
609 logDisconnection(this.wsClient);
610 try { this.wsClient.close(); } catch (ex) { }
612 - if (this.wsClient.kvmport) { delete this.wsClient.kvmport.wsClient; delete this.wsClient.kvmport; }
613 - delete this.wsClient.wsBrowser; delete this.wsClient;
611 + try {
612 + if (this.wsClient.kvmport) {
613 + delete this.wsClient.kvmport.wsClient;
614 + delete this.wsClient.kvmport;
615 + }
616 + delete this.wsClient.wsBrowser;
617 + delete this.wsClient;
618 + } catch (ex) { console.log(ex); }
619 }
620 });
621 this.wsBrowser.on('error', function (err) {
@@ -635,12 +640,14 @@ function CreateRaritanKX3Manager(parent, hostname, port, username, password) {
640 parent.parent.debug('relay', 'IPKVM: Relay websocket closed');
641
642 // Clean up
643 + try {
644 if (this.wsBrowser) {
645 logDisconnection(this.wsBrowser.wsClient);
646 try { this.wsBrowser.close(); } catch (ex) { }
647 delete this.wsBrowser.wsClient; delete this.wsBrowser;
648 }
649 if (this.kvmport) { delete this.kvmport.wsClient; delete this.kvmport; }
650 + } catch (ex) { console.log(ex); }
651 });
652 reqinfo.kvmport.wsClient.on('error', function (err) {
653 parent.parent.debug('relay', 'IPKVM: Relay websocket error: ' + err);