RFR: JDK-6458027 - Disabling IPv6 on a specific network interface causes problems
Mark Sheppard
mark.sheppard at oracle.com
Mon Sep 16 03:34:22 PDT 2013
Thanks Chris .... more lucid than my own reply
Mark
On 16/09/2013 11:33, Chris Hegarty wrote:
> 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