Initial switch to bunyan
This commit is contained in:
parent
4f68abb364
commit
7ff50f43f4
|
@ -13,7 +13,6 @@ var Protocol = require('./protocol');
|
||||||
var dn = require('./dn');
|
var dn = require('./dn');
|
||||||
var errors = require('./errors');
|
var errors = require('./errors');
|
||||||
var filters = require('./filters');
|
var filters = require('./filters');
|
||||||
var logStub = require('./log_stub');
|
|
||||||
var messages = require('./messages');
|
var messages = require('./messages');
|
||||||
var url = require('./url');
|
var url = require('./url');
|
||||||
|
|
||||||
|
@ -98,8 +97,8 @@ util.inherits(ConnectionError, errors.LDAPError);
|
||||||
*
|
*
|
||||||
* The options object is required, and must contain either a URL (string) or
|
* The options object is required, and must contain either a URL (string) or
|
||||||
* a socketPath (string); the socketPath is only if you want to talk to an LDAP
|
* a socketPath (string); the socketPath is only if you want to talk to an LDAP
|
||||||
* server over a Unix Domain Socket. Additionally, you can pass in a log4js
|
* server over a Unix Domain Socket. Additionally, you can pass in a bunyan
|
||||||
* option that is the result of `require('log4js')`, presumably after you've
|
* option that is the result of `new Logger()`, presumably after you've
|
||||||
* configured it.
|
* configured it.
|
||||||
*
|
*
|
||||||
* @param {Object} options must have either url or socketPath.
|
* @param {Object} options must have either url or socketPath.
|
||||||
|
@ -112,8 +111,8 @@ function Client(options) {
|
||||||
throw new TypeError('options.url (string) required');
|
throw new TypeError('options.url (string) required');
|
||||||
if (options.socketPath && typeof (options.socketPath) !== 'string')
|
if (options.socketPath && typeof (options.socketPath) !== 'string')
|
||||||
throw new TypeError('options.socketPath must be a string');
|
throw new TypeError('options.socketPath must be a string');
|
||||||
if (options.log4js && typeof (options.log4js) !== 'object')
|
if (typeof (options.log) !== 'object')
|
||||||
throw new TypeError('options.log4s must be an object');
|
throw new TypeError('options.log must be an object');
|
||||||
|
|
||||||
if (!xor(options.url, options.socketPath))
|
if (!xor(options.url, options.socketPath))
|
||||||
throw new TypeError('options.url ^ options.socketPath required');
|
throw new TypeError('options.url ^ options.socketPath required');
|
||||||
|
@ -134,19 +133,12 @@ function Client(options) {
|
||||||
host: self.url ? self.url.hostname : undefined,
|
host: self.url ? self.url.hostname : undefined,
|
||||||
socketPath: options.socketPath || undefined
|
socketPath: options.socketPath || undefined
|
||||||
};
|
};
|
||||||
this.log4js = options.log4js || logStub;
|
this.log = options.log;
|
||||||
this.reconnect = (typeof (options.reconnect) === 'number' ?
|
this.reconnect = (typeof (options.reconnect) === 'number' ?
|
||||||
options.reconnect : 1000);
|
options.reconnect : 1000);
|
||||||
this.shutdown = false;
|
this.shutdown = false;
|
||||||
this.timeout = options.timeout || false;
|
this.timeout = options.timeout || false;
|
||||||
|
|
||||||
this.__defineGetter__('log', function () {
|
|
||||||
if (!self._log)
|
|
||||||
self._log = self.log4js.getLogger('Client');
|
|
||||||
|
|
||||||
return self._log;
|
|
||||||
});
|
|
||||||
|
|
||||||
return this.connect(function () {});
|
return this.connect(function () {});
|
||||||
}
|
}
|
||||||
util.inherits(Client, EventEmitter);
|
util.inherits(Client, EventEmitter);
|
||||||
|
@ -760,8 +752,8 @@ Client.prototype._send = function (message, expect, callback, connection) {
|
||||||
if (timer)
|
if (timer)
|
||||||
clearTimeout(timer);
|
clearTimeout(timer);
|
||||||
|
|
||||||
if (self.log.isDebugEnabled())
|
if (self.log.debug())
|
||||||
self.log.debug('%s: response received: %j', conn.ldap.id, res.json);
|
self.log.debug({res: res.json}, '%s: response received', conn.ldap.id);
|
||||||
|
|
||||||
var err = null;
|
var err = null;
|
||||||
|
|
||||||
|
@ -836,8 +828,8 @@ Client.prototype._send = function (message, expect, callback, connection) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Finally send some data
|
// Finally send some data
|
||||||
if (this.log.isDebugEnabled())
|
if (this.log.debug())
|
||||||
this.log.debug('%s: sending request: %j', conn.ldap.id, message.json);
|
this.log.debug({msg: message.json}, '%s: sending request', conn.ldap.id);
|
||||||
return conn.write(message.toBer(), _writeCb);
|
return conn.write(message.toBer(), _writeCb);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return closeConn(e);
|
return closeConn(e);
|
||||||
|
@ -853,7 +845,7 @@ Client.prototype._newConnection = function () {
|
||||||
|
|
||||||
if (this.secure) {
|
if (this.secure) {
|
||||||
c = tls.connect(connectOpts.port, connectOpts.host, function () {
|
c = tls.connect(connectOpts.port, connectOpts.host, function () {
|
||||||
if (log.isTraceEnabled())
|
if (log.trace())
|
||||||
log.trace('%s connect event', c.ldap.id);
|
log.trace('%s connect event', c.ldap.id);
|
||||||
|
|
||||||
c.ldap.connected = true;
|
c.ldap.connected = true;
|
||||||
|
@ -869,7 +861,7 @@ Client.prototype._newConnection = function () {
|
||||||
assert.ok(c);
|
assert.ok(c);
|
||||||
|
|
||||||
c.parser = new Parser({
|
c.parser = new Parser({
|
||||||
log4js: self.log4js
|
log: self.log
|
||||||
});
|
});
|
||||||
|
|
||||||
// Wrap the events
|
// Wrap the events
|
||||||
|
@ -886,7 +878,7 @@ Client.prototype._newConnection = function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
c.on('connect', function () {
|
c.on('connect', function () {
|
||||||
if (log.isTraceEnabled())
|
if (log.trace())
|
||||||
log.trace('%s connect event', c.ldap.id);
|
log.trace('%s connect event', c.ldap.id);
|
||||||
|
|
||||||
c.ldap.connected = true;
|
c.ldap.connected = true;
|
||||||
|
@ -895,14 +887,14 @@ Client.prototype._newConnection = function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
c.on('end', function () {
|
c.on('end', function () {
|
||||||
if (log.isTraceEnabled())
|
if (log.trace())
|
||||||
log.trace('%s end event', c.ldap.id);
|
log.trace('%s end event', c.ldap.id);
|
||||||
|
|
||||||
c.end();
|
c.end();
|
||||||
});
|
});
|
||||||
|
|
||||||
c.on('close', function (had_err) {
|
c.on('close', function (had_err) {
|
||||||
if (log.isTraceEnabled())
|
if (log.trace())
|
||||||
log.trace('%s close event had_err=%s', c.ldap.id, had_err ? 'yes' : 'no');
|
log.trace('%s close event had_err=%s', c.ldap.id, had_err ? 'yes' : 'no');
|
||||||
|
|
||||||
Object.keys(c.ldap.messages).forEach(function (msgid) {
|
Object.keys(c.ldap.messages).forEach(function (msgid) {
|
||||||
|
@ -933,8 +925,8 @@ Client.prototype._newConnection = function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
c.on('error', function (err) {
|
c.on('error', function (err) {
|
||||||
if (log.isTraceEnabled())
|
if (log.trace())
|
||||||
log.trace('%s error event=%s', c.ldap.id, err ? err.stack : '?');
|
log.trace({err: err}, '%s error event', c.ldap.id);
|
||||||
|
|
||||||
if (self.listeners('error').length)
|
if (self.listeners('error').length)
|
||||||
self.emit('error', err);
|
self.emit('error', err);
|
||||||
|
@ -943,7 +935,7 @@ Client.prototype._newConnection = function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
c.on('timeout', function () {
|
c.on('timeout', function () {
|
||||||
if (log.isTraceEnabled())
|
if (log.trace())
|
||||||
log.trace('%s timeout event=%s', c.ldap.id);
|
log.trace('%s timeout event=%s', c.ldap.id);
|
||||||
|
|
||||||
self.emit('timeout');
|
self.emit('timeout');
|
||||||
|
@ -951,7 +943,7 @@ Client.prototype._newConnection = function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
c.on('data', function (data) {
|
c.on('data', function (data) {
|
||||||
if (log.isTraceEnabled())
|
if (log.trace())
|
||||||
log.trace('%s data event: %s', c.ldap.id, util.inspect(data));
|
log.trace('%s data event: %s', c.ldap.id, util.inspect(data));
|
||||||
|
|
||||||
c.parser.write(data);
|
c.parser.write(data);
|
||||||
|
@ -971,8 +963,8 @@ Client.prototype._newConnection = function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
c.parser.on('error', function (err) {
|
c.parser.on('error', function (err) {
|
||||||
if (log.isTraceEnabled())
|
if (log.trace())
|
||||||
log.trace('%s error event=%s', c.ldap.id, err ? err.stack : '?');
|
log.trace({err: err}, '%s error event', c.ldap.id);
|
||||||
|
|
||||||
if (self.listeners('error').length)
|
if (self.listeners('error').length)
|
||||||
self.emit('error', err);
|
self.emit('error', err);
|
||||||
|
|
25
lib/index.js
25
lib/index.js
|
@ -1,5 +1,7 @@
|
||||||
// Copyright 2011 Mark Cavage, Inc. All rights reserved.
|
// Copyright 2011 Mark Cavage, Inc. All rights reserved.
|
||||||
|
|
||||||
|
var Logger = require('bunyan');
|
||||||
|
|
||||||
var Client = require('./client');
|
var Client = require('./client');
|
||||||
var Attribute = require('./attribute');
|
var Attribute = require('./attribute');
|
||||||
var Change = require('./change');
|
var Change = require('./change');
|
||||||
|
@ -11,7 +13,6 @@ var controls = require('./controls');
|
||||||
var dn = require('./dn');
|
var dn = require('./dn');
|
||||||
var errors = require('./errors');
|
var errors = require('./errors');
|
||||||
var filters = require('./filters');
|
var filters = require('./filters');
|
||||||
var logStub = require('./log_stub');
|
|
||||||
var messages = require('./messages');
|
var messages = require('./messages');
|
||||||
var url = require('./url');
|
var url = require('./url');
|
||||||
|
|
||||||
|
@ -45,11 +46,32 @@ module.exports = {
|
||||||
if (typeof (options) !== 'object')
|
if (typeof (options) !== 'object')
|
||||||
throw new TypeError('options (object) required');
|
throw new TypeError('options (object) required');
|
||||||
|
|
||||||
|
if (!options.log) {
|
||||||
|
options.log = new Logger({
|
||||||
|
name: 'ldapjs',
|
||||||
|
component: 'client',
|
||||||
|
stream: process.stderr
|
||||||
|
});
|
||||||
|
}
|
||||||
return new Client(options);
|
return new Client(options);
|
||||||
},
|
},
|
||||||
|
|
||||||
Server: Server,
|
Server: Server,
|
||||||
createServer: function (options) {
|
createServer: function (options) {
|
||||||
|
if (options === undefined)
|
||||||
|
options = {};
|
||||||
|
|
||||||
|
if (typeof (options) !== 'object')
|
||||||
|
throw new TypeError('options (object) required');
|
||||||
|
|
||||||
|
if (!options.log) {
|
||||||
|
options.log = new Logger({
|
||||||
|
name: 'ldapjs',
|
||||||
|
component: 'client',
|
||||||
|
stream: process.stderr
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
return new Server(options);
|
return new Server(options);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -64,7 +86,6 @@ module.exports = {
|
||||||
filters: filters,
|
filters: filters,
|
||||||
parseFilter: filters.parseString,
|
parseFilter: filters.parseString,
|
||||||
|
|
||||||
log4js: logStub,
|
|
||||||
parseURL: url.parse,
|
parseURL: url.parse,
|
||||||
url: url
|
url: url
|
||||||
};
|
};
|
||||||
|
|
155
lib/log_stub.js
155
lib/log_stub.js
|
@ -1,155 +0,0 @@
|
||||||
// Copyright 2011 Mark Cavage, Inc. All rights reserved.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
///--- Globals
|
|
||||||
|
|
||||||
var FMT_STR = '%d-%s-%s %s:%s:%sZ %s - %s: ';
|
|
||||||
|
|
||||||
var _i = 0;
|
|
||||||
var LEVELS = {
|
|
||||||
Trace: _i++,
|
|
||||||
Debug: _i++,
|
|
||||||
Info: _i++,
|
|
||||||
Warn: _i++,
|
|
||||||
Error: _i++,
|
|
||||||
Fatal: _i++
|
|
||||||
};
|
|
||||||
|
|
||||||
var level = 'Info';
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// --- Helpers
|
|
||||||
|
|
||||||
function pad(val) {
|
|
||||||
if (parseInt(val, 10) < 10) {
|
|
||||||
val = '0' + val;
|
|
||||||
}
|
|
||||||
return val;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function format(level, name, args) {
|
|
||||||
var d = new Date();
|
|
||||||
var fmtStr = args.shift();
|
|
||||||
var fmtArgs = [
|
|
||||||
d.getUTCFullYear(),
|
|
||||||
pad(d.getUTCMonth() + 1),
|
|
||||||
pad(d.getUTCDate()),
|
|
||||||
pad(d.getUTCHours()),
|
|
||||||
pad(d.getUTCMinutes()),
|
|
||||||
pad(d.getUTCSeconds()),
|
|
||||||
level,
|
|
||||||
name
|
|
||||||
];
|
|
||||||
|
|
||||||
args = fmtArgs.concat(args);
|
|
||||||
|
|
||||||
var output = (FMT_STR + fmtStr).replace(/%[sdj]/g, function (match) {
|
|
||||||
switch (match) {
|
|
||||||
case '%s': return new String(args.shift());
|
|
||||||
case '%d': return new Number(args.shift());
|
|
||||||
case '%j': return JSON.stringify(args.shift());
|
|
||||||
default:
|
|
||||||
return match;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return output;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
///--- API
|
|
||||||
|
|
||||||
function Log(name) {
|
|
||||||
this.name = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
Log.prototype._write = function (level, args) {
|
|
||||||
var data = format(level, this.name, args);
|
|
||||||
console.error(data);
|
|
||||||
};
|
|
||||||
|
|
||||||
Log.prototype.isTraceEnabled = function () {
|
|
||||||
return (LEVELS.Trace >= LEVELS[level]);
|
|
||||||
};
|
|
||||||
|
|
||||||
Log.prototype.trace = function () {
|
|
||||||
if (this.isTraceEnabled())
|
|
||||||
this._write('TRACE', Array.prototype.slice.call(arguments));
|
|
||||||
};
|
|
||||||
|
|
||||||
Log.prototype.isDebugEnabled = function () {
|
|
||||||
return (LEVELS.Debug >= LEVELS[level]);
|
|
||||||
};
|
|
||||||
|
|
||||||
Log.prototype.debug = function () {
|
|
||||||
if (this.isDebugEnabled())
|
|
||||||
this._write('DEBUG', Array.prototype.slice.call(arguments));
|
|
||||||
};
|
|
||||||
|
|
||||||
Log.prototype.isInfoEnabled = function () {
|
|
||||||
return (LEVELS.Info >= LEVELS[level]);
|
|
||||||
};
|
|
||||||
|
|
||||||
Log.prototype.info = function () {
|
|
||||||
if (this.isInfoEnabled())
|
|
||||||
this._write('INFO', Array.prototype.slice.call(arguments));
|
|
||||||
};
|
|
||||||
|
|
||||||
Log.prototype.isWarnEnabled = function () {
|
|
||||||
return (LEVELS.Warn >= LEVELS[level]);
|
|
||||||
};
|
|
||||||
|
|
||||||
Log.prototype.warn = function () {
|
|
||||||
if (this.isWarnEnabled())
|
|
||||||
this._write('WARN', Array.prototype.slice.call(arguments));
|
|
||||||
};
|
|
||||||
|
|
||||||
Log.prototype.isErrorEnabled = function () {
|
|
||||||
return (LEVELS.Error >= LEVELS[level]);
|
|
||||||
};
|
|
||||||
|
|
||||||
Log.prototype.error = function () {
|
|
||||||
if (this.isErrorEnabled())
|
|
||||||
this._write('ERROR', Array.prototype.slice.call(arguments));
|
|
||||||
};
|
|
||||||
|
|
||||||
Log.prototype.isFatalEnabled = function () {
|
|
||||||
return (LEVELS.Fatal >= LEVELS[level]);
|
|
||||||
};
|
|
||||||
|
|
||||||
Log.prototype.fatal = function () {
|
|
||||||
if (this.isFatalEnabled())
|
|
||||||
this._write('FATAL', Array.prototype.slice.call(arguments));
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
|
|
||||||
setLevel: function (l) {
|
|
||||||
l = l.charAt(0).toUpperCase() + l.slice(1).toLowerCase();
|
|
||||||
if (LEVELS[l] !== undefined)
|
|
||||||
level = l;
|
|
||||||
|
|
||||||
return level;
|
|
||||||
},
|
|
||||||
|
|
||||||
getLogger: function (name) {
|
|
||||||
if (!name || typeof (name) !== 'string')
|
|
||||||
throw new TypeError('name (string) required');
|
|
||||||
|
|
||||||
return new Log(name);
|
|
||||||
},
|
|
||||||
|
|
||||||
setGlobalLogLevel: function (l) {
|
|
||||||
l = l.charAt(0).toUpperCase() + l.slice(1).toLowerCase();
|
|
||||||
if (LEVELS[l] !== undefined)
|
|
||||||
level = l;
|
|
||||||
|
|
||||||
return level;
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
|
|
@ -8,8 +8,6 @@ var asn1 = require('asn1');
|
||||||
var Control = require('../controls').Control;
|
var Control = require('../controls').Control;
|
||||||
var Protocol = require('../protocol');
|
var Protocol = require('../protocol');
|
||||||
|
|
||||||
var logStub = require('../log_stub');
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
///--- Globals
|
///--- Globals
|
||||||
|
@ -37,7 +35,7 @@ function LDAPMessage(options) {
|
||||||
this.protocolOp = options.protocolOp || undefined;
|
this.protocolOp = options.protocolOp || undefined;
|
||||||
this.controls = options.controls ? options.controls.slice(0) : [];
|
this.controls = options.controls ? options.controls.slice(0) : [];
|
||||||
|
|
||||||
this.log4js = options.log4js || logStub;
|
this.log = options.log;
|
||||||
|
|
||||||
var self = this;
|
var self = this;
|
||||||
this.__defineGetter__('id', function () { return self.messageID; });
|
this.__defineGetter__('id', function () { return self.messageID; });
|
||||||
|
@ -52,11 +50,6 @@ function LDAPMessage(options) {
|
||||||
j.controls = self.controls;
|
j.controls = self.controls;
|
||||||
return j;
|
return j;
|
||||||
});
|
});
|
||||||
this.__defineGetter__('log', function () {
|
|
||||||
if (!self._log)
|
|
||||||
self._log = self.log4js.getLogger(self.type);
|
|
||||||
return self._log;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
module.exports = LDAPMessage;
|
module.exports = LDAPMessage;
|
||||||
|
|
||||||
|
@ -69,7 +62,7 @@ LDAPMessage.prototype.toString = function () {
|
||||||
LDAPMessage.prototype.parse = function (ber) {
|
LDAPMessage.prototype.parse = function (ber) {
|
||||||
assert.ok(ber);
|
assert.ok(ber);
|
||||||
|
|
||||||
if (this.log.isTraceEnabled())
|
if (this.log.trace())
|
||||||
this.log.trace('parse: data=%s', util.inspect(ber.buffer));
|
this.log.trace('parse: data=%s', util.inspect(ber.buffer));
|
||||||
|
|
||||||
// Delegate off to the specific type to parse
|
// Delegate off to the specific type to parse
|
||||||
|
@ -86,7 +79,7 @@ LDAPMessage.prototype.parse = function (ber) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.log.isTraceEnabled())
|
if (this.log.trace())
|
||||||
this.log.trace('Parsing done: %j', this.json);
|
this.log.trace('Parsing done: %j', this.json);
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
|
@ -50,14 +50,13 @@ var BerReader = asn1.BerReader;
|
||||||
function Parser(options) {
|
function Parser(options) {
|
||||||
if (!options || typeof (options) !== 'object')
|
if (!options || typeof (options) !== 'object')
|
||||||
throw new TypeError('options (object) required');
|
throw new TypeError('options (object) required');
|
||||||
if (!options.log4js || typeof (options.log4js) !== 'object')
|
if (typeof (options.log) !== 'object')
|
||||||
throw new TypeError('options.log4js (object) required');
|
throw new TypeError('options.log (object) required');
|
||||||
|
|
||||||
EventEmitter.call(this);
|
EventEmitter.call(this);
|
||||||
|
|
||||||
this.buffer = null;
|
this.buffer = null;
|
||||||
this.log4js = options.log4js;
|
this.log = options.log;
|
||||||
this.log = this.log4js.getLogger('Parser');
|
|
||||||
}
|
}
|
||||||
util.inherits(Parser, EventEmitter);
|
util.inherits(Parser, EventEmitter);
|
||||||
module.exports = Parser;
|
module.exports = Parser;
|
||||||
|
@ -219,6 +218,6 @@ Parser.prototype.getMessage = function (ber) {
|
||||||
|
|
||||||
return new Message({
|
return new Message({
|
||||||
messageID: messageID,
|
messageID: messageID,
|
||||||
log4js: self.log4js
|
log: self.log
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
|
@ -65,7 +65,7 @@ LDAPResult.prototype.end = function (status) {
|
||||||
this.status = status;
|
this.status = status;
|
||||||
|
|
||||||
var ber = this.toBer();
|
var ber = this.toBer();
|
||||||
if (this.log.isDebugEnabled())
|
if (this.log.debug())
|
||||||
this.log.debug('%s: sending: %j', this.connection.ldap.id, this.json);
|
this.log.debug('%s: sending: %j', this.connection.ldap.id, this.json);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -81,13 +81,13 @@ SearchResponse.prototype.send = function (entry, nofiltering) {
|
||||||
entry = new SearchEntry({
|
entry = new SearchEntry({
|
||||||
objectName: typeof (save.dn) === 'string' ? parseDN(save.dn) : save.dn,
|
objectName: typeof (save.dn) === 'string' ? parseDN(save.dn) : save.dn,
|
||||||
messageID: self.messageID,
|
messageID: self.messageID,
|
||||||
log4js: self.log4js
|
log: self.log
|
||||||
});
|
});
|
||||||
entry.fromObject(save);
|
entry.fromObject(save);
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (this.log.isDebugEnabled())
|
if (this.log.debug())
|
||||||
this.log.debug('%s: sending: %j', this.connection.ldap.id, entry.json);
|
this.log.debug('%s: sending: %j', this.connection.ldap.id, entry.json);
|
||||||
|
|
||||||
this.connection.write(entry.toBer());
|
this.connection.write(entry.toBer());
|
||||||
|
@ -128,7 +128,7 @@ SearchResponse.prototype.createSearchEntry = function (object) {
|
||||||
|
|
||||||
var entry = new SearchEntry({
|
var entry = new SearchEntry({
|
||||||
messageID: self.messageID,
|
messageID: self.messageID,
|
||||||
log4js: self.log4js,
|
log: self.log,
|
||||||
objectName: object.objectName || object.dn
|
objectName: object.objectName || object.dn
|
||||||
});
|
});
|
||||||
entry.fromObject((object.attributes || object));
|
entry.fromObject((object.attributes || object));
|
||||||
|
@ -152,7 +152,7 @@ SearchResponse.prototype.createSearchReference = function (uris) {
|
||||||
var self = this;
|
var self = this;
|
||||||
return new SearchReference({
|
return new SearchReference({
|
||||||
messageID: self.messageID,
|
messageID: self.messageID,
|
||||||
log4js: self.log4js,
|
log: self.log,
|
||||||
uris: uris
|
uris: uris
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
|
@ -55,7 +55,6 @@ UnbindRequest.prototype.newResult = function () {
|
||||||
}
|
}
|
||||||
util.inherits(UnbindResponse, LDAPMessage);
|
util.inherits(UnbindResponse, LDAPMessage);
|
||||||
UnbindResponse.prototype.end = function (status) {
|
UnbindResponse.prototype.end = function (status) {
|
||||||
if (this.log.isTraceEnabled())
|
|
||||||
this.log.trace('%s: unbinding!', this.connection.ldap.id);
|
this.log.trace('%s: unbinding!', this.connection.ldap.id);
|
||||||
this.connection.end();
|
this.connection.end();
|
||||||
};
|
};
|
||||||
|
|
|
@ -36,7 +36,6 @@ module.exports = UnbindResponse;
|
||||||
UnbindResponse.prototype.end = function (status) {
|
UnbindResponse.prototype.end = function (status) {
|
||||||
assert.ok(this.connection);
|
assert.ok(this.connection);
|
||||||
|
|
||||||
if (this.log.isTraceEnabled())
|
|
||||||
this.log.trace('%s: unbinding!', this.connection.ldap.id);
|
this.log.trace('%s: unbinding!', this.connection.ldap.id);
|
||||||
|
|
||||||
this.connection.end();
|
this.connection.end();
|
||||||
|
|
|
@ -12,7 +12,6 @@ var dn = require('./dn');
|
||||||
var dtrace = require('./dtrace');
|
var dtrace = require('./dtrace');
|
||||||
var errors = require('./errors');
|
var errors = require('./errors');
|
||||||
var Protocol = require('./protocol');
|
var Protocol = require('./protocol');
|
||||||
var logStub = require('./log_stub');
|
|
||||||
|
|
||||||
var Parser = require('./messages').Parser;
|
var Parser = require('./messages').Parser;
|
||||||
var AbandonResponse = require('./messages/abandon_response');
|
var AbandonResponse = require('./messages/abandon_response');
|
||||||
|
@ -114,7 +113,7 @@ function getResponse(req) {
|
||||||
|
|
||||||
var res = new Response({
|
var res = new Response({
|
||||||
messageID: req.messageID,
|
messageID: req.messageID,
|
||||||
log4js: req.log4js,
|
log: req.log,
|
||||||
attributes: ((req instanceof SearchRequest) ? req.attributes : undefined)
|
attributes: ((req instanceof SearchRequest) ? req.attributes : undefined)
|
||||||
});
|
});
|
||||||
res.connection = req.connection;
|
res.connection = req.connection;
|
||||||
|
@ -241,7 +240,7 @@ function fireDTraceProbe(req, res) {
|
||||||
* LDAP operations however.
|
* LDAP operations however.
|
||||||
*
|
*
|
||||||
* The options object currently only takes a certificate/private key, and a
|
* The options object currently only takes a certificate/private key, and a
|
||||||
* log4js handle.
|
* bunyan logger handle.
|
||||||
*
|
*
|
||||||
* This object exposes the following events:
|
* This object exposes the following events:
|
||||||
* - 'error'
|
* - 'error'
|
||||||
|
@ -254,8 +253,8 @@ function Server(options) {
|
||||||
if (options) {
|
if (options) {
|
||||||
if (typeof (options) !== 'object')
|
if (typeof (options) !== 'object')
|
||||||
throw new TypeError('options (object) required');
|
throw new TypeError('options (object) required');
|
||||||
if (options.log4js && typeof (options.log4js) !== 'object')
|
if (typeof (options.log) !== 'object')
|
||||||
throw new TypeError('options.log4s must be an object');
|
throw new TypeError('options.log must be an object');
|
||||||
|
|
||||||
if (options.certificate || options.key) {
|
if (options.certificate || options.key) {
|
||||||
if (!(options.certificate && options.key) ||
|
if (!(options.certificate && options.key) ||
|
||||||
|
@ -269,14 +268,11 @@ function Server(options) {
|
||||||
options = {};
|
options = {};
|
||||||
}
|
}
|
||||||
var self = this;
|
var self = this;
|
||||||
if (!options.log4js)
|
|
||||||
options.log4js = logStub;
|
|
||||||
|
|
||||||
EventEmitter.call(this, options);
|
EventEmitter.call(this, options);
|
||||||
|
|
||||||
this._chain = [];
|
this._chain = [];
|
||||||
this.log4js = options.log4js;
|
this.log = options.log;
|
||||||
this.log = this.log4js.getLogger('Server');
|
|
||||||
|
|
||||||
var log = this.log;
|
var log = this.log;
|
||||||
|
|
||||||
|
@ -330,7 +326,6 @@ function Server(options) {
|
||||||
|
|
||||||
function newConnection(c) {
|
function newConnection(c) {
|
||||||
setupConnection(c);
|
setupConnection(c);
|
||||||
if (log.isTraceEnabled())
|
|
||||||
log.trace('new connection from %s', c.ldap.id);
|
log.trace('new connection from %s', c.ldap.id);
|
||||||
|
|
||||||
dtrace.fire('server-connection', function () {
|
dtrace.fire('server-connection', function () {
|
||||||
|
@ -338,14 +333,14 @@ function Server(options) {
|
||||||
});
|
});
|
||||||
|
|
||||||
c.parser = new Parser({
|
c.parser = new Parser({
|
||||||
log4js: options.log4js
|
log: options.log
|
||||||
});
|
});
|
||||||
c.parser.on('message', function (req) {
|
c.parser.on('message', function (req) {
|
||||||
req.connection = c;
|
req.connection = c;
|
||||||
req.logId = c.ldap.id + '::' + req.messageID;
|
req.logId = c.ldap.id + '::' + req.messageID;
|
||||||
req.startTime = new Date().getTime();
|
req.startTime = new Date().getTime();
|
||||||
|
|
||||||
if (log.isDebugEnabled())
|
if (log.debug())
|
||||||
log.debug('%s: message received: req=%j', c.ldap.id, req.json);
|
log.debug('%s: message received: req=%j', c.ldap.id, req.json);
|
||||||
|
|
||||||
var res = getResponse(req);
|
var res = getResponse(req);
|
||||||
|
@ -424,7 +419,7 @@ function Server(options) {
|
||||||
});
|
});
|
||||||
|
|
||||||
c.on('data', function (data) {
|
c.on('data', function (data) {
|
||||||
if (log.isTraceEnabled())
|
if (log.trace())
|
||||||
log.trace('data on %s: %s', c.ldap.id, util.inspect(data));
|
log.trace('data on %s: %s', c.ldap.id, util.inspect(data));
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -448,7 +443,7 @@ function Server(options) {
|
||||||
} else {
|
} else {
|
||||||
this.server = net.createServer(newConnection);
|
this.server = net.createServer(newConnection);
|
||||||
}
|
}
|
||||||
this.server.log4js = options.log4js;
|
this.server.log = options.log;
|
||||||
this.server.ldap = {
|
this.server.ldap = {
|
||||||
config: options
|
config: options
|
||||||
};
|
};
|
||||||
|
|
|
@ -132,8 +132,6 @@ test('setup', function (t) {
|
||||||
reconnect: false // turn this off for unit testing
|
reconnect: false // turn this off for unit testing
|
||||||
});
|
});
|
||||||
t.ok(client);
|
t.ok(client);
|
||||||
// client.log4js.setLevel('Trace');
|
|
||||||
// server.log4js.setLevel('Trace');
|
|
||||||
t.end();
|
t.end();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue