RFR: JDK-6458027 - Disabling IPv6 on a specific network interface causes problems

Chris Hegarty chris.hegarty at oracle.com
Mon Sep 16 03:33:42 PDT 2013


Mark,

 From what I can see, I think the changes are correct.

On 16/09/2013 11:10, Michael McMahon wrote:
> One comment so far. The ipv4mode parameter in
>
> getIPv4NetworkInterface()
>
> seems superfluous, with the call using parameter value "0"
> could be just elided to using the null return value directly.

I think the param is needed to determine if the function should ever 
return NULL, or force creation of the NI instance. From what I can see, 
Mark's changes preserve the same behavior by using this param.

> I was a bit confused also that the new function is in the TwoStacks...
> module,
> but it seems this file contains native code common to both dual
> stack/two stacks
> mode. We probably should move this code to a different source file some
> time,
> but it might be useful to put a comment in at least to say that it is
> common
> to both modes.

I'm not sure what what code you are referring to here, but as far as I 
am aware there is no dual stack code in this file. Yes, there is both 
IPv4 and IPv6, but both should be on separate sockets.

-Chris.

>
> Michael
>
>
>
> On 15/09/13 12:34, Mark Sheppard wrote:
>> Hi
>> please oblige and review the webrev below which addresses the issue
>>
>> problem:
>> https://bugs.openjdk.java.net/browse/JDK-6458027
>>
>> webrev:
>> http://cr.openjdk.java.net/~msheppar/6458027/webrev/
>>
>> the core of the issue is that a windows platform may be IPv6 enabled, but
>> an individual adapter/interface may not be configured with for IPv6.
>> This causes a problem with the MulticastSocket.setNetworkInterface()
>> and MulticastSocket.getNetworkInterface() methods.
>>
>> The solution focuses on adding and additional check on the
>> individual interface for IPV6 enabling.
>>
>> The fallback position when an adapter is not configured for IPV6, is to
>> handled it as IPV4, only.
>>
>> It should be noted that setting an Interface which does not have a
>> valid IP address bound to it will result in a SocketException. As such, i
>> the onus in on the application to supply a validly configured
>> NetworkInterface object to the MulticastSocket.setNetworkInterface().
>>
>> With this in mind, the set of Interfaces constructed for the
>> associated test
>> is based on the interface being up, multicast, and valid IP address
>> configured.
>>
>> regards
>> Mark
>



More information about the net-dev mailing list