Author: zothar
Date: 2006-07-03 02:11:25 +0000 (Mon, 03 Jul 2006)
New Revision: 9437
Added:
trunk/freenet/src/freenet/node/fcp/PeerRemoved.java
trunk/freenet/src/freenet/node/fcp/RemovePeer.java
Modified:
trunk/freenet/src/freenet/node/Version.java
trunk/freenet/src/freenet/node/fcp/FCPMessage.java
Log:
851: Added support for RemovePeer client-to-node FCP message.
Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-07-03 01:45:35 UTC (rev
9436)
+++ trunk/freenet/src/freenet/node/Version.java 2006-07-03 02:11:25 UTC (rev
9437)
@@ -18,7 +18,7 @@
public static final String protocolVersion = "1.0";
/** The build number of the current revision */
- private static final int buildNumber = 850;
+ private static final int buildNumber = 851;
/** Oldest build of Fred we will talk to */
private static final int oldLastGoodBuild = 839;
Modified: trunk/freenet/src/freenet/node/fcp/FCPMessage.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/FCPMessage.java 2006-07-03 01:45:35 UTC
(rev 9436)
+++ trunk/freenet/src/freenet/node/fcp/FCPMessage.java 2006-07-03 02:11:25 UTC
(rev 9437)
@@ -42,6 +42,8 @@
return new ListPeersMessage(fs);
if(name.equals(ListPersistentRequestsMessage.name))
return new ListPersistentRequestsMessage(fs);
+ if(name.equals(RemovePeer.name))
+ return new RemovePeer(fs);
if(name.equals(RemovePersistentRequest.name))
return new RemovePersistentRequest(fs);
if(name.equals(WatchGlobal.name))
Added: trunk/freenet/src/freenet/node/fcp/PeerRemoved.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/PeerRemoved.java 2006-07-03 01:45:35 UTC
(rev 9436)
+++ trunk/freenet/src/freenet/node/fcp/PeerRemoved.java 2006-07-03 02:11:25 UTC
(rev 9437)
@@ -0,0 +1,33 @@
+package freenet.node.fcp;
+
+import freenet.node.Node;
+import freenet.support.SimpleFieldSet;
+
+public class PeerRemoved extends FCPMessage {
+
+ static final String name = "PeerRemoved";
+ final String identity;
+ final String nodeIdentifier;
+
+ public PeerRemoved(String identity, String nodeIdentifier) {
+ this.identity = identity;
+ this.nodeIdentifier = nodeIdentifier;
+ }
+
+ public SimpleFieldSet getFieldSet() {
+ SimpleFieldSet fs = new SimpleFieldSet(false);
+ fs.put("Identity", identity);
+ fs.put("NodeIdentifier", nodeIdentifier);
+ return fs;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void run(FCPConnectionHandler handler, Node node)
+ throws MessageInvalidException {
+ throw new
MessageInvalidException(ProtocolErrorMessage.INVALID_MESSAGE, "PeerRemoved goes
from server to client not the other way around", null);
+ }
+
+}
Added: trunk/freenet/src/freenet/node/fcp/RemovePeer.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/RemovePeer.java 2006-07-03 01:45:35 UTC
(rev 9436)
+++ trunk/freenet/src/freenet/node/fcp/RemovePeer.java 2006-07-03 02:11:25 UTC
(rev 9437)
@@ -0,0 +1,42 @@
+package freenet.node.fcp;
+
+import java.io.File;
+
+import freenet.keys.FreenetURI;
+import freenet.node.Node;
+import freenet.node.PeerNode;
+import freenet.support.Fields;
+import freenet.support.SimpleFieldSet;
+
+public class RemovePeer extends FCPMessage {
+
+ static final String name = "RemovePeer";
+
+ final SimpleFieldSet fs;
+
+ public RemovePeer(SimpleFieldSet fs) {
+ this.fs = fs;
+ }
+
+ public SimpleFieldSet getFieldSet() {
+ return new SimpleFieldSet(false);
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void run(FCPConnectionHandler handler, Node node) throws
MessageInvalidException {
+ String nodeIdentifier = fs.get("NodeIdentifier");
+ PeerNode pn = node.getPeerNode(nodeIdentifier);
+ if(pn == null) {
+ ProtocolErrorMessage msg = new
ProtocolErrorMessage(ProtocolErrorMessage.NO_SUCH_NODE_IDENTIFIER, false, null,
nodeIdentifier);
+ handler.outputHandler.queue(msg);
+ return;
+ }
+ String identity = pn.getIdentityString();
+ node.removeDarknetConnection(pn);
+ handler.outputHandler.queue(new PeerRemoved(identity,
nodeIdentifier));
+ }
+
+}