Hi Chris, Serguei,

Updated webrev:
http://cr.openjdk.java.net/~amenkov/IPv6/webrev.05/
CSR (approved):
https://bugs.openjdk.java.net/browse/JDK-8223104

Changes (vs. webrev.04):

- setsockopt(IPV6_V6ONLY) was moved from Win-specific code to shared setOptionsCommon function (in socketTransport.c) the value by default is "true" on Windows and is "false" on Unix, but it can be overridden, so lets set it explicitly;
- a comment why the result of setsockopt(IPV6_V6ONLY) is ignored is added;
- added some comments as per Serguei request.

About scopes support - I thought that the functionality is not important for debugger, but I can implement it (I'd prefer to do it by separate RFE).

--alex

On 05/11/2019 03:39, Chris Hegarty wrote:


On 7 May 2019, at 19:40, serguei.spit...@oracle.com wrote:

Hi guys,

We need a couple of partial reviews for this enhancement:

  - From the net-dev to check IPv6-addresses related part.
    It does not need to be a thorough review.
    We need another pair of eyes to check for obvious typos or misses.
    Included Chris H. to mailing list in hope for some assistance.
    (Chris, we need some help to find one of the IPv6 experts.)

  - From the serviceability-dev to check if compatibility
    is not broken and nothing is missed.
    This includes part of code that is not directly involved
    into manipulations with the IPv4/IPv6 addresses.
    The related spec update is tracked by a sub-task:
      https://bugs.openjdk.java.net/browse/JDK-8221707


Related CSR:
https://bugs.openjdk.java.net/browse/JDK-8223104

The latest webrev:
http://cr.openjdk.java.net/~amenkov/IPv6/webrev.04/


src/jdk.jdwp.agent/windows/native/libdt_socket/socket_md.c

    223     if (domain == AF_INET6) {
    224         int off = 0;
    225         // make the socket a dual mode socket
    226         setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, (char *)&off, 
sizeof(off));
    227     }
    228   }

   This code is fine, but maybe you want to expand the comment to
   mention that the setsockopt may fail if IPv4 is not supported. And
   that’s OK.

   I cannot find a similar setting of IPV6_V6ONLY for the unix
   equivalent. Why not, or where can it be found?

src/jdk.jdwp.agent/share/native/libdt_socket/socketTransport.c

   There is a lot of native code here, I skimmed over it, seems
   reasonable. There is an obvious lack of any reference to IPv6
   scopes. Can the address given to bind be an IPv6 link-local?
   If so, then the scope will need to be parsed / set appropriately.
   ( seems that the new test skips all scoped addresses? )

-Chris.

Reply via email to