Author: nextgens
Date: 2007-10-20 11:42:17 +0000 (Sat, 20 Oct 2007)
New Revision: 15452
Modified:
trunk/freenet/src/freenet/node/OpennetManager.java
Log:
Make the number of opennet peers variant depending on how many darknet peers we
have. Maybe we should average it over a period of time instead.
Modified: trunk/freenet/src/freenet/node/OpennetManager.java
===================================================================
--- trunk/freenet/src/freenet/node/OpennetManager.java 2007-10-20 11:32:01 UTC
(rev 15451)
+++ trunk/freenet/src/freenet/node/OpennetManager.java 2007-10-20 11:42:17 UTC
(rev 15452)
@@ -248,7 +248,7 @@
Logger.minor(this, "Opennet peer
already present in LRU: "+nodeToAddNow);
return true;
}
- if(peersLRU.size() < MAX_PEERS) {
+ if(peersLRU.size() < getNumberOfConnectedPeersToAim()) {
if(nodeToAddNow != null) {
if(logMINOR) Logger.minor(this, "Added
opennet peer "+nodeToAddNow+" as opennet peers list not full");
if(addAtLRU)
@@ -272,12 +272,13 @@
boolean canAdd = true;
Vector dropList = new Vector();
synchronized(this) {
+ int maxPeers = getNumberOfConnectedPeersToAim();
boolean hasDisconnected = false;
- if(peersLRU.size() == MAX_PEERS && nodeToAddNow ==
null) {
+ if(peersLRU.size() == maxPeers && nodeToAddNow == null)
{
PeerNode toDrop = peerToDrop(true);
if(toDrop != null)
hasDisconnected = !toDrop.isConnected();
- } else while(peersLRU.size() > MAX_PEERS -
(nodeToAddNow == null ? 0 : 1)) {
+ } else while(peersLRU.size() > maxPeers - (nodeToAddNow
== null ? 0 : 1)) {
PeerNode toDrop;
// can drop peers which are over the limit
toDrop = peerToDrop(noDisconnect ||
nodeToAddNow == null);
@@ -335,7 +336,7 @@
}
private void dropExcessPeers() {
- while(peersLRU.size() > MAX_PEERS) {
+ while(peersLRU.size() > getNumberOfConnectedPeersToAim()) {
if(logMINOR)
Logger.minor(this, "Dropping opennet peers:
currently "+peersLRU.size());
PeerNode toDrop;
@@ -349,7 +350,7 @@
}
synchronized PeerNode peerToDrop(boolean noDisconnect) {
- if(peersLRU.size() < MAX_PEERS) {
+ if(peersLRU.size() < getNumberOfConnectedPeersToAim()) {
// Don't drop any peers
return null;
} else {
@@ -442,4 +443,8 @@
oldPeers.remove(source);
}
+ protected int getNumberOfConnectedPeersToAim() {
+ return MAX_PEERS - node.peers.quickCountConnectedPeers();
+ }
+
}