summaryrefslogtreecommitdiff
path: root/test/parallel/test-net-client-bind-twice.js
diff options
context:
space:
mode:
authorJoyee Cheung <joyeec9h3@gmail.com>2017-08-31 01:13:04 +0800
committerRuben Bridgewater <ruben@bridgewater.de>2017-09-03 17:19:35 -0300
commitc419adff1d2cb8a71add8dc0027607715ae731ea (patch)
tree5f36d7cb280d448c5069ea72a0751e8c07943a42 /test/parallel/test-net-client-bind-twice.js
parentd7200d6823ab074fb429c74d252b663ad0b988f8 (diff)
downloadandroid-node-v8-c419adff1d2cb8a71add8dc0027607715ae731ea.tar.gz
android-node-v8-c419adff1d2cb8a71add8dc0027607715ae731ea.tar.bz2
android-node-v8-c419adff1d2cb8a71add8dc0027607715ae731ea.zip
net: check EADDRINUSE after binding localPort
PR-URL: https://github.com/nodejs/node/pull/15097 Fixes: https://github.com/nodejs/node/issues/15084 Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Diffstat (limited to 'test/parallel/test-net-client-bind-twice.js')
-rw-r--r--test/parallel/test-net-client-bind-twice.js26
1 files changed, 26 insertions, 0 deletions
diff --git a/test/parallel/test-net-client-bind-twice.js b/test/parallel/test-net-client-bind-twice.js
new file mode 100644
index 0000000000..ca7eb502d8
--- /dev/null
+++ b/test/parallel/test-net-client-bind-twice.js
@@ -0,0 +1,26 @@
+'use strict';
+
+// This tests that net.connect() from a used local port throws EADDRINUSE.
+
+const common = require('../common');
+const assert = require('assert');
+const net = require('net');
+
+const server1 = net.createServer(common.mustNotCall());
+server1.listen(0, common.localhostIPv4, common.mustCall(() => {
+ const server2 = net.createServer(common.mustNotCall());
+ server2.listen(0, common.localhostIPv4, common.mustCall(() => {
+ const client = net.connect({
+ host: common.localhostIPv4,
+ port: server1.address().port,
+ localAddress: common.localhostIPv4,
+ localPort: server2.address().port
+ }, common.mustNotCall());
+
+ client.on('error', common.mustCall((err) => {
+ assert.strictEqual(err.code, 'EADDRINUSE');
+ server1.close();
+ server2.close();
+ }));
+ }));
+}));