RFR 7107883: getNetworkPrefixLength() does not return correct prefix length
Alan Bateman
Alan.Bateman at oracle.com
Thu May 30 05:15:09 PDT 2013
On 30/05/2013 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.
This looks fine to me.
-Alan
More information about the net-dev
mailing list