Dear Freenet Developers:
I apologize if this is not the right place to
bring this up. I am a senior studying CS at the
University of Maryland, and I am supposed to make a
contribution to an open source project no matter how
minor it may be :-). I ran the Freenet node source
code through a static analysis tool, FindBugs
(findbugs.sourceforge.net), and that led me to the
following problems that prevent plugins like JSTUN
from running. Please feel free to double check that
the reasons I give are correct. All of the line
numbers are for IPDetectorPluginManager.java.
1. On line 251, change if(runners.size() <
plugins.length()) to if(runners.size() != 0),
otherwise the condition is always true and we never
get to run any IPDetectorPlugins.
2. On line 437, change if(addr.equals(nodeAddrs[j]))
to if(addr.equals(nodeAddrs[j].getAddress())),
otherwise the condition is always false and we never
mark any peer IP addresses as being internal.
3. When IP addresses are detected by
IPAddressDetector, there is no checking to see whether
this interface is actually connected to another
computer. In my case, IPAddressDetector.getAddress()
returns an IPv6 address that is assigned to one of my
Ethernet ports. I am not sure how this address was
assigned, since that port is not connected to anything
at the moment. I am using a wireless adapter. I am
guessing that other people like me who don't know how
to flush old IPv6 addresses will have this problem.
The consequence of this is that IPDetectorPlugins will
not be used because the plugin manager thinks I have a
public IP address and am just firewalled at the
moment. The only way I see to fix this is to either
ignore all IPv6 addresses or find a way to detect
whether this interface is connected to another
computer.
Thank you for reading this.
-Thomas Young
____________________________________________________________________________________
Never miss a thing. Make Yahoo your home page.
http://www.yahoo.com/r/hs