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


Reply via email to