diff --git a/lib/net.js b/lib/net.js index b4934e3269c..7fe892f65dc 100644 --- a/lib/net.js +++ b/lib/net.js @@ -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);