Hi Chris, thanks for the review. We couldn't observe issues in our OpenJDK test systems and most of the change was part of the SAP JVM already for quite some time. So I pushed it just now: http://hg.openjdk.java.net/jdk9/dev/jdk/rev/d4f70e7859c7
Some more cleanup is still to come... :) Best regards Christoph > -----Original Message----- > From: Chris Hegarty [mailto:chris.hega...@oracle.com] > Sent: Montag, 10. Oktober 2016 14:08 > To: Langer, Christoph <christoph.lan...@sap.com>; net-dev@openjdk.java.net > Cc: nio-...@openjdk.java.net > Subject: Re: RFR(L): 8167295: Further cleanup to the native parts of > libnet/libnio > > Hi Christoph, > > On 07/10/16 16:17, Langer, Christoph wrote: > > Hi again, > > > > I have respun my patch a little bit: > > http://cr.openjdk.java.net/~clanger/webrevs/8167295.1/ > > This is a nice cleanup and an improvement to the code. Specifically, > adding 'struct sockaddr sa' to SOCKETADDRESS allows for the removal > of many cast operations. > > One minor double space I noticed when reviewing the changes. > > Net.c > 339 sa.sa4.sin_len = sizeof(struct sockaddr_in); > ^^ > > My eyes hurt from this kind of review, e.g. > addrs->addr.sa6.sin6_addr.s6_addr!!! so I put your patch through > our internal build and test system too. All looks good. > > -Chris. > > > > > The reason is that the naming of the members of SOCKETADDRESS should be > > changed to 'sa' instead of 'him' as the fields are of type 'struct > > sockaddr...'. I also did a careful inspection of the places where > > SOCKADDR_LEN resp. SOCKETADDRESS_LEN(x) used to be used and found > that > > it should really be ok if this define is completely dropped and always > > sizeof(SOCKETADDRESS) at these places. Basic testing showed that the > > changes were ok - I'll add the patch to the queue for our nightly > > build/test runs and check for regressions... > > > > > > > > Thanks > > > > Christoph > > > > > > > > > > > > *From:*Langer, Christoph > > *Sent:* Donnerstag, 6. Oktober 2016 17:44 > > *To:* net-dev@openjdk.java.net > > *Cc:* nio-...@openjdk.java.net > > *Subject:* RFR(L): 8167295: Contribute further changes from SAP to > > native parts of libnet/libnio > > > > > > > > Hi, > > > > > > > > I'm looking to contribute a few of our diffs in the network area to OpenJDK. > > > > > > > > This is the bug: https://bugs.openjdk.java.net/browse/JDK-8167295 > > > > This is the webrev: http://cr.openjdk.java.net/~clanger/webrevs/8167295.0/ > > > > > > > > Besides minor cleanups, initializations and fixes, the main thing that > > I'm proposing is the unification of the union datatype SOCKADDR (unix) > > and SOCKETADDRESS (windows). > > > > > > > > I think the definition for all platforms should basically look like the > > following, of course depending on IPv6 support and the local datatypes: > > > > > > > > typedef union { > > > > struct sockaddr him; > > > > struct sockaddr_in him4; > > > > struct sockaddr_in6 him6; > > > > } SOCKETADDRESS; > > > > > > > > The type 'SOCKADDR' is already defined on Windows so we should > > consistently use 'SOCKETADDRESS'. This move would allow for better > > writing of shared code dealing with sockaddr structures, which we do at > > SAP especially for some tracing code. > > > > > > > > I don't know yet if it's a good idea to get rid of the definitions > > SOCKADDR_LEN resp. SOCKETADDRESS_LEN(x) and fully rely on > > sizeof(SOCKETADDRESS). I've done this in my webrev and it builds. But > > I'm not sure if especially some Windows APIs would behave strangely if > > passed in a longer length values for an AF_INET socket address. Maybe > > you have some comments on that point. > > > > > > > > Apart from that, I think it is a good idea to get rid of > > 'NET_AllocSockaddr' as there is no need to malloc SOCKETADDRESS fields > > at the few places where it was used (libnio unix only). A stack variable > > would probably be better and less error prone. And the declaration of > > NET_Wait can move to the common net_util.h header as the function is > > available everywhere with the same signature. > > > > > > > > Right now I'm just at a stage where my change builds on all platforms > > and I need to do some further testing. But I'm hoping for some early > > comments J > > > > > > > > Thanks and best regards > > > > Christoph > > > > > >