diff options
author | Joyee Cheung <joyeec9h3@gmail.com> | 2017-08-31 01:13:04 +0800 |
---|---|---|
committer | Ruben Bridgewater <ruben@bridgewater.de> | 2017-09-03 17:19:35 -0300 |
commit | c419adff1d2cb8a71add8dc0027607715ae731ea (patch) | |
tree | 5f36d7cb280d448c5069ea72a0751e8c07943a42 /test/parallel/test-net-client-bind-twice.js | |
parent | d7200d6823ab074fb429c74d252b663ad0b988f8 (diff) | |
download | android-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.js | 26 |
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(); + })); + })); +})); |