Author: nextgens
Date: 2006-04-14 14:06:50 +0000 (Fri, 14 Apr 2006)
New Revision: 8552

Added:
   trunk/freenet/src/freenet/node/fcp/ShutdownMessage.java
Modified:
   trunk/freenet/src/freenet/node/TextModeClientInterface.java
   trunk/freenet/src/freenet/node/Version.java
   trunk/freenet/src/freenet/node/fcp/FCPMessage.java
Log:
646: resolve https://bugs.freenetproject.org/view.php?id=81

New FCP message : "Shutdown" it returns a ProtocolError(17) if it works
Maybe we should password it or add a new config. option to disable it :/

Modified: trunk/freenet/src/freenet/node/TextModeClientInterface.java
===================================================================
--- trunk/freenet/src/freenet/node/TextModeClientInterface.java 2006-04-14 
13:23:58 UTC (rev 8551)
+++ trunk/freenet/src/freenet/node/TextModeClientInterface.java 2006-04-14 
14:06:50 UTC (rev 8552)
@@ -151,7 +151,8 @@
 //        sb.append("SUBFILE:<filename> - append all data received from 
subscriptions to a file, rather than sending it to stdout.\r\n");
 //        sb.append("SAY:<text> - send text to the last created/pushed 
stream\r\n");
         sb.append("STATUS - display some status information on the node 
including its reference and connections.\r\n");
-        sb.append("QUIT - exit the program\r\n");
+        sb.append("SHUTDOWN - exit the program\r\n");
+        sb.append("QUIT - close the socket\r\n");
         if(n.testnetEnabled) {
                sb.append("WARNING: TESTNET MODE ENABLED. YOU HAVE NO 
ANONYMITY.\r\n");
         }

Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-04-14 13:23:58 UTC (rev 
8551)
+++ trunk/freenet/src/freenet/node/Version.java 2006-04-14 14:06:50 UTC (rev 
8552)
@@ -20,7 +20,7 @@
        public static final String protocolVersion = "1.0";

        /** The build number of the current revision */
-       private static final int buildNumber = 645;
+       private static final int buildNumber = 646;

        /** Oldest build of Fred we will talk to */
        private static final int lastGoodBuild = 591;

Modified: trunk/freenet/src/freenet/node/fcp/FCPMessage.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/FCPMessage.java  2006-04-14 13:23:58 UTC 
(rev 8551)
+++ trunk/freenet/src/freenet/node/fcp/FCPMessage.java  2006-04-14 14:06:50 UTC 
(rev 8552)
@@ -54,6 +54,8 @@
                        return new SubscribeUSKMessage(fs);
                if(name.equals(GetRequestStatusMessage.name))
                        return new GetRequestStatusMessage(fs);
+               if(name.equals(ShutdownMessage.name))
+                       return new ShutdownMessage();
                if(name.equals("Void"))
                        return null;
                throw new 
MessageInvalidException(ProtocolErrorMessage.INVALID_MESSAGE, "Unknown message 
name "+name, null);

Added: trunk/freenet/src/freenet/node/fcp/ShutdownMessage.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ShutdownMessage.java     2006-04-14 
13:23:58 UTC (rev 8551)
+++ trunk/freenet/src/freenet/node/fcp/ShutdownMessage.java     2006-04-14 
14:06:50 UTC (rev 8552)
@@ -0,0 +1,26 @@
+package freenet.node.fcp;
+
+import freenet.node.Node;
+import freenet.node.fcp.FCPMessage;
+import freenet.support.SimpleFieldSet;
+
+public class ShutdownMessage extends FCPMessage{
+       public final static String name = "Shutdown";
+       
+       public ShutdownMessage() throws MessageInvalidException {
+       }
+
+       public SimpleFieldSet getFieldSet() {
+               return new SimpleFieldSet(false);
+       }
+
+       public String getName() {
+               return name;
+       }
+
+       public void run(FCPConnectionHandler handler, Node node) {
+               FCPMessage msg = new ProtocolErrorMessage(17,true,"The node is 
shutting down","Node");
+               handler.outputHandler.queue(msg);
+               node.exit();
+       }       
+}
\ No newline at end of file


Reply via email to