RFR 7107883: getNetworkPrefixLength() does not return correct prefix length

Michael McMahon michael.x.mcmahon at oracle.com
Thu May 30 06:54:47 PDT 2013


The change looks fine. Do you think it would be possible to make a
test case by using the loopback interface, when it's available and
when it doesn't have a broadcast address, which is probably a very common
situation?

Michael

On 30/05/13 12:53, Chris Hegarty wrote:
> The Unix native implementation that determines the network interface's 
> broadcast address and network prefix/subnet mask, incorrectly ties the 
> mask to the existence of a broadcast address. This should be changed 
> so that the network prefix/subnet mask, if available, is exposed 
> through the Java API, getNetworkPrefixLength, regardless of the 
> broadcast address.
>
> http://cr.openjdk.java.net/~chegar/7107883/webrev.00/webrev/
>
> Creating a reliable automatic regression test for this be problematic. 
> Also, there is already an existing test that verify that 
> getNetworkPrefixLength returns values within specified bounds.
>
> This issue can be easily seen with the loopback interface:
>
>   >: ifconfig lo
>   lo        Link encap:Local Loopback
>             inet addr:127.0.0.1  Mask:255.0.0.0
>             inet6 addr: ::1/128 Scope:Host
>             UP LOOPBACK RUNNING  MTU:16436  Metric:1
>             RX packets:722 errors:0 dropped:0 overruns:0 frame:0
>             TX packets:722 errors:0 dropped:0 overruns:0 carrier:0
>             collisions:0 txqueuelen:0
>             RX bytes:102346 (102.3 KB)  TX bytes:102346 (102.3 KB)
>
>   >: binaries/jdk1.7.0_07/bin/java Test lo
>     <0:0:0:0:0:0:0:1%1>
>     getBroadcast():null
>     getNetworkPrefixLength():128
>     <127.0.0.1>
>     getBroadcast():null
>     getNetworkPrefixLength():0
>
> -Chris.




More information about the net-dev mailing list