Fix a couple rare bugs around SSH sessions

This commit is contained in:
Bryan Ashby 2018-06-14 20:00:01 -06:00
parent 4aab8224ed
commit 2f09f3e995
2 changed files with 13 additions and 6 deletions

View File

@ -119,7 +119,10 @@ function shutdownSystem() {
const activeConnections = ClientConns.getActiveConnections();
let i = activeConnections.length;
while(i--) {
activeConnections[i].term.write('\n\nServer is shutting down NOW! Disconnecting...\n\n');
const activeTerm = activeConnections[i].term;
if(activeTerm) {
activeTerm.write('\n\nServer is shutting down NOW! Disconnecting...\n\n');
}
ClientConns.removeClient(activeConnections[i]);
}
callback(null);

View File

@ -184,7 +184,7 @@ function SSHClient(clientConn) {
if(self.input) { // do we have I/O?
self.updateTermInfo(info);
} else {
self.cachedPtyInfo = info;
self.cachedTermInfo = info;
}
});
@ -197,9 +197,9 @@ function SSHClient(clientConn) {
channel.stdin.on('data', self.dataHandler);
if(self.cachedPtyInfo) {
self.updateTermInfo(self.cachedPtyInfo);
delete self.cachedPtyInfo;
if(self.cachedTermInfo) {
self.updateTermInfo(self.cachedTermInfo);
delete self.cachedTermInfo;
}
// we're ready!
@ -210,7 +210,11 @@ function SSHClient(clientConn) {
session.on('window-change', (accept, reject, info) => {
self.log.debug(info, 'SSH window-change event');
if(self.input) {
self.updateTermInfo(info);
} else {
self.cachedTermInfo = info;
}
});
});