Node.js: socket.js improvements.
- Fixed handling of the "options" parameter in Socket() constructor; - Now the connect() method returns "this"; - Deduplicated the address() method; - Added missing "callback" argument to the end() method; - Now the destroy() method returns "this"; - Added "timeout" argument type check in the setTimeout() method.
This commit is contained in:
@@ -12,15 +12,16 @@ const unit_lib = require('unit-http/build/Release/unit-http.node');
|
||||
function Socket(options) {
|
||||
EventEmitter.call(this);
|
||||
|
||||
if (typeof options === 'number') {
|
||||
options = { fd: options };
|
||||
options = options || {};
|
||||
|
||||
} else if (options === undefined) {
|
||||
options = {};
|
||||
if (typeof options !== 'object') {
|
||||
throw new TypeError('Options must be object');
|
||||
}
|
||||
|
||||
this.readable = options.readable !== false;
|
||||
this.writable = options.writable !== false;
|
||||
this.readable = (typeof options.readable === 'boolean' ? options.readable
|
||||
: false);
|
||||
this.writable = (typeof options.writable === 'boolean' ? options.writable
|
||||
: false);
|
||||
}
|
||||
util.inherits(Socket, EventEmitter);
|
||||
|
||||
@@ -38,25 +39,24 @@ Socket.prototype.remotePort = 0;
|
||||
Socket.prototype.address = function address() {
|
||||
};
|
||||
|
||||
Socket.prototype.connect = function connect(options, callback) {
|
||||
if (callback !== null) {
|
||||
this.once('connect', cb);
|
||||
}
|
||||
Socket.prototype.connect = function connect(options, connectListener) {
|
||||
this.once('connect', connectListener);
|
||||
|
||||
this.connecting = true;
|
||||
this.writable = true;
|
||||
};
|
||||
|
||||
Socket.prototype.address = function address() {
|
||||
return this;
|
||||
};
|
||||
|
||||
Socket.prototype.destroy = function destroy(exception) {
|
||||
this.connecting = false;
|
||||
this.readable = false;
|
||||
this.writable = false;
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
Socket.prototype.end = function end(data, encoding) {
|
||||
Socket.prototype.end = function end(data, encoding, callback) {
|
||||
};
|
||||
|
||||
Socket.prototype.pause = function pause() {
|
||||
@@ -77,13 +77,15 @@ Socket.prototype.setKeepAlive = function setKeepAlive(enable, initialDelay) {
|
||||
Socket.prototype.setNoDelay = function setNoDelay(noDelay) {
|
||||
};
|
||||
|
||||
Socket.prototype.setTimeout = function setTimeout(msecs, callback) {
|
||||
this.timeout = msecs;
|
||||
|
||||
if (callback) {
|
||||
this.on('timeout', callback);
|
||||
Socket.prototype.setTimeout = function setTimeout(timeout, callback) {
|
||||
if (typeof timeout !== 'number') {
|
||||
throw new TypeError('Timeout must be number');
|
||||
}
|
||||
|
||||
this.timeout = timeout;
|
||||
|
||||
this.on('timeout', callback);
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user