function initSocket() {
    tracker = new MessageTracker({
      id: self.url ? self.url.href : self.socketPath,
      parser: new Parser({log: log})
    });

    // This won't be set on TLS. So. Very. Annoying.
    if (typeof (socket.setKeepAlive) !== 'function') {
      socket.setKeepAlive = function setKeepAlive(enable, delay) {
        return socket.socket ?
          socket.socket.setKeepAlive(enable, delay) : false;
      };
    }

    socket.on('data', function onData(data) {
      if (log.trace())
        log.trace('data event: %s', util.inspect(data));

      tracker.parser.write(data);
    });

    // The "router"
    tracker.parser.on('message', function onMessage(message) {
      message.connection = self._socket;
      var callback = tracker.fetch(message.messageID);

      if (!callback) {
        log.error({message: message.json}, 'unsolicited message');
        return false;
      }

      return callback(message);
    });

    tracker.parser.on('error', function onParseError(err) {
      self.emit('error', new VError(err, 'Parser error for %s',
            tracker.id));
      self.connected = false;
      socket.end();
    });
  }
function initSocket() {
    tracker = new MessageTracker({
      id: self.url ? self.url.href : self.socketPath,
      parser: new Parser({log: log})
    });

    // This won't be set on TLS. So. Very. Annoying.
    if (typeof (socket.setKeepAlive) !== 'function') {
      socket.setKeepAlive = function setKeepAlive(enable, delay) {
        return socket.socket ?
          socket.socket.setKeepAlive(enable, delay) : false;
      };
    }

    socket.on('data', function onData(data) {
      if (log.trace())
        log.trace('data event: %s', util.inspect(data));

      tracker.parser.write(data);
    });

    // The "router"
    tracker.parser.on('message', function onMessage(message) {
      message.connection = self._socket;
      var callback = tracker.fetch(message.messageID);

      if (!callback) {
        log.error({message: message.json}, 'unsolicited message');
        return false;
      }

      return callback(message);
    });

    tracker.parser.on('error', function onParseError(err) {
      self.emit('error', new VError(err, 'Parser error for %s',
            tracker.id));
      self.connected = false;
      socket.end();
    });
  }
function initSocket ( ) { tracker = new MessageTracker ( { id : self . url ? self . url . href : self . socketPath , parser : new Parser ( { log : log } ) } ) ; // This won't be set on TLS. So. Very. Annoying. if ( typeof ( socket . setKeepAlive ) !== 'function' ) { socket . setKeepAlive = function setKeepAlive ( enable , delay ) { return socket . socket ? socket . socket . setKeepAlive ( enable , delay ) : false ; } ; } socket . on ( 'data' , function onData ( data ) { if ( log . trace ( ) ) log . trace ( 'data event: %s' , util . inspect ( data ) ) ; tracker . parser . write ( data ) ; } ) ; // The "router" tracker . parser . on ( 'message' , function onMessage ( message ) { message . connection = self . _socket ; var callback = tracker . fetch ( message . messageID ) ; if ( ! callback ) { log . error ( { message : message . json } , 'unsolicited message' ) ; return false ; } return callback ( message ) ; } ) ; tracker . parser . on ( 'error' , function onParseError ( err ) { self . emit ( 'error' , new VError ( err , 'Parser error for %s' , tracker . id ) ) ; self . connected = false ; socket . end ( ) ; } ) ; }
Initialize socket events and LDAP parser.
Initialize socket events and LDAP parser .