|
@ -299,9 +299,8 @@ Socket.prototype.read = function(n) { |
|
|
|
|
|
|
|
|
Socket.prototype.listen = function() { |
|
|
Socket.prototype.listen = function() { |
|
|
debug('socket.listen'); |
|
|
debug('socket.listen'); |
|
|
var self = this; |
|
|
this.on('connection', arguments[0]); |
|
|
self.on('connection', arguments[0]); |
|
|
listen(this, null, null, null); |
|
|
listen(self, null, null, null); |
|
|
|
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -883,7 +882,6 @@ Socket.prototype.connect = function(options, cb) { |
|
|
this._sockname = null; |
|
|
this._sockname = null; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
var self = this; |
|
|
|
|
|
var pipe = !!options.path; |
|
|
var pipe = !!options.path; |
|
|
debug('pipe', pipe, options.path); |
|
|
debug('pipe', pipe, options.path); |
|
|
|
|
|
|
|
@ -893,21 +891,20 @@ Socket.prototype.connect = function(options, cb) { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (typeof cb === 'function') { |
|
|
if (typeof cb === 'function') { |
|
|
self.once('connect', cb); |
|
|
this.once('connect', cb); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
this._unrefTimer(); |
|
|
this._unrefTimer(); |
|
|
|
|
|
|
|
|
self._connecting = true; |
|
|
this._connecting = true; |
|
|
self.writable = true; |
|
|
this.writable = true; |
|
|
|
|
|
|
|
|
if (pipe) { |
|
|
if (pipe) { |
|
|
connect(self, options.path); |
|
|
connect(this, options.path); |
|
|
|
|
|
|
|
|
} else { |
|
|
} else { |
|
|
lookupAndConnect(self, options); |
|
|
lookupAndConnect(this, options); |
|
|
} |
|
|
} |
|
|
return self; |
|
|
return this; |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -1194,11 +1191,10 @@ exports._createServerHandle = createServerHandle; |
|
|
|
|
|
|
|
|
Server.prototype._listen2 = function(address, port, addressType, backlog, fd) { |
|
|
Server.prototype._listen2 = function(address, port, addressType, backlog, fd) { |
|
|
debug('listen2', address, port, addressType, backlog, fd); |
|
|
debug('listen2', address, port, addressType, backlog, fd); |
|
|
var self = this; |
|
|
|
|
|
|
|
|
|
|
|
// If there is not yet a handle, we need to create one and bind.
|
|
|
// If there is not yet a handle, we need to create one and bind.
|
|
|
// In the case of a server sent via IPC, we don't need to do this.
|
|
|
// In the case of a server sent via IPC, we don't need to do this.
|
|
|
if (self._handle) { |
|
|
if (this._handle) { |
|
|
debug('_listen2: have a handle already'); |
|
|
debug('_listen2: have a handle already'); |
|
|
} else { |
|
|
} else { |
|
|
debug('_listen2: create a handle'); |
|
|
debug('_listen2: create a handle'); |
|
@ -1223,22 +1219,22 @@ Server.prototype._listen2 = function(address, port, addressType, backlog, fd) { |
|
|
|
|
|
|
|
|
if (typeof rval === 'number') { |
|
|
if (typeof rval === 'number') { |
|
|
var error = exceptionWithHostPort(rval, 'listen', address, port); |
|
|
var error = exceptionWithHostPort(rval, 'listen', address, port); |
|
|
process.nextTick(emitErrorNT, self, error); |
|
|
process.nextTick(emitErrorNT, this, error); |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
self._handle = rval; |
|
|
this._handle = rval; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
self._handle.onconnection = onconnection; |
|
|
this._handle.onconnection = onconnection; |
|
|
self._handle.owner = self; |
|
|
this._handle.owner = this; |
|
|
|
|
|
|
|
|
var err = _listen(self._handle, backlog); |
|
|
var err = _listen(this._handle, backlog); |
|
|
|
|
|
|
|
|
if (err) { |
|
|
if (err) { |
|
|
var ex = exceptionWithHostPort(err, 'listen', address, port); |
|
|
var ex = exceptionWithHostPort(err, 'listen', address, port); |
|
|
self._handle.close(); |
|
|
this._handle.close(); |
|
|
self._handle = null; |
|
|
this._handle = null; |
|
|
process.nextTick(emitErrorNT, self, ex); |
|
|
process.nextTick(emitErrorNT, this, ex); |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -1249,7 +1245,7 @@ Server.prototype._listen2 = function(address, port, addressType, backlog, fd) { |
|
|
if (this._unref) |
|
|
if (this._unref) |
|
|
this.unref(); |
|
|
this.unref(); |
|
|
|
|
|
|
|
|
process.nextTick(emitListeningNT, self); |
|
|
process.nextTick(emitListeningNT, this); |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -1509,15 +1505,14 @@ Server.prototype.close = function(cb) { |
|
|
|
|
|
|
|
|
Server.prototype._emitCloseIfDrained = function() { |
|
|
Server.prototype._emitCloseIfDrained = function() { |
|
|
debug('SERVER _emitCloseIfDrained'); |
|
|
debug('SERVER _emitCloseIfDrained'); |
|
|
var self = this; |
|
|
|
|
|
|
|
|
|
|
|
if (self._handle || self._connections) { |
|
|
if (this._handle || this._connections) { |
|
|
debug('SERVER handle? %j connections? %d', |
|
|
debug('SERVER handle? %j connections? %d', |
|
|
!!self._handle, self._connections); |
|
|
!!this._handle, this._connections); |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
process.nextTick(emitCloseNT, self); |
|
|
process.nextTick(emitCloseNT, this); |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|