net: fix Socket({ fd: 42 }) api

Make the implementation match the documentation. This should work:

  var s = new net.Socket({ fd: 42, allowHalfOpen: true };

And now it does.
This commit is contained in:
Ben Noordhuis 2012-07-17 15:16:23 +02:00 committed by isaacs
parent e4c9c9f412
commit 1513848f88

View File

@ -131,19 +131,25 @@ function Socket(options) {
Stream.call(this);
if (typeof options == 'number') {
// Legacy interface.
var fd = options;
this._handle = createPipe();
this._handle.open(fd);
this.readable = this.writable = true;
initSocketHandle(this);
} else {
// private
this._handle = options && options.handle;
initSocketHandle(this);
this.allowHalfOpen = options && options.allowHalfOpen;
switch (typeof options) {
case 'number':
options = { fd: options }; // Legacy interface.
break;
case 'undefined':
options = {};
break;
}
if (typeof options.fd === 'undefined') {
this._handle = options && options.handle; // private
} else {
this._handle = createPipe();
this._handle.open(options.fd);
this.readable = this.writable = true;
}
initSocketHandle(this);
this.allowHalfOpen = options && options.allowHalfOpen;
}
util.inherits(Socket, Stream);