Author: toad
Date: 2008-04-11 21:44:40 +0000 (Fri, 11 Apr 2008)
New Revision: 19210
Modified:
trunk/freenet/src/freenet/node/NodeIPPortDetector.java
Log:
Fix #2070: if there is a bindTo set, and it's a real IP address, use it, and
only it.
Modified: trunk/freenet/src/freenet/node/NodeIPPortDetector.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeIPPortDetector.java 2008-04-11
21:23:07 UTC (rev 19209)
+++ trunk/freenet/src/freenet/node/NodeIPPortDetector.java 2008-04-11
21:44:40 UTC (rev 19210)
@@ -43,18 +43,13 @@
* (for that port/NodeCrypto) list of IP addresses (still without port
numbers).
*/
FreenetInetAddress[] detectPrimaryIPAddress() {
- FreenetInetAddress[] addresses =
ipDetector.detectPrimaryIPAddress();
FreenetInetAddress addr = crypto.getBindTo();
if(addr.isRealInternetAddress(false, true, false)) {
- for(int i=0;i<addresses.length;i++) {
- if(addresses[i] == addr) return addresses;
- }
- FreenetInetAddress[] newAddresses = new
FreenetInetAddress[addresses.length+1];
- System.arraycopy(addresses, 0, newAddresses, 0,
addresses.length);
- newAddresses[addresses.length] = addr;
- return newAddresses;
+ // Binding to a real internet address => don't want us
to use the others, most likely
+ // he is on a multi-homed box where only one IP can be
used for Freenet.
+ return new FreenetInetAddress[] { addr };
}
- return addresses;
+ return ipDetector.detectPrimaryIPAddress();
}
/**