Author: toad
Date: 2008-04-05 15:15:58 +0000 (Sat, 05 Apr 2008)
New Revision: 19035

Modified:
   trunk/freenet/src/freenet/node/fcp/AddPeer.java
   trunk/freenet/src/freenet/node/fcp/EndListPeersMessage.java
   trunk/freenet/src/freenet/node/fcp/ListPeerMessage.java
   trunk/freenet/src/freenet/node/fcp/ListPeersMessage.java
   trunk/freenet/src/freenet/node/fcp/ModifyPeer.java
   trunk/freenet/src/freenet/node/fcp/PeerMessage.java
Log:
Support optional Identifier on all FCP Peer operations

Modified: trunk/freenet/src/freenet/node/fcp/AddPeer.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/AddPeer.java     2008-04-05 15:11:32 UTC 
(rev 19034)
+++ trunk/freenet/src/freenet/node/fcp/AddPeer.java     2008-04-05 15:15:58 UTC 
(rev 19035)
@@ -152,7 +152,7 @@
                        }
                        System.out.println("Added darknet peer: "+pn);
                }
-               handler.outputHandler.queue(new PeerMessage(pn, true, true));
+               handler.outputHandler.queue(new PeerMessage(pn, true, true, 
identifier));
        }

 }

Modified: trunk/freenet/src/freenet/node/fcp/EndListPeersMessage.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/EndListPeersMessage.java 2008-04-05 
15:11:32 UTC (rev 19034)
+++ trunk/freenet/src/freenet/node/fcp/EndListPeersMessage.java 2008-04-05 
15:15:58 UTC (rev 19035)
@@ -9,9 +9,17 @@
 public class EndListPeersMessage extends FCPMessage {

        static final String name = "EndListPeers";
+       private final String identifier;

+       public EndListPeersMessage(String identifier) {
+               this.identifier = identifier;
+       }
+
        public SimpleFieldSet getFieldSet() {
-               return new SimpleFieldSet(true);
+               SimpleFieldSet fs = new SimpleFieldSet(true);
+               if(identifier != null)
+                       fs.putSingle("Identifier", identifier);
+               return fs;
        }

        public String getName() {

Modified: trunk/freenet/src/freenet/node/fcp/ListPeerMessage.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ListPeerMessage.java     2008-04-05 
15:11:32 UTC (rev 19034)
+++ trunk/freenet/src/freenet/node/fcp/ListPeerMessage.java     2008-04-05 
15:15:58 UTC (rev 19035)
@@ -12,9 +12,12 @@
        static final String NAME = "ListPeer";

        final SimpleFieldSet fs;
+       final String identifier;

        public ListPeerMessage(SimpleFieldSet fs) {
                this.fs = fs;
+               this.identifier = fs.get("Identifier");
+               fs.removeValue("Identifier");
        }

        public SimpleFieldSet getFieldSet() {
@@ -27,11 +30,11 @@

        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);
+                       throw new 
MessageInvalidException(ProtocolErrorMessage.ACCESS_DENIED, "ListPeer requires 
full access", identifier, false);
                }
                String nodeIdentifier = fs.get("NodeIdentifier");
                if( nodeIdentifier == null ) {
-                       throw new 
MessageInvalidException(ProtocolErrorMessage.MISSING_FIELD, "Error: 
NodeIdentifier field missing", null, false);
+                       throw new 
MessageInvalidException(ProtocolErrorMessage.MISSING_FIELD, "Error: 
NodeIdentifier field missing", identifier, false);
                }
                PeerNode pn = node.getPeerNode(nodeIdentifier);
                if(pn == null) {
@@ -39,7 +42,7 @@
                        handler.outputHandler.queue(msg);
                        return;
                }
-               handler.outputHandler.queue(new PeerMessage(pn, true, true));
+               handler.outputHandler.queue(new PeerMessage(pn, true, true, 
identifier));
        }

 }

Modified: trunk/freenet/src/freenet/node/fcp/ListPeersMessage.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ListPeersMessage.java    2008-04-05 
15:11:32 UTC (rev 19034)
+++ trunk/freenet/src/freenet/node/fcp/ListPeersMessage.java    2008-04-05 
15:15:58 UTC (rev 19035)
@@ -12,11 +12,14 @@

        final boolean withMetadata;
        final boolean withVolatile;
+       final String identifier;
        static final String NAME = "ListPeers";

        public ListPeersMessage(SimpleFieldSet fs) {
                withMetadata = Fields.stringToBool(fs.get("WithMetadata"), 
false);
                withVolatile = Fields.stringToBool(fs.get("WithVolatile"), 
false);
+               this.identifier = fs.get("Identifier");
+               fs.removeValue("Identifier");
        }

        public SimpleFieldSet getFieldSet() {
@@ -30,15 +33,15 @@
        public void run(FCPConnectionHandler handler, Node node)
                        throws MessageInvalidException {
                if(!handler.hasFullAccess()) {
-                       throw new 
MessageInvalidException(ProtocolErrorMessage.ACCESS_DENIED, "ListPeers requires 
full access", null, false);
+                       throw new 
MessageInvalidException(ProtocolErrorMessage.ACCESS_DENIED, "ListPeers requires 
full access", identifier, false);
                }
                PeerNode[] nodes = node.getPeerNodes();
                for(int i = 0; i < nodes.length; i++) {
                        PeerNode pn = nodes[i];
-                       handler.outputHandler.queue(new PeerMessage(pn, 
withMetadata, withVolatile));
+                       handler.outputHandler.queue(new PeerMessage(pn, 
withMetadata, withVolatile, identifier));
                }

-               handler.outputHandler.queue(new EndListPeersMessage());
+               handler.outputHandler.queue(new 
EndListPeersMessage(identifier));
        }

 }

Modified: trunk/freenet/src/freenet/node/fcp/ModifyPeer.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ModifyPeer.java  2008-04-05 15:11:32 UTC 
(rev 19034)
+++ trunk/freenet/src/freenet/node/fcp/ModifyPeer.java  2008-04-05 15:15:58 UTC 
(rev 19035)
@@ -14,9 +14,12 @@
        static final String NAME = "ModifyPeer";

        final SimpleFieldSet fs;
+       final String identifier;

        public ModifyPeer(SimpleFieldSet fs) {
                this.fs = fs;
+               this.identifier = fs.get("Identifier");
+               fs.removeValue("Identifier");
        }

        public SimpleFieldSet getFieldSet() {
@@ -29,11 +32,11 @@

        public void run(FCPConnectionHandler handler, Node node) throws 
MessageInvalidException {
                if(!handler.hasFullAccess()) {
-                       throw new 
MessageInvalidException(ProtocolErrorMessage.ACCESS_DENIED, "ModifyPeer 
requires full access", fs.get("Identifier"), false);
+                       throw new 
MessageInvalidException(ProtocolErrorMessage.ACCESS_DENIED, "ModifyPeer 
requires full access", identifier, false);
                }
                String nodeIdentifier = fs.get("NodeIdentifier");
                if( nodeIdentifier == null ) {
-                       throw new 
MessageInvalidException(ProtocolErrorMessage.MISSING_FIELD, "Error: 
NodeIdentifier field missing", null, false);
+                       throw new 
MessageInvalidException(ProtocolErrorMessage.MISSING_FIELD, "Error: 
NodeIdentifier field missing", identifier, false);
                }
                PeerNode pn = node.getPeerNode(nodeIdentifier);
                if(pn == null) {
@@ -42,7 +45,7 @@
                        return;
                }
                if(!(pn instanceof DarknetPeerNode)) {
-                       throw new 
MessageInvalidException(ProtocolErrorMessage.DARKNET_ONLY, "ModifyPeer only 
available for darknet peers", fs.get("Identifier"), false);
+                       throw new 
MessageInvalidException(ProtocolErrorMessage.DARKNET_ONLY, "ModifyPeer only 
available for darknet peers", identifier, false);
                }
                DarknetPeerNode dpn = (DarknetPeerNode) pn;
                String isDisabledString = fs.get("IsDisabled");
@@ -79,7 +82,7 @@
                                
dpn.setAllowLocalAddresses(Fields.stringToBool(allowLocalAddressesString, 
false));
                        }
                }
-               handler.outputHandler.queue(new PeerMessage(pn, true, true));
+               handler.outputHandler.queue(new PeerMessage(pn, true, true, 
identifier));
        }

 }

Modified: trunk/freenet/src/freenet/node/fcp/PeerMessage.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/PeerMessage.java 2008-04-05 15:11:32 UTC 
(rev 19034)
+++ trunk/freenet/src/freenet/node/fcp/PeerMessage.java 2008-04-05 15:15:58 UTC 
(rev 19035)
@@ -13,11 +13,13 @@
        final PeerNode pn;
        final boolean withMetadata;
        final boolean withVolatile;
+       final String identifier;

-       public PeerMessage(PeerNode pn, boolean withMetadata, boolean 
withVolatile) {
+       public PeerMessage(PeerNode pn, boolean withMetadata, boolean 
withVolatile, String identifier) {
                this.pn = pn;
                this.withMetadata = withMetadata;
                this.withVolatile = withVolatile;
+               this.identifier = identifier;
        }

        public SimpleFieldSet getFieldSet() {
@@ -34,6 +36,8 @@
                                fs.put("volatile", vol);
                        }
                }
+               if(identifier != null)
+                       fs.putSingle("Identifier", identifier);
                return fs;
        }



Reply via email to