Author: zothar
Date: 2006-11-12 01:47:41 +0000 (Sun, 12 Nov 2006)
New Revision: 10894

Added:
   trunk/freenet/src/freenet/node/fcp/UnknownNodeIdentifierMessage.java
Modified:
   trunk/freenet/src/freenet/node/fcp/ModifyPeer.java
   trunk/freenet/src/freenet/node/fcp/ProtocolErrorMessage.java
   trunk/freenet/src/freenet/node/fcp/RemovePeer.java
Log:
Doing an operation with a specific peer that is unknown now returns an 
UnknownNodeIdentifer FCP message rather than a protocol error.

Modified: trunk/freenet/src/freenet/node/fcp/ModifyPeer.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ModifyPeer.java  2006-11-12 01:31:06 UTC 
(rev 10893)
+++ trunk/freenet/src/freenet/node/fcp/ModifyPeer.java  2006-11-12 01:47:41 UTC 
(rev 10894)
@@ -30,7 +30,7 @@
                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);
+                       FCPMessage msg = new 
UnknownNodeIdentifierMessage(nodeIdentifier);
                        handler.outputHandler.queue(msg);
                        return;
                }

Modified: trunk/freenet/src/freenet/node/fcp/ProtocolErrorMessage.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ProtocolErrorMessage.java        
2006-11-12 01:31:06 UTC (rev 10893)
+++ trunk/freenet/src/freenet/node/fcp/ProtocolErrorMessage.java        
2006-11-12 01:47:41 UTC (rev 10894)
@@ -40,7 +40,7 @@
        static final int NOT_SUPPORTED = 16;
        static final int INTERNAL_ERROR = 17;
        static final int SHUTTING_DOWN = 18;
-       static final int NO_SUCH_NODE_IDENTIFIER = 19;
+       static final int NO_SUCH_NODE_IDENTIFIER = 19;  // Unused
        static final int URL_PARSE_ERROR = 20;
        static final int REF_PARSE_ERROR = 21;
        static final int FILE_PARSE_ERROR = 22;
@@ -81,7 +81,7 @@
                        return "Could not write file";
                case COULD_NOT_RENAME_FILE:
                        return "Could not rename file";
-               case NO_SUCH_IDENTIFIER:
+               case NO_SUCH_IDENTIFIER:  // Unused
                        return "No such identifier";
                case NOT_SUPPORTED:
                        return "Not supported";

Modified: trunk/freenet/src/freenet/node/fcp/RemovePeer.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/RemovePeer.java  2006-11-12 01:31:06 UTC 
(rev 10893)
+++ trunk/freenet/src/freenet/node/fcp/RemovePeer.java  2006-11-12 01:47:41 UTC 
(rev 10894)
@@ -29,7 +29,7 @@
                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);
+                       FCPMessage msg = new 
UnknownNodeIdentifierMessage(nodeIdentifier);
                        handler.outputHandler.queue(msg);
                        return;
                }

Added: trunk/freenet/src/freenet/node/fcp/UnknownNodeIdentifierMessage.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/UnknownNodeIdentifierMessage.java        
2006-11-12 01:31:06 UTC (rev 10893)
+++ trunk/freenet/src/freenet/node/fcp/UnknownNodeIdentifierMessage.java        
2006-11-12 01:47:41 UTC (rev 10894)
@@ -0,0 +1,32 @@
+/* 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.support.SimpleFieldSet;
+
+public class UnknownNodeIdentifierMessage extends FCPMessage {
+
+       final String nodeIdentifier;
+       
+       public UnknownNodeIdentifierMessage(String id) {
+               this.nodeIdentifier = id;
+       }
+
+       public SimpleFieldSet getFieldSet() {
+               SimpleFieldSet sfs = new SimpleFieldSet();
+               sfs.put("NodeIdentifier", nodeIdentifier);
+               return sfs;
+       }
+
+       public String getName() {
+               return "UnknownNodeIdentifier";
+       }
+
+       public void run(FCPConnectionHandler handler, Node node)
+                       throws MessageInvalidException {
+               throw new 
MessageInvalidException(ProtocolErrorMessage.INVALID_MESSAGE, 
"UnknownNodeIdentifier goes from server to client not the other way around", 
nodeIdentifier);
+       }
+
+}


Reply via email to