net: return this from setNoDelay and setKeepAlive
authorRoman Reiss <me@silverwind.io>
Sat, 23 May 2015 05:48:13 +0000 (07:48 +0200)
committerRoman Reiss <me@silverwind.io>
Sat, 23 May 2015 16:10:32 +0000 (18:10 +0200)
Modifies the Socket.setNoDelay and Socket.setKeepAlive methods to return
the socket instance instead of undefined, to allow for chaining.

PR-URL: https://github.com/nodejs/io.js/pull/1779
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
doc/api/net.markdown
lib/net.js
test/parallel/test-net-persistent-keepalive.js
test/parallel/test-net-persistent-nodelay.js

index 46fc46f..c4631be 100644 (file)
@@ -464,6 +464,8 @@ algorithm, they buffer data before sending it off. Setting `true` for
 `noDelay` will immediately fire off data each time `socket.write()` is called.
 `noDelay` defaults to `true`.
 
+Returns `socket`.
+
 ### socket.setKeepAlive([enable][, initialDelay])
 
 Enable/disable keep-alive functionality, and optionally set the initial
@@ -475,6 +477,8 @@ data packet received and the first keepalive probe. Setting 0 for
 initialDelay will leave the value unchanged from the default
 (or previous) setting. Defaults to `0`.
 
+Returns `socket`.
+
 ### socket.address()
 
 Returns the bound address, the address family name and port of the
index 8412bcd..0c5930b 100644 (file)
@@ -324,23 +324,27 @@ Socket.prototype.setNoDelay = function(enable) {
   if (!this._handle) {
     this.once('connect',
               enable ? this.setNoDelay : this.setNoDelay.bind(this, enable));
-    return;
+    return this;
   }
 
   // backwards compatibility: assume true when `enable` is omitted
   if (this._handle.setNoDelay)
     this._handle.setNoDelay(enable === undefined ? true : !!enable);
+
+  return this;
 };
 
 
 Socket.prototype.setKeepAlive = function(setting, msecs) {
   if (!this._handle) {
     this.once('connect', this.setKeepAlive.bind(this, setting, msecs));
-    return;
+    return this;
   }
 
   if (this._handle.setKeepAlive)
     this._handle.setKeepAlive(setting, ~~(msecs / 1000));
+
+  return this;
 };
 
 
index adf7d7a..a54833a 100644 (file)
@@ -18,7 +18,8 @@ echoServer.on('listening', function() {
   var clientConnection = new net.Socket();
   // send a keepalive packet after 1000 ms
   // and make sure it persists
-  clientConnection.setKeepAlive(true, 400);
+  var s = clientConnection.setKeepAlive(true, 400);
+  assert.ok(s instanceof net.Socket);
   clientConnection.connect(common.PORT);
   clientConnection.setTimeout(0);
 
index 8ed5925..e120305 100644 (file)
@@ -24,7 +24,8 @@ echoServer.on('listening', function() {
   // setNoDelay before the handle is created
   // there is probably a better way to test this
 
-  sock1.setNoDelay();
+  var s = sock1.setNoDelay();
+  assert.ok(s instanceof net.Socket);
   sock1.connect(common.PORT);
   sock1.on('end', function() {
     assert.equal(callCount, 1);