[freenet-cvs] r18949 - trunk/freenet/src/freenet/support/transport/ip

toad at freenetproject.org toad at freenetproject.org
Thu Apr 3 12:40:06 UTC 2008


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
 		}
 	}
 




More information about the cvs mailing list