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