Author: toad
Date: 2007-07-13 18:14:43 +0000 (Fri, 13 Jul 2007)
New Revision: 14082

Modified:
   trunk/freenet/src/freenet/node/OpennetManager.java
Log:
Don't dump all opennet peers if we have less than the maximum

Modified: trunk/freenet/src/freenet/node/OpennetManager.java
===================================================================
--- trunk/freenet/src/freenet/node/OpennetManager.java  2007-07-13 18:08:57 UTC 
(rev 14081)
+++ trunk/freenet/src/freenet/node/OpennetManager.java  2007-07-13 18:14:43 UTC 
(rev 14082)
@@ -198,7 +198,7 @@
                Vector dropList = new Vector();
                boolean ret = true;
                synchronized(this) {
-                       while(peersLRU.size() < MAX_PEERS - (nodeToAddNow == 
null ? 0 : 1)) {
+                       while(peersLRU.size() > MAX_PEERS - (nodeToAddNow == 
null ? 0 : 1)) {
                                PeerNode toDrop;
                                toDrop = peerToDrop();
                                if(toDrop == null) {
@@ -232,6 +232,16 @@
                return ret;
        }

+       private void dropExcessPeers() {
+               while(peersLRU.size() < MAX_PEERS) {
+                       PeerNode toDrop;
+                       toDrop = peerToDrop();
+                       if(toDrop == null) return;
+                       peersLRU.remove(toDrop);
+                       node.peers.disconnect(toDrop);
+               }
+       }
+       
        synchronized PeerNode peerToDrop() {
                if(peersLRU.size() < MAX_PEERS) {
                        // Don't drop any peers


Reply via email to