Request for Review 6718504: IN6_IS_ADDR_ANY tests only 12 bytes of 16-byte address
Hi Alan, net_util_md.h incorrectly defines the macro IN6_IS_ADDR_ANY to only look at 12 bytes of the 16 byte address. This causes a bind to ::1 to be treated as if it were a bind to the wildcard address. Note: with the addition of the dual stack native implementation on Vista this code is only executed when running IPv6 on Windows XP. Webrev: http://cr.openjdk.java.net/~chegar/6718504/webrev.00/webrev/ -Chris.
Re: Request for Review 6718504: IN6_IS_ADDR_ANY tests only 12 bytes of 16-byte address
Chris Hegarty wrote: Hi Alan, net_util_md.h incorrectly defines the macro IN6_IS_ADDR_ANY to only look at 12 bytes of the 16 byte address. This causes a bind to ::1 to be treated as if it were a bind to the wildcard address. Note: with the addition of the dual stack native implementation on Vista this code is only executed when running IPv6 on Windows XP. Webrev: http://cr.openjdk.java.net/~chegar/6718504/webrev.00/webrev/ -Chris. The change looks fine to me. In the test it might be simpler to put the lookup of the IPv6 loopback address in the main method. Also, you can probably call getLocalAddress. -Alan.
Re: Request for Review 6718504: IN6_IS_ADDR_ANY tests only 12 bytes of 16-byte address
On 26/04/2010 14:37, Alan Bateman wrote: Chris Hegarty wrote: Hi Alan, net_util_md.h incorrectly defines the macro IN6_IS_ADDR_ANY to only look at 12 bytes of the 16 byte address. This causes a bind to ::1 to be treated as if it were a bind to the wildcard address. Note: with the addition of the dual stack native implementation on Vista this code is only executed when running IPv6 on Windows XP. Webrev: http://cr.openjdk.java.net/~chegar/6718504/webrev.00/webrev/ -Chris. The change looks fine to me. In the test it might be simpler to put the lookup of the IPv6 loopback address in the main method. Also, you can probably call getLocalAddress. Thanks Alan, I've make the changes and simplified the test. -Chris. -Alan.
Re: Request for Review 6718504: IN6_IS_ADDR_ANY tests only 12 bytes of 16-byte address
Chris Hegarty wrote: : Thanks Alan, I've make the changes and simplified the test. I looked at the updated version. The try/catch around the loopback address lookup doesn't seem to be needed. Also, no need to catch the IOException in the main part of the test either. Otherwise looks fine to me. -Alan.