On Thu, 15 Sep 2022 07:25:04 GMT, Man Cao <m...@openjdk.org> wrote: > Hi all, > > Could anyone review this bug fix for ipv6-only system? See > https://bugs.openjdk.org/browse/JDK-8293842 for detailed description of this > bug. > > Ideally, the `socket(PF_INET6, ...)` or `socket(PF_INET, ...)` call should > depend on the value of `ipv6_available()`. However, this is only easy to do > in net_util_md.c. Without checking `ipv6_available()` in > <Linux|MacOSX>SocketOptions.c, I'm not sure if it is possible for ipv6 and > ipv4 sockets to differ in the options they support. > > For example, for a system with both ipv6 and ipv4, if ipv6 supports > TCP_KEEPIDLE but ipv4 does not, then there might be a problem to always > report TCP_KEEPIDLE as supported. > > I noticed https://bugs.openjdk.org/browse/JDK-8290349 added "isIPv6" > parameter to a few functions in <Linux|MacOSX>SocketOptions.c. However, it is > not applicable to the `socketOptionSupported()` function. This change is more > similar to the `Java_jdk_net_MacOSXSocketOptions_ipDontFragmentSupported0()` > function. > > -Man
Other than the indentation, LGTM. Thanks! src/java.base/unix/native/libnet/net_util_md.c line 196: > 194: int rv, s; > 195: if (ipv6_available()) { > 196: s = socket(PF_INET6, SOCK_STREAM, 0); Please indent with 4 spaces ------------- Marked as reviewed by djelinski (Committer). PR: https://git.openjdk.org/jdk/pull/10278