Author: toad
Date: 2007-08-07 17:30:30 +0000 (Tue, 07 Aug 2007)
New Revision: 14518

Modified:
   trunk/freenet/src/freenet/node/OpennetManager.java
Log:
We need a correct hasDisconnected even when thinking about sending an offer 
when we have 15 disconnected peers.

Modified: trunk/freenet/src/freenet/node/OpennetManager.java
===================================================================
--- trunk/freenet/src/freenet/node/OpennetManager.java  2007-08-07 17:27:36 UTC 
(rev 14517)
+++ trunk/freenet/src/freenet/node/OpennetManager.java  2007-08-07 17:30:30 UTC 
(rev 14518)
@@ -238,7 +238,10 @@
                Vector dropList = new Vector();
                synchronized(this) {
                        boolean hasDisconnected = false;
-                       while(peersLRU.size() > MAX_PEERS - (nodeToAddNow == 
null ? 0 : 1)) {
+                       if(peersLRU.size() == MAX_PEERS && nodeToAddNow == 
null) {
+                               PeerNode toDrop = peerToDrop(true, false);
+                               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);


Reply via email to