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



Reply via email to