Better disconnect - should resolve issues with SSH
This commit is contained in:
parent
43c11dc288
commit
8ba80426e3
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue