Author: toad
Date: 2008-04-03 12:40:06 +0000 (Thu, 03 Apr 2008)
New Revision: 18949
Modified:
trunk/freenet/src/freenet/support/transport/ip/IPAddressDetector.java
Log:
Fix FIXME: Pick up changed IP address more quickly.
Modified: trunk/freenet/src/freenet/support/transport/ip/IPAddressDetector.java
===================================================================
--- trunk/freenet/src/freenet/support/transport/ip/IPAddressDetector.java
2008-04-03 12:11:48 UTC (rev 18948)
+++ trunk/freenet/src/freenet/support/transport/ip/IPAddressDetector.java
2008-04-03 12:40:06 UTC (rev 18949)
@@ -6,6 +6,7 @@
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
+import java.util.Arrays;
import java.util.Enumeration;
import java.util.Vector;
@@ -118,19 +119,14 @@
}
// FIXME: what are we doing here? lastInetAddress is always
null.
- InetAddress oldAddress = lastInetAddress;
+ InetAddress[] oldAddressList = lastAddressList;
onGetAddresses(addrs);
lastDetectedTime = System.currentTimeMillis();
- if ((oldAddress != null) && (lastInetAddress != null) &&
- !lastInetAddress.equals(oldAddress)) {
- Logger.minor(
- this,
- "Public IP Address changed from "
- + oldAddress.getHostAddress()
- + " to "
- + lastInetAddress.getHostAddress());
+ if(oldAddressList == lastAddressList || oldAddressList == null
&& lastAddressList != null ||
+ !Arrays.equals(oldAddressList,
lastAddressList)) {
+ // Something changed.
+ // Yes I know it could just have changed the order, but
this is unlikely hopefully. FIXME.
detector.redetectAddress();
- // We know it changed
}
}