Author: toad
Date: 2007-08-08 19:25:15 +0000 (Wed, 08 Aug 2007)
New Revision: 14535

Modified:
   trunk/freenet/src/freenet/node/OpennetManager.java
Log:
successCount: don't reset it unless we actually add a peer, and do reset it 
even if the peer we were replacing was disconnected
successCount is simply the number of successes since we last added a peer

Modified: trunk/freenet/src/freenet/node/OpennetManager.java
===================================================================
--- trunk/freenet/src/freenet/node/OpennetManager.java  2007-08-08 19:02:52 UTC 
(rev 14534)
+++ trunk/freenet/src/freenet/node/OpennetManager.java  2007-08-08 19:25:15 UTC 
(rev 14535)
@@ -239,13 +239,13 @@
                synchronized(this) {
                        boolean hasDisconnected = false;
                        if(peersLRU.size() == MAX_PEERS && nodeToAddNow == 
null) {
-                               PeerNode toDrop = peerToDrop(true, false);
+                               PeerNode toDrop = peerToDrop(true);
                                if(toDrop != null)
                                        hasDisconnected = !toDrop.isConnected();
                        } else while(peersLRU.size() > MAX_PEERS - 
(nodeToAddNow == null ? 0 : 1)) {
                                PeerNode toDrop;
                                // can drop peers which are over the limit
-                               toDrop = peerToDrop(noDisconnect && 
nodeToAddNow != null && peersLRU.size() == MAX_PEERS, nodeToAddNow != null);
+                               toDrop = peerToDrop(noDisconnect && 
nodeToAddNow != null && peersLRU.size() == MAX_PEERS);
                                if(toDrop == null) {
                                        if(logMINOR)
                                                Logger.minor(this, "No more 
peers to drop, cannot accept peer"+(nodeToAddNow == null ? "" : 
nodeToAddNow.toString()));
@@ -269,6 +269,7 @@
                                                ret = false;
                                                if(logMINOR) Logger.minor(this, 
"Could not add opennet peer "+nodeToAddNow+" because already in list");
                                        } else {
+                                               successCount = 0;
                                                if(addAtLRU)
                                                        
peersLRU.pushLeast(nodeToAddNow);
                                                else
@@ -302,14 +303,14 @@
        private void dropExcessPeers() {
                while(peersLRU.size() > MAX_PEERS) {
                        PeerNode toDrop;
-                       toDrop = peerToDrop(false, false);
+                       toDrop = peerToDrop(false);
                        if(toDrop == null) return;
                        peersLRU.remove(toDrop);
                        node.peers.disconnect(toDrop);
                }
        }

-       synchronized PeerNode peerToDrop(boolean noDisconnect, boolean 
resetSuccessCount) {
+       synchronized PeerNode peerToDrop(boolean noDisconnect) {
                if(peersLRU.size() < MAX_PEERS) {
                        // Don't drop any peers
                        return null;
@@ -337,8 +338,6 @@
                                if(Logger.shouldLog(Logger.MINOR, this))
                                        Logger.minor(this, "Possibly dropping 
opennet peer "+pn+" "+
                                                        
(System.currentTimeMillis() - timeLastDropped)+" ms since last dropped peer");
-                               if(resetSuccessCount)
-                                       successCount = 0;
                                return pn;
                        }
                }


Reply via email to