diff --git a/lib/client/client.js b/lib/client/client.js index 1fb7b38..76ea222 100644 --- a/lib/client/client.js +++ b/lib/client/client.js @@ -120,10 +120,6 @@ function Client (options) { this.log = options.log.child({ clazz: 'Client' }, true) - this.on('error', function (err) { - self.cb(err) - }) - this.timeout = parseInt((options.timeout || 0), 10) this.connectTimeout = parseInt((options.connectTimeout || 0), 10) this.idleTimeout = parseInt((options.idleTimeout || 0), 10) @@ -172,18 +168,6 @@ function Client (options) { util.inherits(Client, EventEmitter) module.exports = Client -/** - * Default handler for error callbacks when - * one isn't set in the instance - */ -Client.prototype.cb = function (err, ret) { - if (err) { - this.log.error('Caught exception:', err) - } else { - this.log.info('Unhandled output:', ret) - } -} - /** * Sends an abandon request to the LDAP server. * @@ -298,13 +282,15 @@ Client.prototype.bind = function bind (name, controls: controls }) + // While we are binding to the server, register the callback as error handler var self = this - this.cb = function (err, ret) { - delete self.cb + function callbackWrapper (err, ret) { + self.removeListener('error', callbackWrapper) callback(err, ret) } + this.addListener('error', callbackWrapper) - return this._send(req, [errors.LDAP_SUCCESS], null, callback, _bypass) + return this._send(req, [errors.LDAP_SUCCESS], null, callbackWrapper, _bypass) } /**