* ClientTerminal now has disconnect() method called by a client when a connection ends thus preventing data to be written after

This commit is contained in:
Bryan Ashby 2015-12-07 19:12:31 -07:00
parent a5a912f676
commit 6af0861dfe
2 changed files with 19 additions and 3 deletions

View File

@ -415,7 +415,13 @@ Client.prototype.startIdleMonitor = function() {
};
Client.prototype.end = function () {
this.menuStack.getCurrentModule().leave();
this.term.disconnect();
var currentModule = this.menuStack.getCurrentModule();
if(currentModule) {
currentModule.leave();
}
clearInterval(this.idleCheck);

View File

@ -132,6 +132,10 @@ function ClientTerminal(output) {
});
}
ClientTerminal.prototype.disconnect = function() {
this.output = null;
};
ClientTerminal.prototype.isANSI = function() {
// :TODO: Others??
return [ 'ansi', 'pc-ansi', 'qansi', 'scoansi', 'syncterm' ].indexOf(this.termType) > -1;
@ -140,11 +144,17 @@ ClientTerminal.prototype.isANSI = function() {
// :TODO: probably need to update these to convert IAC (0xff) -> IACIAC (escape it)
ClientTerminal.prototype.write = function(s, convertLineFeeds) {
this.output.write(this.encode(s, convertLineFeeds));
this.rawWrite(this.encode(s, convertLineFeeds));
};
ClientTerminal.prototype.rawWrite = function(s) {
this.output.write(s);
if(this.output) {
this.output.write(s, function written(err) {
if(err) {
Log.warn('Failed writing to socket: ' + err.toString());
}
});
}
};
ClientTerminal.prototype.pipeWrite = function(s, spec) {