Author: toad
Date: 2006-08-04 17:41:42 +0000 (Fri, 04 Aug 2006)
New Revision: 9886

Modified:
   trunk/freenet/src/freenet/io/comm/FreenetInetAddress.java
   trunk/freenet/src/freenet/node/Node.java
   trunk/freenet/src/freenet/transport/IPAddressDetector.java
Log:
Peer hashCode() consistency.
Minor fixes in IP detection from peers etc.

Modified: trunk/freenet/src/freenet/io/comm/FreenetInetAddress.java
===================================================================
--- trunk/freenet/src/freenet/io/comm/FreenetInetAddress.java   2006-08-04 
17:16:07 UTC (rev 9885)
+++ trunk/freenet/src/freenet/io/comm/FreenetInetAddress.java   2006-08-04 
17:41:42 UTC (rev 9886)
@@ -216,10 +216,10 @@
        }

        public int hashCode() {
-               if (_address != null) {
+               if(hostname != null) {
+                       return hostname.hashCode();
+               } else {
                        return _address.hashCode();
-               } else {
-                       return hostname.hashCode();
                }
        }


Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java    2006-08-04 17:16:07 UTC (rev 
9885)
+++ trunk/freenet/src/freenet/node/Node.java    2006-08-04 17:41:42 UTC (rev 
9886)
@@ -2456,7 +2456,7 @@
                                        addresses.add(a);
                        }
                }
-               if((detectedAddrs == null) && (oldIPAddress != null) && 
!oldIPAddress.equals(overrideIPAddress))
+               if((detectedAddrs.length == 0) && (oldIPAddress != null) && 
!oldIPAddress.equals(overrideIPAddress))
                        addresses.add(new Peer(oldIPAddress, portNumber));
                // Try to pick it up from our connections
                if(peers != null) {
@@ -2491,15 +2491,15 @@
                                while(it.hasNext()) {
                                        Peer cur = (Peer) (it.next());
                                        int curPop = ((Integer) 
(countsByPeer.get(cur))).intValue();
-                                       if(curPop > bestPopularity) {
+                                       if(curPop >= bestPopularity) {
+                                               secondBestPopularity = 
bestPopularity;
                                                bestPopularity = curPop;
                                                secondBest = best;
                                                best = cur;
-                                               secondBestPopularity = 
bestPopularity;
                                        }
                                }
                                if(best != null) {
-                                       if((bestPopularity > 2) || 
(detectedAddrs == null)) {
+                                       if((bestPopularity > 2) || 
(detectedAddrs.length == 0)) {
                                                if(!addresses.contains(best))
                                                        addresses.add(best);
                                                if((secondBest != null) && 
(secondBestPopularity > 2)) {

Modified: trunk/freenet/src/freenet/transport/IPAddressDetector.java
===================================================================
--- trunk/freenet/src/freenet/transport/IPAddressDetector.java  2006-08-04 
17:16:07 UTC (rev 9885)
+++ trunk/freenet/src/freenet/transport/IPAddressDetector.java  2006-08-04 
17:41:42 UTC (rev 9886)
@@ -59,7 +59,7 @@
                if(System.currentTimeMillis() > (lastDetectedTime + recheckTime)
                                || lastAddressList == null)
                        checkpoint();
-               return lastAddressList;
+               return lastAddressList == null ? new InetAddress[0] : 
lastAddressList;
        }

        boolean old = false;


Reply via email to