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