Author: nextgens
Date: 2006-03-10 17:47:39 +0000 (Fri, 10 Mar 2006)
New Revision: 8219

Modified:
   trunk/freenet/src/freenet/clients/http/FproxyToadlet.java
   trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java
   trunk/freenet/src/freenet/node/Version.java
Log:
420:

Now the node can be shutted down from fproxy

Modified: trunk/freenet/src/freenet/clients/http/FproxyToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/FproxyToadlet.java   2006-03-10 
17:35:44 UTC (rev 8218)
+++ trunk/freenet/src/freenet/clients/http/FproxyToadlet.java   2006-03-10 
17:47:39 UTC (rev 8219)
@@ -40,7 +40,14 @@
                //String ks = uri.toString();
                String ks = uri.getPath();

+               HTTPRequest request = new HTTPRequest(uri);

+               if(request.hasParameters() && 
request.getParam("exit").equalsIgnoreCase("true")){       
+                       System.out.println("Goodbye.");
+                       writeReply(ctx, 200, "text/html", "OK", 
mkForwardPage(ctx, "Shutting down the node", "" , "/", 5));
+                       System.exit(0);
+               }
+               
                if (ks.equals("/")) {
                        HTTPRequest httprequest = new HTTPRequest(uri);
                        if (httprequest.isParameterSet("key")) {

Modified: trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java  2006-03-10 
17:35:44 UTC (rev 8218)
+++ trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java  2006-03-10 
17:47:39 UTC (rev 8219)
@@ -2,6 +2,7 @@

 import java.io.IOException;
 import java.net.URI;
+import java.text.Format.Field;

 import freenet.client.HighLevelSimpleClient;
 import freenet.support.Bucket;
@@ -10,6 +11,7 @@
 import freenet.support.SimpleFieldSet;
 import freenet.node.Version;
 import freenet.node.Node;
+import freenet.pluginmanager.HTTPRequest;

 public class WelcomeToadlet extends Toadlet {
        Node node;
@@ -21,39 +23,57 @@

        public void handleGet(URI uri, ToadletContext ctx) throws 
ToadletContextClosedException, IOException {
                StringBuffer buf = new StringBuffer();
+               HTTPRequest request = new HTTPRequest(uri);

-               ctx.getPageMaker().makeHead(buf, "Freenet FProxy Homepage", 
CSSName);
-
-               // Version info
-               buf.append("<div class=\"infobox\">\n");
-               buf.append("<h2>Version</h2>");
-               buf.append("Freenet version "+Version.nodeVersion+" build 
#"+Version.buildNumber());
-               if(Version.buildNumber() < Version.highestSeenBuild) {
-                       buf.append("<br />");
-                       buf.append("<b>A newer version is available! (Build 
#"+Version.highestSeenBuild+")</b>");
+               if(request.hasParameters()){
+                       if(request.getParam("exit").equalsIgnoreCase("true")){
+                   System.out.println("Goodbye.");
+                   writeReply(ctx, 200, "text/html", "OK", mkForwardPage(ctx, 
"Shutting down the node", buf.toString(), "/", 60));
+                   System.exit(0);
+                       }
+                       System.out.println(request.toString());
+               }else{
+                       
+                       ctx.getPageMaker().makeHead(buf, "Freenet FProxy 
Homepage", CSSName);
+                       
+                       // Version info
+                       buf.append("<div class=\"infobox\">\n");
+                       buf.append("<h2>Version</h2>");
+                       buf.append("Freenet version "+Version.nodeVersion+" 
build #"+Version.buildNumber());
+                       if(Version.buildNumber() < Version.highestSeenBuild) {
+                               buf.append("<br />");
+                               buf.append("<b>A newer version is available! 
(Build #"+Version.highestSeenBuild+")</b>");
+                       }
+                       buf.append("</div>\n");
+                       
+                       // Fetch-a-key box
+                       buf.append("<br style=\"clear: all; \" />\n");
+                       buf.append("<form action=\"/\" method=\"get\">\n");
+                       buf.append("<div class=\"infobox\">\n");
+                       buf.append("<h2>Fetch a Key</h2>\n");
+                       buf.append("Key: <input type=\"text\" size=\"80\" 
name=\"key\"/>\n");
+                       buf.append("<input type=\"submit\" value=\"Fetch\" 
/>\n");
+                       buf.append("</div>\n");
+                       buf.append("</form>\n");
+                       
+                       // Quit Form
+                       buf.append("<div class=\"exit\" target=\".\">\n");
+                       buf.append("<form>\n");
+                       buf.append("<input type=\"hidden\" name=\"exit\" 
value=\"true\"><input type=\"submit\" value=\"Shutdown the node\">\n");
+                       buf.append("</form>\n");
+                       buf.append("</div>\n");
+                       
+                       // Activity
+                       buf.append("<ul id=\"activity\">\n"
+                                       + "<li>Inserts: 
"+this.node.getNumInserts()+"</li>\n"
+                                       + "<li>Requests: 
"+this.node.getNumRequests()+"</li>\n"
+                                       + "<li>Transferring Requests: 
"+this.node.getNumTransferringRequests()+"</li>\n"
+                                       + "</ul>\n");
+                       
+                       ctx.getPageMaker().makeTail(buf);
+                       
+                       this.writeReply(ctx, 200, "text/html", "OK", 
buf.toString());
                }
-               buf.append("</div>\n");
-               
-               // Fetch-a-key box
-               buf.append("<br style=\"clear: all; \" />\n");
-               buf.append("<form action=\"/\" method=\"get\">\n");
-               buf.append("<div class=\"infobox\">\n");
-               buf.append("<h2>Fetch a Key</h2>\n");
-               buf.append("Key: <input type=\"text\" size=\"80\" 
name=\"key\"/>\n");
-               buf.append("<input type=\"submit\" value=\"Fetch\" />\n");
-               buf.append("</div>\n");
-               buf.append("</form>\n");
-               
-               // Activity
-               buf.append("<ul id=\"activity\">\n"
-                               + "<li>Inserts: 
"+this.node.getNumInserts()+"</li>\n"
-                               + "<li>Requests: 
"+this.node.getNumRequests()+"</li>\n"
-                               + "<li>Transferring Requests: 
"+this.node.getNumTransferringRequests()+"</li>\n"
-                               + "</ul>\n");
-               
-               ctx.getPageMaker().makeTail(buf);
-               
-               this.writeReply(ctx, 200, "text/html", "OK", buf.toString());
        }

        public String supportedMethods() {

Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-03-10 17:35:44 UTC (rev 
8218)
+++ trunk/freenet/src/freenet/node/Version.java 2006-03-10 17:47:39 UTC (rev 
8219)
@@ -20,7 +20,7 @@
        public static final String protocolVersion = "1.0";

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

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


Reply via email to