Better disconnect - should resolve issues with SSH

This commit is contained in:
Bryan Ashby 2019-02-02 10:20:22 -07:00
parent 43c11dc288
commit 8ba80426e3
3 changed files with 21 additions and 3 deletions

View File

@ -511,7 +511,12 @@ Client.prototype.end = function () {
//
// We can end up calling 'end' before TTY/etc. is established, e.g. with SSH
//
return this.output.end.apply(this.output, arguments);
if(_.isFunction(this.disconnect)) {
return this.disconnect();
} else {
// legacy fallback
return this.output.end.apply(this.output, arguments);
}
} catch(e) {
// ie TypeError
}

View File

@ -278,13 +278,17 @@ function SSHClient(clientConn) {
});
});
clientConn.on('end', () => {
self.emit('end'); // remove client connection/tracking
clientConn.once('end', () => {
return self.emit('end'); // remove client connection/tracking
});
clientConn.on('error', err => {
self.log.warn( { error : err.message, code : err.code }, 'SSH connection error');
});
this.disconnect = function() {
return clientConn.end();
};
}
util.inherits(SSHClient, baseClient.Client);

View File

@ -550,6 +550,15 @@ function TelnetClient(input, output) {
this.emit('ready', { firstMenu : Config().loginServers.telnet.firstMenu } );
}
};
this.disconnect = function() {
try {
return this.output.end.apply(this.output, arguments);
}
catch(e) {
// nothing
}
};
}
util.inherits(TelnetClient, baseClient.Client);