RFR:JDK-8021372 NetworkInterface.getNetworkInterfaces() returns duplicate hardware address
Dmitry Samersoff
dmitry.samersoff at oracle.com
Tue Sep 3 02:45:37 PDT 2013
Mark,
1. If I read the code correctly,
ll. 168 - 177 is exactly the same as ll. 180 - 189
Could you refactor the fix to avoid code duplication?
Would something like
if (
(ptr->IfIndex != 0 && ptr->IfIndex == index) ||
(ptr->Ipv6IfIndex != 0 && ptr->Ipv6IfIndex == index)
) {
...
}
work?
2. It seems to me passed index couldn't be 0 so null check is redundant,
but I don't mind to keep it.
It might make sense to explicitly check passed index for 0 above loop.
-Dmitry
On 2013-09-03 13:23, Mark Sheppard wrote:
> Hi
> please oblige and review the fix below to address the issue in JDK-8021372:
> NetworkInterface.getNetworkInterfaces() returns duplicate hardware address
>
> http://cr.openjdk.java.net/~msheppar/8021372/webrev/
>
> the handling of the Ipv6IfIndex was suspect when setting the
> interface index and when retrieving the mac address using the index.
>
> in the getAdpaters function, the conditaionalstatement could be rolled
> into one.
> But, as there was a spurious IPv4 comment, I structured it as an if
> else. statement.
>
> It should be noted that IfIndex and the Ipv6IfIndex can be zero, which
> implies that the
> IPv4 or IPv6 interface is not available. This may be at odds with the
> setting of a default index to 0 in the Java NetworkInterface abstraction,
> where a defaultIndex of zero is used.
>
> JPRTs have been run and show no side effects.
>
> regards
> Mark
--
Dmitry Samersoff
Oracle Java development team, Saint Petersburg, Russia
* I would love to change the world, but they won't give me the sources.
More information about the net-dev
mailing list