[freenet-cvs] r15452 - trunk/freenet/src/freenet/node

nextgens at freenetproject.org nextgens at freenetproject.org
Sat Oct 20 11:42:17 UTC 2007


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();
+	}
+
 }




More information about the cvs mailing list