* Fixed some logging of client IP addresses/etc.

* Some updates to FSE work for position and edit mode display
* Use cursor save/restore for some things vs internal tracking
This commit is contained in:
Bryan Ashby
2015-07-05 23:16:22 -06:00
parent 3d5d21bcb5
commit 7c0446bf79
5 changed files with 51 additions and 22 deletions

View File

@@ -159,8 +159,6 @@ function startListening() {
addNewClient(client);
//logger.log.info({ clientId : client.runtime.id, from : client.address(), server : module.moduleInfo.name }, 'Client connected');
client.on('ready', function onClientReady() {
// Go to module -- use default error handler
prepareClient(client, function onPrepared() {
@@ -198,20 +196,14 @@ function addNewClient(client) {
// Create a client specific logger
client.log = logger.log.child( { clientId : id } );
// :TODO: if client.log concept is kept, clean this up to use it:
var connInfo = { ip : client.input.remoteAddress };
var connInfo = {
connectionCount : clientConnections.length,
clientId : client.runtime.id,
};
if(logger.log.debug()) {
connInfo.address = client.address();
} else {
connInfo.ip = client.address().address;
if(client.log.debug()) {
connInfo.port = client.input.localPort;
connInfo.family = client.input.localFamily;
}
logger.log.info(connInfo, 'Client connected');
client.log.info(connInfo, 'Client connected');
return id;
}

View File

@@ -780,8 +780,7 @@ function MultiLineEditTextView(options) {
};
this.keyPressInsert = function() {
// :TODO: emit event
self.overtypeMode = !self.overtypeMode;
self.toggleTextEditMode();
};
this.keyPressTab = function() {
@@ -1006,11 +1005,13 @@ function MultiLineEditTextView(options) {
};
this.emitPosition = function() {
self.emit(
'cursor position',
{ row : self.getTextLinesIndex(self.cursorPos.row), col : self.cursorPos.col });
self.emit('cursor position', self.getEditPosition());
};
this.toggleTextEditMode = function() {
self.overtypeMode = !self.overtypeMode;
self.emit('text edit mode', self.getTextEditMode());
};
}
require('util').inherits(MultiLineEditTextView, View);
@@ -1091,3 +1092,12 @@ MultiLineEditTextView.prototype.onKeyPress = function(ch, key) {
MultiLineEditTextView.super_.prototype.onKeyPress.call(this, ch, key);
}
};
MultiLineEditTextView.prototype.getTextEditMode = function() {
return this.overtypeMode ? 'overtype' : 'insert';
};
MultiLineEditTextView.prototype.getEditPosition = function() {
return { row : this.getTextLinesIndex(this.cursorPos.row), col : this.cursorPos.col }
};

View File

@@ -432,8 +432,15 @@ function TelnetClient(input, output) {
var i;
while((i = bufs.indexOf(IAC_BUF)) >= 0) {
/*
if(bufs.length < (i + 1)) {
i = MORE_DATA_REQUIRED;
break;
}
*/
// :TODO: Android client Irssi ConnectBot asserts here:
assert(bufs.length > (i + 1), 'bufs.length=' + bufs.length + ' i=' + i + ' bufs=' + bufs);
assert(bufs.length > (i + 1),
'bufs.length=' + bufs.length + ' i=' + i + ' bufs=' + require('../string_util.js').debugEscapedString(bufs.toBuffer()))
if(i > 0) {
self.emit('data', bufs.splice(0, i).toBuffer());