Author: zothar
Date: 2007-07-16 01:18:16 +0000 (Mon, 16 Jul 2007)
New Revision: 14153

Added:
   trunk/freenet/src/freenet/node/fcp/ListPeerMessage.java
Modified:
   trunk/freenet/src/freenet/node/fcp/FCPMessage.java
Log:
FCP: Added ListPeer since we can't abuse ModifyPeer to do the function of 
ListPeer for opennet peers.

Modified: trunk/freenet/src/freenet/node/fcp/FCPMessage.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/FCPMessage.java  2007-07-15 22:43:25 UTC 
(rev 14152)
+++ trunk/freenet/src/freenet/node/fcp/FCPMessage.java  2007-07-16 01:18:16 UTC 
(rev 14153)
@@ -55,6 +55,8 @@
                        return new GetNode(fs);
                if(name.equals(GetRequestStatusMessage.NAME))
                        return new GetRequestStatusMessage(fs);
+               if(name.equals(ListPeerMessage.NAME))
+                       return new ListPeerMessage(fs);
                if(name.equals(ListPeersMessage.NAME))
                        return new ListPeersMessage(fs);
                if(name.equals(ListPeerNotesMessage.NAME))

Added: trunk/freenet/src/freenet/node/fcp/ListPeerMessage.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ListPeerMessage.java                     
        (rev 0)
+++ trunk/freenet/src/freenet/node/fcp/ListPeerMessage.java     2007-07-16 
01:18:16 UTC (rev 14153)
@@ -0,0 +1,42 @@
+/* This code is part of Freenet. It is distributed under the GNU General
+ * Public License, version 2 (or at your option any later version). See
+ * http://www.gnu.org/ for further details of the GPL. */
+package freenet.node.fcp;
+
+import freenet.node.Node;
+import freenet.node.PeerNode;
+import freenet.support.SimpleFieldSet;
+
+public class ListPeerMessage extends FCPMessage {
+
+       static final String NAME = "ListPeer";
+       
+       final SimpleFieldSet fs;
+       
+       public ListPeerMessage(SimpleFieldSet fs) {
+               this.fs = fs;
+       }
+
+       public SimpleFieldSet getFieldSet() {
+               return new SimpleFieldSet(true);
+       }
+
+       public String getName() {
+               return NAME;
+       }
+
+       public void run(FCPConnectionHandler handler, Node node) throws 
MessageInvalidException {
+               if(!handler.hasFullAccess()) {
+                       throw new 
MessageInvalidException(ProtocolErrorMessage.ACCESS_DENIED, "ListPeer requires 
full access", fs.get("Identifier"), false);
+               }
+               String nodeIdentifier = fs.get("NodeIdentifier");
+               PeerNode pn = node.getPeerNode(nodeIdentifier);
+               if(pn == null) {
+                       FCPMessage msg = new 
UnknownNodeIdentifierMessage(nodeIdentifier);
+                       handler.outputHandler.queue(msg);
+                       return;
+               }
+               handler.outputHandler.queue(new Peer(pn, true, true));
+       }
+
+}


Reply via email to