mirror of https://github.com/nodejs/node.git
parent
20ced0ea1e
commit
59b04427d3
|
@ -46,14 +46,17 @@ exports.connect = exports.createConnection = function(port /* [host], [cb] */) {
|
|||
|
||||
/* called when creating new Socket, or when re-using a closed Socket */
|
||||
function initSocketHandle(self) {
|
||||
self._handle.socket = self;
|
||||
self._handle.onread = onread;
|
||||
|
||||
self._writeRequests = [];
|
||||
|
||||
self._flags = 0;
|
||||
self._connectQueueSize = 0;
|
||||
self.destroyed = false;
|
||||
|
||||
// Handle creation may be deferred to bind() or connect() time.
|
||||
if (self._handle) {
|
||||
self._handle.socket = self;
|
||||
self._handle.onread = onread;
|
||||
}
|
||||
}
|
||||
|
||||
function Socket(options) {
|
||||
|
@ -62,14 +65,10 @@ function Socket(options) {
|
|||
stream.Stream.call(this);
|
||||
|
||||
// private
|
||||
if (options && options.handle) {
|
||||
this._handle = options.handle;
|
||||
} else {
|
||||
this._handle = new TCP;
|
||||
}
|
||||
this.allowHalfOpen = options ? (options.allowHalfOpen || false) : false;
|
||||
|
||||
this._handle = options && options.handle;
|
||||
initSocketHandle(this);
|
||||
|
||||
this.allowHalfOpen = options && options.allowHalfOpen;
|
||||
}
|
||||
util.inherits(Socket, stream.Stream);
|
||||
|
||||
|
@ -218,7 +217,9 @@ Socket.prototype.destroy = function(exception) {
|
|||
}
|
||||
|
||||
debug('close ' + this.fd);
|
||||
this._handle.close();
|
||||
if (this._handle) {
|
||||
this._handle.close();
|
||||
}
|
||||
|
||||
process.nextTick(function() {
|
||||
if (exception) self.emit('error', exception);
|
||||
|
@ -394,7 +395,7 @@ Socket.prototype.connect = function(port /* [host], [cb] */) {
|
|||
|
||||
var pipe = isPipeName(port);
|
||||
|
||||
if (this.destroyed) {
|
||||
if (this.destroyed || !this._handle) {
|
||||
this._handle = pipe ? new Pipe() : new TCP();
|
||||
initSocketHandle(this);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue