summaryrefslogtreecommitdiffhomepage
path: root/src/nodejs
diff options
context:
space:
mode:
authorAndrey Zelenkov <zelenkov@nginx.com>2018-11-06 19:04:01 +0300
committerAndrey Zelenkov <zelenkov@nginx.com>2018-11-06 19:04:01 +0300
commit4a77c447babd494b66156c43796deabaa47697a3 (patch)
tree776da55a3be67956872ac58f3081ed4a4f95d556 /src/nodejs
parentb7442743cfdf52185f293c770a883f1467776c5e (diff)
downloadunit-4a77c447babd494b66156c43796deabaa47697a3.tar.gz
unit-4a77c447babd494b66156c43796deabaa47697a3.tar.bz2
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.
Diffstat (limited to 'src/nodejs')
-rwxr-xr-xsrc/nodejs/unit-http/socket.js38
1 files changed, 20 insertions, 18 deletions
diff --git a/src/nodejs/unit-http/socket.js b/src/nodejs/unit-http/socket.js
index 89702834..aef065bf 100755
--- a/src/nodejs/unit-http/socket.js
+++ b/src/nodejs/unit-http/socket.js
@@ -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;
};