From 4b2c756bfc4dea51236161d7e0c519a0c6918221 Mon Sep 17 00:00:00 2001
From: Sam Roberts <vieuxtech@gmail.com>
Date: Mon, 5 Jun 2017 12:35:43 -0700
Subject: [PATCH] lib: return this from net.Socket.end()

PR-URL: https://github.com/nodejs/node/pull/13481
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Brian White <mscdex@mscdex.net>
---
 doc/api/net.md                               | 2 ++
 lib/net.js                                   | 2 ++
 test/parallel/test-socket-write-after-fin.js | 5 +++--
 3 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/doc/api/net.md b/doc/api/net.md
index fc0ea4cc12dd02..d35ec06c2431be 100644
--- a/doc/api/net.md
+++ b/doc/api/net.md
@@ -648,6 +648,8 @@ server will still send some data.
 If `data` is specified, it is equivalent to calling
 `socket.write(data, encoding)` followed by [`socket.end()`][].
 
+Returns `socket`.
+
 ### socket.localAddress
 <!-- YAML
 added: v0.9.6
diff --git a/lib/net.js b/lib/net.js
index 3bd3de9ed3079e..67c231ef25607a 100644
--- a/lib/net.js
+++ b/lib/net.js
@@ -497,6 +497,8 @@ Socket.prototype.end = function(data, encoding) {
     this.read(0);
   else
     maybeDestroy(this);
+
+  return this;
 };
 
 
diff --git a/test/parallel/test-socket-write-after-fin.js b/test/parallel/test-socket-write-after-fin.js
index c8ff56871734af..2551d3f54f651f 100644
--- a/test/parallel/test-socket-write-after-fin.js
+++ b/test/parallel/test-socket-write-after-fin.js
@@ -2,7 +2,7 @@
 const common = require('../common');
 const assert = require('assert');
 const net = require('net');
-const expected = 'hello1hello2hello3\nTHUNDERMUSCLE!';
+const expected = 'hello1hello2hello3\nbye';
 
 const server = net.createServer({
   allowHalfOpen: true
@@ -35,5 +35,6 @@ server.listen(0, common.mustCall(function() {
   sock.write('hello1');
   sock.write('hello2');
   sock.write('hello3\n');
-  sock.end('THUNDERMUSCLE!');
+  assert.strictEqual(sock.end('bye'), sock);
+
 }));