Author: toad
Date: 2008-12-09 15:05:38 +0000 (Tue, 09 Dec 2008)
New Revision: 24139

Modified:
   trunk/freenet/src/freenet/node/Announcer.java
   trunk/freenet/src/freenet/node/FNPPacketMangler.java
   trunk/freenet/src/freenet/node/Node.java
   trunk/freenet/src/freenet/node/NodeDispatcher.java
   trunk/freenet/src/freenet/node/OpennetManager.java
   trunk/freenet/src/freenet/node/PacketSender.java
   trunk/freenet/src/freenet/node/PeerManager.java
   trunk/freenet/src/freenet/node/SeedClientPeerNode.java
   trunk/freenet/src/freenet/node/SeedServerPeerNode.java
Log:
Add a boolean for purge from old-opennet-peers to PeerManager.disconnect().
Set this to true if we accept an old-opennet-peer and then dump it, hence if 
one side drops the other side from the bottom of the LRU, the dropped side will 
not keep trying to reconnect.
Set it to true on dropping the LRU peer.


Modified: trunk/freenet/src/freenet/node/Announcer.java
===================================================================
--- trunk/freenet/src/freenet/node/Announcer.java       2008-12-09 14:53:21 UTC 
(rev 24138)
+++ trunk/freenet/src/freenet/node/Announcer.java       2008-12-09 15:05:38 UTC 
(rev 24139)
@@ -331,7 +331,7 @@
                                        }
                                        if(enoughPeers()) {
                                                for(SeedServerPeerNode pn : 
node.peers.getConnectedSeedServerPeersVector(null)) {
-                                                       
node.peers.disconnect(pn, true, true);
+                                                       
node.peers.disconnect(pn, true, true, false);
                                                }
                                                // Re-check every minute. 
Something bad might happen (e.g. cpu starvation), causing us to have to reseed.
                                                
node.getTicker().queueTimedJob(new Runnable() {
@@ -511,7 +511,7 @@
                                // If it takes more than COOLING_OFF_PERIOD to 
disconnect, we might not be able to reannounce to this
                                // node. However, we can't reannounce to it 
anyway until announcedTo is cleared, which probably will
                                // be more than that period in the future.
-                               node.peers.disconnect(seed, true, false);
+                               node.peers.disconnect(seed, true, false, false);
                                System.out.println("Announcement to 
"+seed.userToString()+" completed.");
                                if(announceNow)
                                        maybeSendAnnouncement();

Modified: trunk/freenet/src/freenet/node/FNPPacketMangler.java
===================================================================
--- trunk/freenet/src/freenet/node/FNPPacketMangler.java        2008-12-09 
14:53:21 UTC (rev 24138)
+++ trunk/freenet/src/freenet/node/FNPPacketMangler.java        2008-12-09 
15:05:38 UTC (rev 24139)
@@ -1222,7 +1222,7 @@
                                        c, Ke, Ka, authenticator, hisRef, pn, 
replyTo, unknownInitiator, setupType, newTrackerID, newTrackerID == trackerID);
                        
                        if(dontWant)
-                               node.peers.disconnect(pn, true, false); // Let 
it connect then tell it to remove it.
+                               node.peers.disconnect(pn, true, false, true); 
// Let it connect then tell it to remove it.
                        else
                                pn.maybeSendInitialMessages();
                } else {
@@ -1438,7 +1438,7 @@
                c.initialize(pn.jfkKs);
                if(pn.completedHandshake(bootID, hisRef, 0, hisRef.length, c, 
pn.jfkKs, replyTo, false, negType, trackerID, true, reusedTracker) >= 0) {
                        if(dontWant)
-                               node.peers.disconnect(pn, true, false);
+                               node.peers.disconnect(pn, true, false, true);
                        else
                                pn.maybeSendInitialMessages();
                } else {

Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java    2008-12-09 14:53:21 UTC (rev 
24138)
+++ trunk/freenet/src/freenet/node/Node.java    2008-12-09 15:05:38 UTC (rev 
24139)
@@ -3263,7 +3263,7 @@
        }
        
        public void removePeerConnection(PeerNode pn) {
-               peers.disconnect(pn, true, false);
+               peers.disconnect(pn, true, false, false);
        }
 
        public void onConnectedPeer() {

Modified: trunk/freenet/src/freenet/node/NodeDispatcher.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeDispatcher.java  2008-12-09 14:53:21 UTC 
(rev 24138)
+++ trunk/freenet/src/freenet/node/NodeDispatcher.java  2008-12-09 15:05:38 UTC 
(rev 24139)
@@ -314,7 +314,7 @@
                // Otherwise just dump all current connection state and keep 
trying to connect.
                boolean remove = m.getBoolean(DMT.REMOVE);
                if(remove)
-                       node.peers.disconnect(source, false, false);
+                       node.peers.disconnect(source, false, false, false);
                // If true, purge all references to this node. Otherwise, we 
can keep the node
                // around in secondary tables etc in order to more easily 
reconnect later. 
                // (Mostly used on opennet)

Modified: trunk/freenet/src/freenet/node/OpennetManager.java
===================================================================
--- trunk/freenet/src/freenet/node/OpennetManager.java  2008-12-09 14:53:21 UTC 
(rev 24138)
+++ trunk/freenet/src/freenet/node/OpennetManager.java  2008-12-09 15:05:38 UTC 
(rev 24139)
@@ -395,7 +395,7 @@
                }
                for(OpennetPeerNode pn : dropList) {
                        if(logMINOR) Logger.minor(this, "Dropping LRU opennet 
peer: "+pn);
-                       node.peers.disconnect(pn, true, true);
+                       node.peers.disconnect(pn, true, true, true);
                }
                return canAdd;
        }
@@ -411,7 +411,7 @@
                        peersLRU.remove(toDrop);
                        if(logMINOR)
                                Logger.minor(this, "Dropping "+toDrop);
-                       node.peers.disconnect(toDrop, true, true);
+                       node.peers.disconnect(toDrop, true, true, true);
                }
        }
        
@@ -464,7 +464,7 @@
                        }
                }
                if(!wantPeer(pn, false, false, false)) // Start at top as it 
just succeeded
-                       node.peers.disconnect(pn, true, false);
+                       node.peers.disconnect(pn, true, false, true);
        }
 
        public void onRemove(OpennetPeerNode pn) {

Modified: trunk/freenet/src/freenet/node/PacketSender.java
===================================================================
--- trunk/freenet/src/freenet/node/PacketSender.java    2008-12-09 14:53:21 UTC 
(rev 24138)
+++ trunk/freenet/src/freenet/node/PacketSender.java    2008-12-09 15:05:38 UTC 
(rev 24139)
@@ -235,7 +235,7 @@
                        pn.maybeOnConnect();
                        if(pn.shouldDisconnectAndRemoveNow() && 
!pn.isDisconnecting()) {
                                // Might as well do it properly.
-                               node.peers.disconnect(pn, true, true);
+                               node.peers.disconnect(pn, true, true, false);
                        }
                        if(pn.shouldThrottle() && !canSendThrottled)
                                continue;

Modified: trunk/freenet/src/freenet/node/PeerManager.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerManager.java     2008-12-09 14:53:21 UTC 
(rev 24138)
+++ trunk/freenet/src/freenet/node/PeerManager.java     2008-12-09 15:05:38 UTC 
(rev 24139)
@@ -477,7 +477,7 @@
        /**
         * Disconnect from a specified node
         */
-       public void disconnect(final PeerNode pn, boolean 
sendDisconnectMessage, final boolean waitForAck) {
+       public void disconnect(final PeerNode pn, boolean 
sendDisconnectMessage, final boolean waitForAck, boolean purge) {
                if(logMINOR)
                        Logger.minor(this, "Disconnecting " + 
pn.shortToString());
                synchronized(this) {
@@ -486,7 +486,7 @@
                }
                pn.notifyDisconnecting();
                if(sendDisconnectMessage) {
-                       Message msg = DMT.createFNPDisconnect(true, false, -1, 
new ShortBuffer(new byte[0]));
+                       Message msg = DMT.createFNPDisconnect(true, purge, -1, 
new ShortBuffer(new byte[0]));
                        try {
                                pn.sendAsync(msg, new AsyncMessageCallback() {
 

Modified: trunk/freenet/src/freenet/node/SeedClientPeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/SeedClientPeerNode.java      2008-12-09 
14:53:21 UTC (rev 24138)
+++ trunk/freenet/src/freenet/node/SeedClientPeerNode.java      2008-12-09 
15:05:38 UTC (rev 24139)
@@ -85,7 +85,7 @@
        @Override
        public boolean disconnected(boolean dumpMessageQueue, boolean 
dumpTrackers) {
                boolean ret = super.disconnected(dumpMessageQueue, 
dumpTrackers);
-               node.peers.disconnect(this, false, false);
+               node.peers.disconnect(this, false, false, false);
                return ret;
        }
 

Modified: trunk/freenet/src/freenet/node/SeedServerPeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/SeedServerPeerNode.java      2008-12-09 
14:53:21 UTC (rev 24138)
+++ trunk/freenet/src/freenet/node/SeedServerPeerNode.java      2008-12-09 
15:05:38 UTC (rev 24139)
@@ -73,7 +73,7 @@
                final OpennetManager om = node.getOpennet();
                if(om == null) {
                        Logger.normal(this, "Opennet turned off while 
connecting to seednodes");
-                       node.peers.disconnect(this, true, true);
+                       node.peers.disconnect(this, true, true, true);
                } else {
                        // Wait 5 seconds. Another node may connect first, we 
don't want all the
                        // announcements to go to the node which we connect to 
most quickly.
@@ -113,7 +113,7 @@
        @Override
        public boolean disconnected(boolean dumpMessageQueue, boolean 
dumpTrackers) {
                boolean ret = super.disconnected(dumpMessageQueue, 
dumpTrackers);
-               node.peers.disconnect(this, false, false);
+               node.peers.disconnect(this, false, false, false);
                return ret;
        }
 

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

Reply via email to