Author: toad
Date: 2008-12-06 16:54:03 +0000 (Sat, 06 Dec 2008)
New Revision: 24103

Modified:
   trunk/freenet/src/freenet/node/DarknetPeerNode.java
   trunk/freenet/src/freenet/node/OpennetManager.java
Log:
Drop excess peers on a darknet peer connecting.


Modified: trunk/freenet/src/freenet/node/DarknetPeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/DarknetPeerNode.java 2008-12-06 16:32:31 UTC 
(rev 24102)
+++ trunk/freenet/src/freenet/node/DarknetPeerNode.java 2008-12-06 16:54:03 UTC 
(rev 24103)
@@ -16,6 +16,7 @@
 import java.util.LinkedHashSet;
 
 import freenet.client.DefaultMIMETypes;
+import freenet.crypt.BlockCipher;
 import freenet.io.comm.DMT;
 import freenet.io.comm.DisconnectedException;
 import freenet.io.comm.FreenetInetAddress;
@@ -1596,4 +1597,15 @@
        public final boolean shouldDisconnectAndRemoveNow() {
                return false;
        }
+       
+       @Override
+       public long completedHandshake(long thisBootID, byte[] data, int 
offset, int length, BlockCipher encCipher, byte[] encKey, Peer replyTo, boolean 
unverified, int negType, long trackerID, boolean isJFK4, boolean jfk4SameAsOld) 
{
+               long ret = super.completedHandshake(thisBootID, data, offset, 
length, encCipher, encKey, replyTo, unverified, negType, trackerID, isJFK4, 
jfk4SameAsOld);
+               if(ret > 0) {
+                       OpennetManager om = node.getOpennet();
+                       if(om != null)
+                               om.dropExcessPeers();
+               }
+               return ret;
+       }
 }

Modified: trunk/freenet/src/freenet/node/OpennetManager.java
===================================================================
--- trunk/freenet/src/freenet/node/OpennetManager.java  2008-12-06 16:32:31 UTC 
(rev 24102)
+++ trunk/freenet/src/freenet/node/OpennetManager.java  2008-12-06 16:54:03 UTC 
(rev 24103)
@@ -400,7 +400,7 @@
                return canAdd;
        }
 
-       private void dropExcessPeers() {
+       void dropExcessPeers() {
                while(peersLRU.size() > getNumberOfConnectedPeersToAim()) {
                        if(logMINOR)
                                Logger.minor(this, "Dropping opennet peers: 
currently "+peersLRU.size());

_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs

Reply via email to