From: Ito Kazumitsu <[EMAIL PROTECTED]> Subject: NetworkInterface problem (Re: [kaffe] freebsd 5.3 failed regression) Date: Sun, 24 Apr 2005 23:07:48 +0900 (JST)
The problem seems to appear when a network interface has more than one addresses.
The differnce between Kaffe's java.net.NetworkInterface and that of GNU classpath is that Kaffe's has a private method "condense" which condenses the output from VMNetworkInterface.getInterfaces().
The output from VMNetworkInterface.getInterfaces() may be something like this.
((name1 addr11) (name1 addr12) (name1 addr13) (name2 addr21) (name2 addr22))
condense condenses this into
((name1 (addr11 addr12 addr13)) (name2 (addr21 addr22)))
(1) NetworkInterface returned by NetworkInterface.getNetworkInterfaces() contains all addresses of that interface.
NetworkInterface.getNetworkInterfaces() returns the the condensed
result.
(2) NetworkInterface returned by NetworkInterface.getByName(name) or NetworkInterface.getByInetAddress(addr) contains only one of the addresses of that interface.
Until recently, these methods used getNetworkInterfaces() which returned a condensed result. But now they do not call getNetworkInterfaces() but calls VMNetworkInterface.getInterfaces() which may return one of uncondensed raw results.
The fix may be either
(a) To modify java.net.NetworkInterface so that getByName or getByInetAddress calls getNetworkInterfaces() as before.
Thanks for the fast analysis, Ito!
I'd say let's do a) as it is simpler & faster. We need to push the condensing code upstream into classpath anyway for IPv6 support, I think.
Could you write a patch?
cheers, dalibor topic
p.s. I hope the recent iconv changes work for you on freebsd. Riccardo seems to be having some problems, we're debugging them on IRC.
_______________________________________________ kaffe mailing list kaffe@kaffe.org http://kaffe.org/cgi-bin/mailman/listinfo/kaffe