Author: toad
Date: 2007-09-26 17:28:29 +0000 (Wed, 26 Sep 2007)
New Revision: 15337

Modified:
   trunk/freenet/src/freenet/node/NodeDispatcher.java
   trunk/freenet/src/freenet/node/OpennetManager.java
Log:
implement PURGE option in an explicit-disconnect message

Modified: trunk/freenet/src/freenet/node/NodeDispatcher.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeDispatcher.java  2007-09-26 17:18:40 UTC 
(rev 15336)
+++ trunk/freenet/src/freenet/node/NodeDispatcher.java  2007-09-26 17:28:29 UTC 
(rev 15337)
@@ -157,8 +157,12 @@
                // 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)
-               // Not used at the moment - FIXME
                boolean purge = m.getBoolean(DMT.PURGE);
+               if(purge) {
+                       OpennetManager om = node.getOpennet();
+                       if(om != null)
+                               om.purgeOldOpennetPeer(source);
+               }
                // Process parting message
                int type = m.getInt(DMT.NODE_TO_NODE_MESSAGE_TYPE);
                ShortBuffer messageData = (ShortBuffer) 
m.getObject(DMT.NODE_TO_NODE_MESSAGE_DATA);

Modified: trunk/freenet/src/freenet/node/OpennetManager.java
===================================================================
--- trunk/freenet/src/freenet/node/OpennetManager.java  2007-09-26 17:18:40 UTC 
(rev 15336)
+++ trunk/freenet/src/freenet/node/OpennetManager.java  2007-09-26 17:28:29 UTC 
(rev 15337)
@@ -438,4 +438,8 @@
                return nodes[node.random.nextInt(nodes.length)];
        }

+       public void purgeOldOpennetPeer(PeerNode source) {
+               oldPeers.remove(source);
+       }
+
 }


Reply via email to