PING: Re: RFR: JDK-8184770: JDWP support for IPv6

Arthur Eubanks aeubanks at google.com
Wed May 8 00:48:40 UTC 2019


Even though I showed our internal patches in this area earlier, I haven't
really looked into exactly what this patch does (since it was written by
someone else).
I can confirm that it fixes jshell in an IPv6 only environment though.

*From: *<serguei.spitsyn at oracle.com>
*Date: *Tue, May 7, 2019 at 11:42 AM
*To: *Alex Menkov, <serviceability-dev at openjdk.java.net>, net-dev, Chris
Hegarty

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/
>
>
> Thanks,
> Serguei
>
>
> On 5/6/19 3:27 PM, serguei.spitsyn at oracle.com wrote:
>
> Hi Alex,
>
> It looks great and very solid in general!
>
> Some minor comments are below.
>
>
> http://cr.openjdk.java.net/~amenkov/IPv6/webrev.04/src/jdk.jdwp.agent/share/native/libdt_socket/socketTransport.c.frames.html
>
>  263  * Result must be release with dbgsysFreeAddrInfo.
>
>   A typo: "must be release" => "must be released"
>
>   80 typedef struct {  81     struct in6_addr subnet;  82     struct in6_addr netmask;
>   83 } AllowedPeerInfo;
>  . . .
>  431 parseAllowedPeersInternal(char *buffer) {
>  . . . 483 }
>  . . .
>  524 isPeerAllowed(struct sockaddr_storage *peer) { 525     struct in6_addr tmp; 526     struct in6_addr *addr6; 527     if (peer->ss_family == AF_INET) { 528         convertIPv4ToIPv6((struct sockaddr *)peer, &tmp); 529         addr6 = &tmp; 530     } else { 531         addr6 = &(((struct sockaddr_in6 *)peer)->sin6_addr); 532     } 533  534     for (int i = 0; i < _peers_cnt; ++i) { 535         if (isAddressInSubnet(addr6, &(_peers[i].subnet), &(_peers[i].netmask))) {
>  536             return 1;
>  537         }
>  538     }
>
>  The allowed pears are converted into and used/checked in the IPv6 format.
>  Some short comments about it in all three places above would be helpful.
>  I'd consider to do the same in parseAllowedAddr() before this fragment:
>
>  367     if (addrInfo->ai_family == AF_INET6) { 368         memcpy(result, &(((struct sockaddr_in6 *)(addrInfo->ai_addr))->sin6_addr), sizeof(*result)); 369         *isIPv4 = 0; 370     } else {    // IPv4 address 371         struct in6_addr addr6; 372         convertIPv4ToIPv6(addrInfo->ai_addr, &addr6); 373         memcpy(result, &addr6, sizeof(*result)); 374         *isIPv4 = 1;
>  375     }
>
>
>  and in parseAllowedMask() before the line:
>
>  420             result->s6_addr[i] = (char)(0xFF << (8 - prefixLen));
>
>
>  This fragment needs a comment:
>  402     if (isIPv4) { 403         prefixLen += 96;
>  404     }
>
>
>
> We have to find out at least one more reviewer for this fix!
>
> Thanks,
> Serguei
>
>
> On 5/3/19 18:14, serguei.spitsyn at oracle.com wrote:
>
> Hi Alex,
>
> Thank you for creating the CSR!
> I've added myself as a reviewer and corrected a couple of places.
> Feel free to change my changes if necessary. :)
> It would be nice to get one more CSR review if possible, so I've added the
> net-dev mailing list.
>
> I hope to finish the webrev review soon.
>
> Thanks,
> Serguei
>
> On 5/1/19 10:54 AM, Alex Menkov wrote:
>
> Hi all,
>
> I created CSR for the feature:
> https://bugs.openjdk.java.net/browse/JDK-8223104
>
> The latest webrev:
> http://cr.openjdk.java.net/~amenkov/IPv6/webrev.04/
>
> --alex
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/serviceability-dev/attachments/20190507/9385f9ab/attachment-0001.html>


More information about the serviceability-dev mailing list