Uh oh!
There was an error while loading. Please reload this page.
net,dgram: add ipv6Only option for net and dgram - #23798
Conversation
There was a problem hiding this comment.
Nit:
| `0.0.0.0` be bound. **Default:** `false` | |
| `0.0.0.0` be bound. **Default:** `false`. |
There was a problem hiding this comment.
Nit:
| **Default:**`false` | |
| **Default:**`false`. |
There was a problem hiding this comment.
minor nit: perhaps this should be camel case (ipv6Only)?
There was a problem hiding this comment.
Though I prefer ipv6only here, it's better to follow camel case :)
There was a problem hiding this comment.
| // This test ensures that dual-stack suuport is disabled when | |
| // This test ensures that dual-stack support is disabled when |
291bb1d to
91e21b2CompareThere was a problem hiding this comment.
This looks wrong. Boolean(flags | constants.UV_TCP_IPV6ONLY) is always true. Did you mean to use &?
There was a problem hiding this comment.
Yes, a terrible mistake. I'm going to update it and add a test of falsy ipv6Only scenario.
There was a problem hiding this comment.
The default value of ipv6Only would be actually undefined rather than false which is how its document described. This is the only reason I set the default argument.
oyyd
commented
Oct 22, 2018
PTAL. (Travis ci task for this halted..) |
silverwind
commented
Oct 22, 2018
Thanks for doing this. Would you mind als contributing the same option to UDP / dgram? |
oyyd
commented
Oct 23, 2018
Yes, that's possible. But the last discussion #17664 (comment) shows there is no need to provide the same option to dgram. How do you think about this now? |
There was a problem hiding this comment.
Just "disable dual-stack support", no "the." (And you'd normally say "binding to host", not "binding host".)
There was a problem hiding this comment.
Did you mean to write WORKER_COUNT? The name's a bit confusing to me.
There was a problem hiding this comment.
I should have been more careful.
There was a problem hiding this comment.
It's unnecessary to wrap the Countdown callback in a mustCall(). That's done automatically.
I think I misunderstood the comment #17664 (comment). We could bind to and use unspecified address and it works as expected: exampleconstdgram=require('dgram');constsocket=dgram.createSocket('udp6');socket.on('message',(msg,rinfo)=>{console.log('rinfo',rinfo)});socket.bind(0,'::',()=>{const{ port }=socket.address();constclient=dgram.createSocket('udp4');// Ensure the `client` won't bind ipv6.client.bind(0,()=>{client.send(Buffer.allocUnsafe(1),port,'0.0.0.0');});});So I would like to add the option to dgram too. |
oyyd
commented
Oct 24, 2018
|
I'd say still go for it. Even if the OS might not properly support the socket option, we can still expose it. |
There was a problem hiding this comment.
nit: don't need the common.mustCall() wrapper here.
There was a problem hiding this comment.
nit: don't need the common.mustCall() wrapper here.
oyyd
commented
Oct 25, 2018
/ping @silverwind@vsemozhetbyt@mscdex@richardlau@jasnell It should look good now. PTAL. |
vsemozhetbyt
commented
Oct 25, 2018
Docs LGTM. |
Uh oh!
There was an error while loading. Please reload this page.
Trott
commented
Nov 6, 2018
oyyd
commented
Nov 12, 2018
I have no idea why this happened though. |
Trott
commented
Nov 12, 2018
@nodejs/platform-aix ^^^^^^ |
oyyd
commented
Nov 15, 2018
I suggest removing the support for |
Trott
commented
Nov 18, 2018
Will you be doing that and rebasing? If not, should we apply a |
oyyd
commented
Nov 18, 2018
I will remove the |
For TCP servers, the dual-stack support is enable by default, i.e. binding host "::" will also make "0.0.0.0" bound. This commit add ipv6Only option in `net.Server.listen()` and `dgram.createSocket()` methods which allows to disable dual-stack support. Support for cluster module is also provided in this commit. Fixes: nodejs#17664
oyyd
commented
Nov 21, 2018
oyyd
commented
Nov 21, 2018
Resume (for known issues): https://ci.nodejs.org/job/node-test-commit-arm-fanned/4499/ |
oyyd
commented
Nov 21, 2018
I have removed the support for /cc @bnoordhuis@jasnell Does this still LGTY? |
jasnell
commented
Nov 21, 2018
Yes, still LGTM |
oyyd
commented
Nov 22, 2018
Landed in 33a25b2. Thanks! |
For TCP servers, the dual-stack support is enable by default, i.e. binding host "::" will also make "0.0.0.0" bound. This commit add ipv6Only option in `net.Server.listen()` and `dgram.createSocket()` methods which allows to disable dual-stack support. Support for cluster module is also provided in this commit. Fixes: #17664 PR-URL: #23798 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: James M Snell <jasnell@gmail.com>
For TCP servers, the dual-stack support is enable by default, i.e. binding host "::" will also make "0.0.0.0" bound. This commit add ipv6Only option in `net.Server.listen()` and `dgram.createSocket()` methods which allows to disable dual-stack support. Support for cluster module is also provided in this commit. Fixes: #17664 PR-URL: #23798 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: James M Snell <jasnell@gmail.com>
For TCP servers, the dual-stack support is enable by default, i.e. binding host "::" will also make "0.0.0.0" bound. This commit add ipv6Only option in `net.Server.listen()` and `dgram.createSocket()` methods which allows to disable dual-stack support. Support for cluster module is also provided in this commit. Fixes: #17664 PR-URL: #23798 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: James M Snell <jasnell@gmail.com>
Notable Changes: * console,util: * `console` functions now handle symbols as defined in the spec. #23708 * The inspection `depth` default is now back at 2. #24326 * dgram,net: * Added ipv6Only option for `net` and `dgram`. #23798 * http: * Chosing between the http parser is now possible per runtime flag. #24739 * readline: * The `readline` module now supports async iterators. #23916 * repl: * The multiline history feature is removed. #24804 * tls: * Added min/max protocol version options. #24405 * The X.509 public key info now includes the RSA bit size and the elliptic curve. #24358 * url: * `pathToFileURL()` now supports LF, CR and TAB. #23720 * Windows: * Tools are not installed using Boxstarter anymore. #24677 * The install-tools scripts or now included in the dist. #24233 * Added new collaborator: * [antsmartian](https://github.com/antsmartian) - Anto Aravinth. #24655 PR-URL: #24854
Notable Changes: * console,util: * `console` functions now handle symbols as defined in the spec. #23708 * The inspection `depth` default is now back at 2. #24326 * dgram,net: * Added ipv6Only option for `net` and `dgram`. #23798 * http: * Chosing between the http parser is now possible per runtime flag. #24739 * readline: * The `readline` module now supports async iterators. #23916 * repl: * The multiline history feature is removed. #24804 * tls: * Added min/max protocol version options. #24405 * The X.509 public key info now includes the RSA bit size and the elliptic curve. #24358 * url: * `pathToFileURL()` now supports LF, CR and TAB. #23720 * Windows: * Tools are not installed using Boxstarter anymore. #24677 * The install-tools scripts or now included in the dist. #24233 * Added new collaborator: * [antsmartian](https://github.com/antsmartian) - Anto Aravinth. #24655 PR-URL: #24854
Notable Changes: * console,util: * `console` functions now handle symbols as defined in the spec. #23708 * The inspection `depth` default is now back at 2. #24326 * dgram,net: * Added ipv6Only option for `net` and `dgram`. #23798 * http: * Chosing between the http parser is now possible per runtime flag. #24739 * readline: * The `readline` module now supports async iterators. #23916 * repl: * The multiline history feature is removed. #24804 * tls: * Added min/max protocol version options. #24405 * The X.509 public key info now includes the RSA bit size and the elliptic curve. #24358 * url: * `pathToFileURL()` now supports LF, CR and TAB. #23720 * Windows: * Tools are not installed using Boxstarter anymore. #24677 * The install-tools scripts or now included in the dist. #24233 * Added new collaborator: * [antsmartian](https://github.com/antsmartian) - Anto Aravinth. #24655 PR-URL: #24854
For TCP servers, the dual-stack support is enable by default, i.e. binding host "::" will also make "0.0.0.0" bound. This commit add ipv6Only option in `net.Server.listen()` and `dgram.createSocket()` methods which allows to disable dual-stack support. Support for cluster module is also provided in this commit. Fixes: nodejs#17664 PR-URL: nodejs#23798 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: James M Snell <jasnell@gmail.com>
Notable Changes: * console,util: * `console` functions now handle symbols as defined in the spec. nodejs#23708 * The inspection `depth` default is now back at 2. nodejs#24326 * dgram,net: * Added ipv6Only option for `net` and `dgram`. nodejs#23798 * http: * Chosing between the http parser is now possible per runtime flag. nodejs#24739 * readline: * The `readline` module now supports async iterators. nodejs#23916 * repl: * The multiline history feature is removed. nodejs#24804 * tls: * Added min/max protocol version options. nodejs#24405 * The X.509 public key info now includes the RSA bit size and the elliptic curve. nodejs#24358 * url: * `pathToFileURL()` now supports LF, CR and TAB. nodejs#23720 * Windows: * Tools are not installed using Boxstarter anymore. nodejs#24677 * The install-tools scripts or now included in the dist. nodejs#24233 * Added new collaborator: * [antsmartian](https://github.com/antsmartian) - Anto Aravinth. nodejs#24655 PR-URL: nodejs#24854
For our servers, the dual-stack support is enable by default, i.e. binding host "::" will also make "0.0.0.0" bound. This commit add ipv6Only option in
net.Server.listen(),net.Socket.connect()anddgram.createSocket()methods which allows to disable dual-stack support.Support for cluster module is also provided in this commit.
Fixes: #17664
/cc @silverwind
Checklist
make -j4 test(UNIX), orvcbuild test(Windows) passes