Author: toad
Date: 2007-08-06 22:25:34 +0000 (Mon, 06 Aug 2007)
New Revision: 14498

Modified:
   trunk/freenet/src/freenet/clients/http/BookmarkEditorToadlet.java
   trunk/freenet/src/freenet/clients/http/BrowserTestToadlet.java
   trunk/freenet/src/freenet/clients/http/ConfigToadlet.java
   trunk/freenet/src/freenet/clients/http/ConnectionsToadlet.java
   trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java
   trunk/freenet/src/freenet/clients/http/FProxyToadlet.java
   trunk/freenet/src/freenet/clients/http/FirstTimeWizardToadlet.java
   trunk/freenet/src/freenet/clients/http/LocalFileInsertToadlet.java
   trunk/freenet/src/freenet/clients/http/N2NTMToadlet.java
   trunk/freenet/src/freenet/clients/http/PluginToadlet.java
   trunk/freenet/src/freenet/clients/http/PproxyToadlet.java
   trunk/freenet/src/freenet/clients/http/QueueToadlet.java
   trunk/freenet/src/freenet/clients/http/StatisticsToadlet.java
   trunk/freenet/src/freenet/clients/http/SymlinkerToadlet.java
   trunk/freenet/src/freenet/clients/http/Toadlet.java
   trunk/freenet/src/freenet/clients/http/TranslationToadlet.java
   trunk/freenet/src/freenet/clients/http/TrivialToadlet.java
   trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java
Log:
Minor refactoring (writeHTML/TextReply rather than writeReply).
=> Fix charset issues on many pages in many cases.
Also fix some HTTP status code / status code reason string issues.

Modified: trunk/freenet/src/freenet/clients/http/BookmarkEditorToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/BookmarkEditorToadlet.java   
2007-08-06 22:02:15 UTC (rev 14497)
+++ trunk/freenet/src/freenet/clients/http/BookmarkEditorToadlet.java   
2007-08-06 22:25:34 UTC (rev 14498)
@@ -150,7 +150,7 @@
                        } catch (URLEncodedFormatException e) {
                                HTMLNode errorBox = 
content.addChild(ctx.getPageMaker().getInfobox("infobox-error", error));
                                errorBox.addChild("#", 
L10n.getString("BookmarkEditorToadlet.urlDecodeError"));
-                               this.writeReply(ctx, 200, "text/html", "OK", 
pageNode.generate());
+                               writeHTMLReply(ctx, 200, "OK", 
pageNode.generate());
                                return;
                        }
                        Bookmark bookmark;
@@ -163,7 +163,7 @@
                        if(bookmark == null) {
                                HTMLNode errorBox = 
content.addChild(ctx.getPageMaker().getInfobox("infobox-error", error));
                                errorBox.addChild("#", 
L10n.getString("BookmarkEditorToadlet.bookmarkDoesNotExist", new String[] { 
"bookmark" }, new String[] { bookmarkPath }));
-                               this.writeReply(ctx, 200, "text/html", "OK", 
pageNode.generate());
+                               this.writeHTMLReply(ctx, 200, "OK", 
pageNode.generate());
                                return;
                        } else {

@@ -242,7 +242,7 @@
                HTMLNode bookmarksBox = 
content.addChild(ctx.getPageMaker().getInfobox("infobox-normal", 
L10n.getString("BookmarkEditorToadlet.myBookmarksTitle")));
                bookmarksBox.addChild(getBookmarksList());

-               this.writeReply(ctx, 200, "text/html", "OK", 
pageNode.generate());
+               this.writeHTMLReply(ctx, 200, "OK", pageNode.generate());
        }


@@ -319,7 +319,7 @@
                HTMLNode bookmarksBox = 
content.addChild(ctx.getPageMaker().getInfobox("infobox-normal", 
L10n.getString("BookmarkEditorToadlet.myBookmarksTitle")));
                bookmarksBox.addChild(getBookmarksList());

-               this.writeReply(ctx, 200, "text/html", "OK", 
pageNode.generate());
+               this.writeHTMLReply(ctx, 200, "OK", pageNode.generate());
        }

        public String supportedMethods()

Modified: trunk/freenet/src/freenet/clients/http/BrowserTestToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/BrowserTestToadlet.java      
2007-08-06 22:02:15 UTC (rev 14497)
+++ trunk/freenet/src/freenet/clients/http/BrowserTestToadlet.java      
2007-08-06 22:25:34 UTC (rev 14498)
@@ -178,7 +178,7 @@
                // Yes, we need that in order to test the browser (number of 
connections per server)
                if (request.isParameterSet("wontload")) return;
                else if (request.isParameterSet("mimeTest")){
-                       this.writeReply(ctx, 200, "text/html", "OK", 
imgWarningMime);
+                       this.writeHTMLReply(ctx, 200, "OK", imgWarningMime);
                        return;         
                }

@@ -210,7 +210,7 @@
                jsTest.addChild("img", new String[]{"id", "src", "alt"}, new 
String[]{"JSTEST", "/static/themes/clean/success.gif", "fail!"});
                jsTest.addChild("script", "type", 
"text/javascript").addChild("%", "document.getElementById('JSTEST').src = 
'/static/themes/clean/warning.gif';");

-               this.writeReply(ctx, 200, "text/html", "OK", 
pageNode.generate());
+               this.writeHTMLReply(ctx, 200, "OK", pageNode.generate());
        }

        public String supportedMethods() {

Modified: trunk/freenet/src/freenet/clients/http/ConfigToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/ConfigToadlet.java   2007-08-06 
22:02:15 UTC (rev 14497)
+++ trunk/freenet/src/freenet/clients/http/ConfigToadlet.java   2007-08-06 
22:25:34 UTC (rev 14498)
@@ -106,7 +106,7 @@
                content.addChild("br");
                addHomepageLink(content);

-               writeReply(ctx, 200, "text/html", "OK", pageNode.generate());
+               writeHTMLReply(ctx, 200, "OK", pageNode.generate());

        }

@@ -191,7 +191,7 @@
                formNode.addChild("input", new String[] { "type", "value" }, 
new String[] { "submit", l10n("apply")});
                formNode.addChild("input", new String[] { "type", "value" }, 
new String[] { "reset",  l10n("reset")});

-               this.writeReply(ctx, 200, "text/html", "OK", 
pageNode.generate());
+               this.writeHTMLReply(ctx, 200, "OK", pageNode.generate());
        }

        public String supportedMethods() {

Modified: trunk/freenet/src/freenet/clients/http/ConnectionsToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/ConnectionsToadlet.java      
2007-08-06 22:02:15 UTC (rev 14497)
+++ trunk/freenet/src/freenet/clients/http/ConnectionsToadlet.java      
2007-08-06 22:25:34 UTC (rev 14498)
@@ -145,7 +145,7 @@
                        SimpleFieldSet fs = getNoderef();
                        StringWriter sw = new StringWriter();
                        fs.writeTo(sw);
-                       this.writeReply(ctx, 200, "text/plain", "OK", 
sw.toString());
+                       this.writeTextReply(ctx, 200, "OK", sw.toString());
                        return;
                }

@@ -471,7 +471,7 @@
                        // ignore
                }

-               this.writeReply(ctx, 200, "text/html", "OK", 
pageNode.generate());
+               this.writeHTMLReply(ctx, 200, "OK", pageNode.generate());
        }

        protected abstract boolean acceptRefPosts();

Modified: trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java       
2007-08-06 22:02:15 UTC (rev 14497)
+++ trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java       
2007-08-06 22:25:34 UTC (rev 14498)
@@ -167,7 +167,7 @@
                                }
                        }
                        N2NTMToadlet.createN2NTMSendForm( pageNode, 
contentNode, ctx, peers);
-                       this.writeReply(ctx, 200, "text/html", "OK", 
pageNode.generate());
+                       writeHTMLReply(ctx, 200, "OK", pageNode.generate());
                        return;
                } else if (request.isPartSet("doAction") && 
request.getPartAsString("action",25).equals("update_notes")) {
                        //int hashcode = 
Integer.decode(request.getParam("node")).intValue();
@@ -337,7 +337,7 @@
                                                removeForm.addChild("input", 
new String[] { "type", "name", "value" }, new String[] { "submit", "remove", 
l10n("remove") });
                                                removeForm.addChild("input", 
new String[] { "type", "name", "value" }, new String[] { "hidden", "forceit", 
l10n("forceRemove") });

-                                               writeReply(ctx, 200, 
"text/html", "OK", pageNode.generate());
+                                               writeHTMLReply(ctx, 200, "OK", 
pageNode.generate());
                                                return; // FIXME: maybe it 
breaks multi-node removing
                                        }                               
                                } else {

Modified: trunk/freenet/src/freenet/clients/http/FProxyToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/FProxyToadlet.java   2007-08-06 
22:02:15 UTC (rev 14497)
+++ trunk/freenet/src/freenet/clients/http/FProxyToadlet.java   2007-08-06 
22:25:34 UTC (rev 14498)
@@ -318,7 +318,7 @@
                        }
                        return;
                }else if(ks.equals("/robots.txt") && ctx.doRobots()){
-                       this.writeReply(ctx, 200, "text/plain", "Ok", 
"User-agent: *\nDisallow: /");
+                       this.writeTextReply(ctx, 200, "Ok", "User-agent: 
*\nDisallow: /");
                        return;
                }else if(ks.startsWith("/darknet/")) { //TODO: remove when 
obsolete
                        MultiValueTable headers = new MultiValueTable();
@@ -354,7 +354,7 @@
                        errorContent.addChild("br");
                        addHomepageLink(errorContent);

-                       this.writeReply(ctx, 400, "text/html", 
l10n("invalidKeyTitle"), pageNode.generate());
+                       this.writeHTMLReply(ctx, 400, l10n("invalidKeyTitle"), 
pageNode.generate());
                        return;
                }
                String requestedMimeType = httprequest.getParam("type", null);
@@ -415,7 +415,7 @@
                                }
                                optionList.addChild("li").addChild("a", new 
String[] { "href", "title" }, new String[] { "/", "FProxy home page" }, 
l10n("abortToHomepage"));

-                               writeReply(ctx, 200, "text/html", "OK", 
pageNode.generate());
+                               writeHTMLReply(ctx, 200, "OK", 
pageNode.generate());
                        } else {
                                HTMLNode pageNode = 
ctx.getPageMaker().getPageNode(FetchException.getShortMessage(e.mode), ctx);
                                HTMLNode contentNode = 
ctx.getPageMaker().getContentNode(pageNode);
@@ -463,8 +463,8 @@
                                option = optionList.addChild("li");
                                
option.addChild(ctx.getPageMaker().createBackLink(ctx, l10n("goBackToPrev")));

-                               this.writeReply(ctx, 500 /* close enough - 
FIXME probably should depend on status code */,
-                                               "text/html", 
FetchException.getShortMessage(e.mode), pageNode.generate());
+                               this.writeHTMLReply(ctx, 500 /* close enough - 
FIXME probably should depend on status code */,
+                                               "Internal Error", 
pageNode.generate());
                        }
                } catch (SocketException e) {
                        // Probably irrelevant

Modified: trunk/freenet/src/freenet/clients/http/FirstTimeWizardToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/FirstTimeWizardToadlet.java  
2007-08-06 22:02:15 UTC (rev 14497)
+++ trunk/freenet/src/freenet/clients/http/FirstTimeWizardToadlet.java  
2007-08-06 22:25:34 UTC (rev 14498)
@@ -68,7 +68,7 @@
                        opennetDiv.addChild("input", new String[] { "type", 
"name", "value" }, new String[] { "radio", "enableOpennet", "false" }, 
L10n.getString("Toadlet.no"));
                        opennetForm.addChild("input", new String[] { "type", 
"name", "value" }, new String[] { "submit", "opennetF", 
L10n.getString("FirstTimeWizardToadlet.continue")});
                        opennetForm.addChild("input", new String[] { "type", 
"name", "value" }, new String[] { "submit", "cancel", 
L10n.getString("Toadlet.cancel")});
-                       this.writeReply(ctx, 200, "text/html; charset=utf-8", 
"OK", pageNode.generate());
+                       this.writeHTMLReply(ctx, 200, "OK", 
pageNode.generate());
                        return;
                } else if(currentStep == 2) {
                        HTMLNode pageNode = 
ctx.getPageMaker().getPageNode(l10n("step2Title"), false, ctx);
@@ -85,7 +85,7 @@

                        nnameForm.addChild("input", new String[] { "type", 
"name", "value" }, new String[] { "submit", "nnameF", 
L10n.getString("FirstTimeWizardToadlet.continue")});
                        nnameForm.addChild("input", new String[] { "type", 
"name", "value" }, new String[] { "submit", "cancel", 
L10n.getString("Toadlet.cancel")});
-                       this.writeReply(ctx, 200, "text/html; charset=utf-8", 
"OK", pageNode.generate());
+                       this.writeHTMLReply(ctx, 200, "OK", 
pageNode.generate());
                        return;
                } else if(currentStep == 3) {
                        HTMLNode pageNode = 
ctx.getPageMaker().getPageNode(l10n("step3Title"), false, ctx);
@@ -110,7 +110,7 @@

                        bandwidthForm.addChild("input", new String[] { "type", 
"name", "value" }, new String[] { "submit", "bwF", 
L10n.getString("FirstTimeWizardToadlet.continue")});
                        bandwidthForm.addChild("input", new String[] { "type", 
"name", "value" }, new String[] { "submit", "cancel", 
L10n.getString("Toadlet.cancel")});
-                       this.writeReply(ctx, 200, "text/html; charset=utf-8", 
"OK", pageNode.generate());
+                       this.writeHTMLReply(ctx, 200, "OK", 
pageNode.generate());
                        return;
                } else if(currentStep == 4) {
                        HTMLNode pageNode = 
ctx.getPageMaker().getPageNode(l10n("step4Title"), false, ctx);
@@ -137,7 +137,7 @@

                        bandwidthForm.addChild("input", new String[] { "type", 
"name", "value" }, new String[] { "submit", "dsF", 
L10n.getString("FirstTimeWizardToadlet.continue")});
                        bandwidthForm.addChild("input", new String[] { "type", 
"name", "value" }, new String[] { "submit", "cancel", 
L10n.getString("Toadlet.cancel")});
-                       this.writeReply(ctx, 200, "text/html; charset=utf-8", 
"OK", pageNode.generate());
+                       this.writeHTMLReply(ctx, 200, "OK", 
pageNode.generate());
                        return;
                } else if(currentStep == 5) {
                        HTMLNode pageNode = 
ctx.getPageMaker().getPageNode(l10n("step5Title"), false, ctx);
@@ -180,7 +180,7 @@

                        networkForm.addChild("input", new String[] { "type", 
"name", "value" }, new String[] { "submit", "networkF", 
L10n.getString("FirstTimeWizardToadlet.continue")});
                        networkForm.addChild("input", new String[] { "type", 
"name", "value" }, new String[] { "submit", "cancel", 
L10n.getString("Toadlet.cancel")});
-                       this.writeReply(ctx, 200, "text/html; charset=utf-8", 
"OK", pageNode.generate());
+                       this.writeHTMLReply(ctx, 200, "OK", 
pageNode.generate());
                        return;
                }else if(currentStep == 6) {
                        HTMLNode pageNode = 
ctx.getPageMaker().getPageNode(l10n("step6Title"), true, ctx);
@@ -193,7 +193,7 @@
                        congratzInfoboxHeader.addChild("#", l10n("congratz"));
                        congratzInfoboxContent.addChild("#", 
l10n("congratzLong"));

-                       this.writeReply(ctx, 200, "text/html; charset=utf-8", 
"OK", pageNode.generate());
+                       this.writeHTMLReply(ctx, 200, "OK", 
pageNode.generate());
                        return;
                }

@@ -212,7 +212,7 @@
                HTMLNode secondParagraph = welcomeInfoboxContent.addChild("p");
                secondParagraph.addChild("a", "href", "/").addChild("#", 
l10n("skipWizard"));

-               this.writeReply(ctx, 200, "text/html; charset=utf-8", "OK", 
pageNode.generate());
+               this.writeHTMLReply(ctx, 200, "OK", pageNode.generate());
        }

        public void handlePost(URI uri, HTTPRequest request, ToadletContext 
ctx) throws ToadletContextClosedException, IOException {

Modified: trunk/freenet/src/freenet/clients/http/LocalFileInsertToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/LocalFileInsertToadlet.java  
2007-08-06 22:02:15 UTC (rev 14497)
+++ trunk/freenet/src/freenet/clients/http/LocalFileInsertToadlet.java  
2007-08-06 22:25:34 UTC (rev 14498)
@@ -140,7 +140,7 @@
                        ulNode.addChild("li", l10n("checkPathReadable"));
                }

-               writeReply(toadletContext, 200, "text/html; charset=utf-8", 
"OK", pageNode.generate());
+               writeHTMLReply(toadletContext, 200, "OK", pageNode.generate());
        }

        private String l10n(String key, String pattern, String value) {

Modified: trunk/freenet/src/freenet/clients/http/N2NTMToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/N2NTMToadlet.java    2007-08-06 
22:02:15 UTC (rev 14497)
+++ trunk/freenet/src/freenet/clients/http/N2NTMToadlet.java    2007-08-06 
22:25:34 UTC (rev 14498)
@@ -74,14 +74,14 @@
                                
contentNode.addChild(createPeerInfobox("infobox-error",
                                                l10n("peerNotFoundTitle"), 
l10n("peerNotFoundWithHash",
                                                                "hash", 
input_hashcode_string)));
-                               this.writeReply(ctx, 200, "text/html", "OK", 
pageNode
+                               this.writeHTMLReply(ctx, 200, "OK", pageNode
                                                .generate());
                                return;
                        }
                        HashMap peers = new HashMap();
                        peers.put(input_hashcode_string, peernode_name);
                        createN2NTMSendForm(pageNode, contentNode, ctx, peers);
-                       this.writeReply(ctx, 200, "text/html", "OK", 
pageNode.generate());
+                       this.writeHTMLReply(ctx, 200, "OK", 
pageNode.generate());
                        return;
                }
                MultiValueTable headers = new MultiValueTable();
@@ -135,7 +135,7 @@
                        String message = request.getPartAsString("message", 5 * 
1024);
                        message = message.trim();
                        if (message.length() > 1024) {
-                               this.writeReply(ctx, 400, "text/plain", 
l10n("tooLongTitle"),
+                               this.writeTextReply(ctx, 400, "Bad request",
                                                l10n("tooLong"));
                                return;
                        }
@@ -152,7 +152,7 @@
                                if(!(filename.exists() && filename.canRead())) {
                                        peerTableInfobox.addChild("#", 
l10n("noSuchFileOrCannotRead"));
                                        
Toadlet.addHomepageLink(peerTableInfobox);
-                                       this.writeReply(ctx, 400, "text/html", 
"OK", pageNode.generate());
+                                       this.writeHTMLReply(ctx, 400, "OK", 
pageNode.generate());
                                        return;
                                }
                        }
@@ -173,7 +173,7 @@
                                                } catch (IOException e) {
                                                        
peerTableInfobox.addChild("#", l10n("noSuchFileOrCannotRead"));
                                                        
Toadlet.addHomepageLink(peerTableInfobox);
-                                                       this.writeReply(ctx, 
400, "text/html", "OK", pageNode.generate());
+                                                       
this.writeHTMLReply(ctx, 200, "OK", pageNode.generate());
                                                        return;
                                                }
                                        } else {
@@ -223,7 +223,7 @@
                        list.addChild("li").addChild("a", new String[] { 
"href", "title" },
                                        new String[] { "/friends/", 
l10n("returnToFriends") },
                                        l10n("friends"));
-                       this.writeReply(ctx, 200, "text/html", "OK", 
pageNode.generate());
+                       this.writeHTMLReply(ctx, 200, "OK", 
pageNode.generate());
                        return;
                }
                MultiValueTable headers = new MultiValueTable();

Modified: trunk/freenet/src/freenet/clients/http/PluginToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/PluginToadlet.java   2007-08-06 
22:02:15 UTC (rev 14497)
+++ trunk/freenet/src/freenet/clients/http/PluginToadlet.java   2007-08-06 
22:25:34 UTC (rev 14498)
@@ -73,11 +73,11 @@
                                if (plugin instanceof HttpPlugin) {
                                        ((HttpPlugin) 
plugin).handleGet(httpRequest, ctx);
                                } else {
-                                       writeReply(ctx, 220, "text/html; 
charset=utf-8", "OK", createBox(ctx, l10n("noWebInterfaceTitle"), 
l10n("noWebInterface")).toString());
+                                       writeHTMLReply(ctx, 220, "OK", 
createBox(ctx, l10n("noWebInterfaceTitle"), l10n("noWebInterface")).toString());
                                }
                                return;
                        }
-                       writeReply(ctx, 220, "text/html; charset=utf-8", "OK", 
createBox(ctx, l10n("pluginNotFoundTitle"), l10n("pluginNotFound")).toString());
+                       writeHTMLReply(ctx, 220, "OK", createBox(ctx, 
l10n("pluginNotFoundTitle"), l10n("pluginNotFound")).toString());
                        return;
                }

@@ -96,10 +96,10 @@
                if ("list".equals(action)) {
                        replyBuffer.append(listPlugins(ctx));
                } else {
-                       writeReply(ctx, 220, "text/html; charset=utf-8", "OK", 
createBox(ctx, l10n("unsupportedMethodTitle"), 
l10n("unsupportedMethod")).toString());
+                       writeHTMLReply(ctx, 220, "OK", createBox(ctx, 
l10n("unsupportedMethodTitle"), l10n("unsupportedMethod")).toString());
                        return;
                }
-               writeReply(ctx, 220, "text/html; charset=utf-8", "OK", 
replyBuffer.toString());
+               writeHTMLReply(ctx, 220, "OK", replyBuffer.toString());
        }

        private String l10n(String key) {
@@ -119,11 +119,11 @@
                                if (plugin instanceof HttpPlugin) {
                                        ((HttpPlugin) 
plugin).handlePost(httpRequest, ctx);
                                } else {
-                                       writeReply(ctx, 220, "text/html; 
charset=utf-8", "OK", createBox(ctx, l10n("noWebInterfaceTitle"), 
l10n("noWebInterface")).toString());
+                                       writeHTMLReply(ctx, 220, "OK", 
createBox(ctx, l10n("noWebInterfaceTitle"), l10n("noWebInterface")).toString());
                                }
                                return;
                        }
-                       writeReply(ctx, 220, "text/html; charset=utf-8", "OK", 
createBox(ctx, l10n("pluginNotFoundTitle") , 
l10n("pluginNotFound")).toString());
+                       writeHTMLReply(ctx, 220, "OK", createBox(ctx, 
l10n("pluginNotFoundTitle") , l10n("pluginNotFound")).toString());
                        return;
                }

@@ -176,7 +176,7 @@
                        writePermanentRedirect(ctx, l10n("pluginList"), 
"?action=list");
                        return;
                }
-               writeReply(ctx, 220, "text/html; charset=utf-8", "OK", 
replyBuffer.toString());
+               writeHTMLReply(ctx, 220, "OK", replyBuffer.toString());
        }

        /**

Modified: trunk/freenet/src/freenet/clients/http/PproxyToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/PproxyToadlet.java   2007-08-06 
22:02:15 UTC (rev 14497)
+++ trunk/freenet/src/freenet/clients/http/PproxyToadlet.java   2007-08-06 
22:25:34 UTC (rev 14498)
@@ -80,7 +80,7 @@
                                        plugin = path.substring(0, to);
                                }

-                               writeReply(ctx, 200, "text/html", "OK", 
pm.handleHTTPPost(plugin, request));
+                               writeHTMLReply(ctx, 200, "OK", 
pm.handleHTTPPost(plugin, request));
                        }
                        catch (RedirectPluginHTTPException e) {
                                writeTemporaryRedirect(ctx, e.message, 
e.newLocation);
@@ -136,7 +136,7 @@
                                infoboxContent.addChild("#", 
l10n("pluginUnloadedWithName", "name", request.getPartAsString("remove", 
MAX_PLUGIN_NAME_LENGTH)));
                                infoboxContent.addChild("br");
                                infoboxContent.addChild("a", "href", 
"/plugins/", l10n("returnToPluginPage"));
-                               writeReply(ctx, 200, "text/html", "OK", 
pageNode.generate());
+                               writeHTMLReply(ctx, 200, "OK", 
pageNode.generate());
                                return;
                        }if (request.getPartAsString("unload", 
MAX_PLUGIN_NAME_LENGTH).length() > 0) {
                                HTMLNode pageNode = 
ctx.getPageMaker().getPageNode(l10n("plugins"), ctx);
@@ -150,7 +150,7 @@
                                unloadForm.addChild("input", new String[] { 
"type", "name", "value" }, new String[] { "submit", "cancel", 
L10n.getString("Toadlet.cancel") });
                                unloadForm.addChild("input", new String[] { 
"type", "name", "value" }, new String[] { "hidden", "unloadconfirm", 
request.getPartAsString("unload", MAX_PLUGIN_NAME_LENGTH) });
                                unloadForm.addChild("input", new String[] { 
"type", "name", "value" }, new String[] { "submit", "confirm", l10n("unload") 
});
-                               writeReply(ctx, 200, "text/html", "OK", 
pageNode.generate());
+                               writeHTMLReply(ctx, 200, "OK", 
pageNode.generate());
                                return;
                        }else if (request.getPartAsString("reload", 
MAX_PLUGIN_NAME_LENGTH).length() > 0) {
                                String fn = null;
@@ -221,7 +221,7 @@

                                // Plugin may need to know where it was 
accessed from, so it can e.g. produce relative URLs.
                                //writeReply(ctx, 200, "text/html", "OK", 
mkPage("plugin", pm.handleHTTPGet(plugin, data)));
-                               writeReply(ctx, 200, "text/html", "OK", 
pm.handleHTTPGet(plugin, request));                             
+                               writeHTMLReply(ctx, 200, "OK", 
pm.handleHTTPGet(plugin, request));                              
                        }

                        //FetchResult result = fetch(key);
@@ -297,7 +297,7 @@
                        loadDiv.addChild("#", (l10n("loadPluginLabel") + ' '));
                        loadDiv.addChild("input", new String[] { "type", 
"name", "size" }, new String[] { "text", "load", "40" });
                        loadDiv.addChild("input", new String[] { "type", 
"value" }, new String[] { "submit", "Load" });
-                       writeReply(ctx, 200, "text/html", "OK", 
pageNode.generate());
+                       writeHTMLReply(ctx, 200, "OK", pageNode.generate());
                } 
        }
 }

Modified: trunk/freenet/src/freenet/clients/http/QueueToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/QueueToadlet.java    2007-08-06 
22:02:15 UTC (rev 14497)
+++ trunk/freenet/src/freenet/clients/http/QueueToadlet.java    2007-08-06 
22:25:34 UTC (rev 14498)
@@ -298,7 +298,7 @@
                                                                        
optionForm.addChild("input", new String[] { "type", "name", "value" }, new 
String[] { "hidden", "forceDownload", 
String.valueOf(System.currentTimeMillis()) });
                                                                        
optionForm.addChild("input", new String[] { "type", "name", "value" }, new 
String[] { "submit", "get", "Download anyway" });
                                                                        
optionForm.addChild("input", new String[] { "type", "name", "value" }, new 
String[] { "submit", "return", "Return to queue page" });
-                                                                       
writeReply(ctx, 200, "text/html; charset=utf-8", "OK", pageNode.generate());
+                                                                       
writeHTMLReply(ctx, 200, "OK", pageNode.generate());
                                                                        return;
                                                                }
                                                        }
@@ -326,7 +326,7 @@
                HTMLNode infoboxContent = pageMaker.getContentNode(infobox);
                infoboxContent.addChild("#", message);
                infoboxContent.addChild("div").addChildren(new HTMLNode[] { new 
HTMLNode("#", "Return to "), new HTMLNode("a", "href", "/queue/", "queue 
page"), new HTMLNode("#", ".") });
-               writeReply(context, 400, "text/html; charset=utf-8", "Error", 
pageNode.generate());
+               writeHTMLReply(context, 400, "Bad request", 
pageNode.generate());
        }

        public void handleGet(URI uri, final HTTPRequest request, 
ToadletContext ctx) 
@@ -396,7 +396,7 @@
                        HTMLNode infoboxContent = 
pageMaker.getContentNode(infobox);
                        infoboxContent.addChild("#", 
L10n.getString("QueueToadlet.noTaskOnGlobalQueue"));
                        contentNode.addChild(createInsertBox(pageMaker, ctx));
-                       writeReply(ctx, 200, "text/html", "OK", 
pageNode.generate());
+                       writeHTMLReply(ctx, 200, "OK", pageNode.generate());
                        return;
                }

@@ -688,7 +688,7 @@
                }

                MultiValueTable pageHeaders = new MultiValueTable();
-               this.writeReply(ctx, 200, "text/html", "OK", pageHeaders, 
pageNode.generate());
+               writeHTMLReply(ctx, 200, "OK", pageHeaders, 
pageNode.generate());
        }



Modified: trunk/freenet/src/freenet/clients/http/StatisticsToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/StatisticsToadlet.java       
2007-08-06 22:02:15 UTC (rev 14497)
+++ trunk/freenet/src/freenet/clients/http/StatisticsToadlet.java       
2007-08-06 22:25:34 UTC (rev 14498)
@@ -289,7 +289,7 @@
                        addNodeCircle(nodeCircleTable);
                }

-               this.writeReply(ctx, 200, "text/html", "OK", 
pageNode.generate());
+               this.writeHTMLReply(ctx, 200, "OK", pageNode.generate());
        }

        private void drawRejectReasonsBox(HTMLNode nextTableCell) {

Modified: trunk/freenet/src/freenet/clients/http/SymlinkerToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/SymlinkerToadlet.java        
2007-08-06 22:02:15 UTC (rev 14497)
+++ trunk/freenet/src/freenet/clients/http/SymlinkerToadlet.java        
2007-08-06 22:25:34 UTC (rev 14498)
@@ -118,7 +118,7 @@

                // TODO redirect to errorpage
                if ((foundtarget == null) || (foundkey == null)) {
-                       writeReply(ctx, 404, "text/html", 
L10n.getString("StaticToadlet.pathNotFoundTitle"), 
+                       writeTextReply(ctx, 404, "Not found", 
                                        
L10n.getString("StaticToadlet.pathNotFound"));
                        return;
                }
@@ -130,7 +130,7 @@
                                 path, uri.getQuery(), uri.getFragment());
                } catch (URISyntaxException e) {
                        // TODO Handle error somehow
-                       writeReply(ctx, 200, "text/html", "OK", e.getMessage());
+                       writeHTMLReply(ctx, 200, "OK", e.getMessage());
                        return;
                }


Modified: trunk/freenet/src/freenet/clients/http/Toadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/Toadlet.java 2007-08-06 22:02:15 UTC 
(rev 14497)
+++ trunk/freenet/src/freenet/clients/http/Toadlet.java 2007-08-06 22:25:34 UTC 
(rev 14498)
@@ -147,6 +147,22 @@
                writeReply(ctx, code, mimeType, desc, null, reply);
        }

+       protected void writeHTMLReply(ToadletContext ctx, int code, String 
desc, String reply) throws ToadletContextClosedException, IOException {
+               writeReply(ctx, code, "text/html; charset=utf-8", desc, null, 
reply);
+       }
+       
+       protected void writeTextReply(ToadletContext ctx, int code, String 
desc, String reply) throws ToadletContextClosedException, IOException {
+               writeReply(ctx, code, "text/plain; charset=utf-8", desc, null, 
reply);
+       }
+       
+       protected void writeHTMLReply(ToadletContext ctx, int code, String 
desc, MultiValueTable headers, String reply) throws 
ToadletContextClosedException, IOException {
+               writeReply(ctx, code, "text/html; charset=utf-8", desc, 
headers, reply);
+       }
+       
+       protected void writeTextReply(ToadletContext ctx, int code, String 
desc, MultiValueTable headers, String reply) throws 
ToadletContextClosedException, IOException {
+               writeReply(ctx, code, "text/plain; charset=utf-8", desc, 
headers, reply);
+       }
+       
        protected void writeReply(ToadletContext context, int code, String 
mimeType, String desc, MultiValueTable headers, String reply) throws 
ToadletContextClosedException, IOException {
                byte[] buffer = reply.getBytes("UTF-8");
                writeReply(context, code, mimeType, desc, headers, buffer, 0, 
buffer.length);
@@ -219,7 +235,7 @@
                infoboxContent.addChild("a", "href", ".", 
l10n("returnToPrevPage"));
                addHomepageLink(infoboxContent);

-               writeReply(ctx, code, "text/html; charset=UTF-8", desc, 
pageNode.generate());
+               writeHTMLReply(ctx, code, desc, pageNode.generate());
        }

        /**
@@ -250,7 +266,7 @@
                infoboxContent.addChild("a", "href", ".", 
l10n("returnToPrevPage"));
                addHomepageLink(infoboxContent);

-               writeReply(ctx, 500, "text/html; charset=UTF-8", desc, 
pageNode.generate());
+               writeHTMLReply(ctx, 500, desc, pageNode.generate());
        }

        protected void writeInternalError(Throwable t, ToadletContext ctx) 
throws ToadletContextClosedException, IOException {
@@ -262,7 +278,7 @@
                t.printStackTrace(pw);
                pw.flush();
                msg = msg + sw.toString() + "</pre></body></html>";
-               writeReply(ctx, 500, "text/html", "Internal Error", msg);
+               writeHTMLReply(ctx, 500, "Internal Error", msg);
        }

        protected static void addHomepageLink(HTMLNode content) {

Modified: trunk/freenet/src/freenet/clients/http/TranslationToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/TranslationToadlet.java      
2007-08-06 22:02:15 UTC (rev 14497)
+++ trunk/freenet/src/freenet/clients/http/TranslationToadlet.java      
2007-08-06 22:25:34 UTC (rev 14498)
@@ -83,7 +83,7 @@
                        footer.addChild("%", "&nbsp;&nbsp;");
                        footer.addChild("a", "href", TOADLET_URL + 
(showEverything ? "" : "?toTranslateOnly")).addChild("#", 
l10n("returnToTranslations"));

-                       this.writeReply(ctx, 200, "text/html; charset=utf-8", 
"OK", pageNode.generate());
+                       this.writeHTMLReply(ctx, 200, "OK", 
pageNode.generate());
                        return;                         
                } else if (request.isParameterSet("translate")) {
                        String key = request.getParam("translate");
@@ -126,7 +126,7 @@
                                updateForm.addChild("input", new String[] { 
"type", "name", "value" }, new String[] { "hidden", "toTranslateOnly", key });

                        updateForm.addChild("input", new String[] { "type", 
"name", "value" }, new String[] { "submit", "cancel", 
L10n.getString("Toadlet.cancel") });
-                       this.writeReply(ctx, 200, "text/html; charset=utf-8", 
"OK", pageNode.generate());
+                       this.writeHTMLReply(ctx, 200, "OK", 
pageNode.generate());
                        return;
                } else if (request.isParameterSet("remove")) {
                        String key = request.getParam("remove");
@@ -145,7 +145,7 @@
                        removeForm.addChild("input", new String[] { "type", 
"name", "value" }, new String[] { "submit", "remove_confirmed", l10n("remove") 
});
                        removeForm.addChild("input", new String[] { "type", 
"name", "value" }, new String[] { "submit", "cancel", 
L10n.getString("Toadlet.cancel") });

-                       this.writeReply(ctx, 200, "text/html; charset=utf-8", 
"OK", pageNode.generate());
+                       this.writeHTMLReply(ctx, 200, "OK", 
pageNode.generate());
                        return;
                }

@@ -188,7 +188,7 @@
                        }
                }

-               this.writeReply(ctx, 200, "text/html; charset=utf-8", "OK", 
pageNode.generate());
+               this.writeHTMLReply(ctx, 200, "OK", pageNode.generate());
        }

        public void handlePost(URI uri, HTTPRequest request, ToadletContext 
ctx) throws ToadletContextClosedException, IOException {

Modified: trunk/freenet/src/freenet/clients/http/TrivialToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/TrivialToadlet.java  2007-08-06 
22:02:15 UTC (rev 14497)
+++ trunk/freenet/src/freenet/clients/http/TrivialToadlet.java  2007-08-06 
22:25:34 UTC (rev 14498)
@@ -19,7 +19,7 @@
                String reply = "<html><head><title>You requested "+encFetched+
                        "</title></head><body>You fetched <a 
href=\""+encFetched+"\">"+
                        encFetched+"</a>.</body></html>";
-               this.writeReply(ctx, 200, "text/html", "OK", reply);
+               this.writeHTMLReply(ctx, 200, "OK", reply);
        }

        public String supportedMethods() {

Modified: trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java  2007-08-06 
22:02:15 UTC (rev 14497)
+++ trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java  2007-08-06 
22:25:34 UTC (rev 14498)
@@ -109,7 +109,7 @@
                        HTMLNode content = 
ctx.getPageMaker().getContentNode(infobox);
                        content.addChild("p").addChild("#", l10n("updating"));
                        content.addChild("p").addChild("#", l10n("thanks"));
-                       writeReply(ctx, 200, "text/html", "OK", 
pageNode.generate());
+                       writeHTMLReply(ctx, 200, "OK", pageNode.generate());
                        Logger.normal(this, "Node is updating/restarting");
                        node.getNodeUpdater().arm();
                }else if 
(request.getPartAsString(GenericReadFilterCallback.magicHTTPEscapeString, 
MAX_URL_LENGTH).length()>0){
@@ -132,7 +132,7 @@
                        HTMLNode updateForm = ctx.addFormChild(content, "/", 
"updateConfirmForm");
                        updateForm.addChild("input", new String[] { "type", 
"name", "value" }, new String[] { "submit", "cancel", 
L10n.getString("Toadlet.cancel")});
                        updateForm.addChild("input", new String[] { "type", 
"name", "value" }, new String[] { "submit", "updateconfirm", l10n("update") });
-                       writeReply(ctx, 200, "text/html", "OK", 
pageNode.generate());
+                       writeHTMLReply(ctx, 200, "OK", pageNode.generate());
                }else if(request.isPartSet("getThreadDump")) {
                        if(noPassword) {
                                redirectToRoot(ctx);
@@ -149,7 +149,7 @@
                                HTMLNode infobox = 
contentNode.addChild(ctx.getPageMaker().getInfobox("infobox-error",l10n("threadDumpSubTitle")));
                                
ctx.getPageMaker().getContentNode(infobox).addChild("#", 
l10n("threadDumpNotUsingWrapper"));
                        }
-                       this.writeReply(ctx, 200, "text/html", "OK", 
pageNode.generate());
+                       this.writeHTMLReply(ctx, 200, "OK", 
pageNode.generate());
                }else if(request.isPartSet("getJEStatsDump")) {
                        if(noPassword) {
                                redirectToRoot(ctx);
@@ -164,7 +164,7 @@
                        System.out.println(">>>>>>>>>>>>>>>>>>>>>>>  END 
DATABASE STATS  <<<<<<<<<<<<<<<<<<<<<<<");

                        
ctx.getPageMaker().getContentNode(infobox).addChild("#", 
l10n("writtenDatabaseStats"));
-                       this.writeReply(ctx, 200, "text/html", "OK", 
pageNode.generate());
+                       this.writeHTMLReply(ctx, 200, "OK", 
pageNode.generate());
                }else if(request.isPartSet("disable")){
                        if(noPassword) {
                                redirectToRoot(ctx);
@@ -239,7 +239,7 @@

                                postForm.addChild("input", new String[] { 
"type", "name", "value" }, new String[] { "submit", "cancel", 
L10n.getString("Toadlet.cancel") });
                                postForm.addChild("input", new String[] { 
"type", "name", "value" }, new String[] { "submit", "finconfirm", l10n("post") 
});
-                               writeReply(ctx, 200, "text/html", "OK", 
pageNode.generate());
+                               writeHTMLReply(ctx, 200, "OK", 
pageNode.generate());
                                return;
                        }

@@ -282,7 +282,7 @@
                        content.addChild("br");
                        addHomepageLink(content);

-                       writeReply(ctx, 200, "text/html", "OK", 
pageNode.generate());
+                       writeHTMLReply(ctx, 200, "OK", pageNode.generate());
                        request.freeParts();
                }else 
if(request.isPartSet("key")&&request.isPartSet("filename")){
                        if(noPassword) {
@@ -335,7 +335,7 @@
                        content.addChild("br");
                        addHomepageLink(content);

-                       writeReply(ctx, 200, "text/html", "OK", 
pageNode.generate());
+                       writeHTMLReply(ctx, 200, "OK", pageNode.generate());
                        request.freeParts();
                        bucket.free();
                }else if (request.isPartSet("shutdownconfirm")) {
@@ -413,7 +413,7 @@
                                while((read = reader.read(buffer)) != -1)
                                        sw.write(buffer, 0, read);

-                               this.writeReply(ctx, 200, "text/plain", "OK", 
sw.toString());
+                               this.writeHTMLReply(ctx, 200, "OK", 
sw.toString());
                                return;
                        } else if (request.isParameterSet("terminated")) {
                                if((!request.isParameterSet("formPassword")) || 
!request.getParam("formPassword").equals(core.formPassword)) {
@@ -426,7 +426,7 @@
                                HTMLNode infobox = 
contentNode.addChild(ctx.getPageMaker().getInfobox("infobox-information", 
l10n("shutdownDone")));
                                HTMLNode infoboxContent = 
ctx.getPageMaker().getContentNode(infobox);
                                infoboxContent.addChild("#", l10n("thanks"));
-                               this.writeReply(ctx, 200, "text/html; 
charset=utf-8", "OK", pageNode.generate());
+                               this.writeHTMLReply(ctx, 200, "OK", 
pageNode.generate());
                                return;
                        } else if (request.isParameterSet("restarted")) {
                                if((!request.isParameterSet("formPassword")) || 
!request.getParam("formPassword").equals(core.formPassword)) {
@@ -439,7 +439,7 @@
                                HTMLNode infobox = 
contentNode.addChild(ctx.getPageMaker().getInfobox("infobox-information", 
l10n("restartingTitle")));
                                HTMLNode infoboxContent = 
ctx.getPageMaker().getContentNode(infobox);
                                infoboxContent.addChild("#", 
l10n("restarting"));
-                               writeReply(ctx, 200, "text/html; 
charset=utf-8", "OK", pageNode.generate());
+                               writeHTMLReply(ctx, 200, "OK", 
pageNode.generate());
                                Logger.normal(this, "Node is restarting");
                                return;
                         } else if (request.getParam("newbookmark").length() > 
0) {
@@ -457,7 +457,7 @@
                                 addForm.addChild("input", new String[] 
{"type", "name", "value"}, new String[] {"hidden", "bookmark", "/"});
                                addForm.addChild("input", new String[] {"type", 
"name", "value"}, new String[] {"hidden", "action", "addItem"});
                                addForm.addChild("input", new String[] { 
"type", "name", "value" }, new String[] { "submit", "addbookmark", 
L10n.getString("BookmarkEditorToadlet.addBookmark") });
-                               this.writeReply(ctx, 200, "text/html", "OK", 
pageNode.generate());
+                               this.writeHTMLReply(ctx, 200, "OK", 
pageNode.generate());
                                return;
                        } else if 
(request.getParam(GenericReadFilterCallback.magicHTTPEscapeString).length() > 
0) {
                                HTMLNode pageNode = 
ctx.getPageMaker().getPageNode( l10n("confirmExternalLinkTitle"), ctx);
@@ -471,7 +471,7 @@
                                externalLinkForm.addChild("input", new String[] 
{ "type", "name", "value" }, new String[] { "hidden", 
GenericReadFilterCallback.magicHTTPEscapeString, target });
                                externalLinkForm.addChild("input", new String[] 
{ "type", "name", "value" }, new String[] { "submit", "cancel", 
L10n.getString("Toadlet.cancel") });
                                externalLinkForm.addChild("input", new String[] 
{ "type", "name", "value" }, new String[] { "submit", "Go", 
l10n("goToExternalLink") });
-                               this.writeReply(ctx, 200, "text/html", "OK", 
pageNode.generate());
+                               this.writeHTMLReply(ctx, 200, "OK", 
pageNode.generate());
                                return;
                        } else if (request.isParameterSet("exit")) {
                                HTMLNode pageNode = 
ctx.getPageMaker().getPageNode(l10n("shutdownConfirmTitle"), ctx);
@@ -482,7 +482,7 @@
                                HTMLNode shutdownForm = 
ctx.addFormChild(content.addChild("p"), "/", "confirmShutdownForm");
                                shutdownForm.addChild("input", new String[] { 
"type", "name", "value" }, new String[] { "submit", "cancel", 
L10n.getString("Toadlet.cancel") });
                                shutdownForm.addChild("input", new String[] { 
"type", "name", "value" }, new String[] { "submit", "shutdownconfirm", 
l10n("shutdown") });
-                               writeReply(ctx, 200, "text/html", "OK", 
pageNode.generate());
+                               writeHTMLReply(ctx, 200, "OK", 
pageNode.generate());
                                return;
                        }else if (request.isParameterSet("restart")) {
                                HTMLNode pageNode = 
ctx.getPageMaker().getPageNode(l10n("restartConfirmTitle"), ctx);
@@ -493,7 +493,7 @@
                                HTMLNode restartForm = 
ctx.addFormChild(content.addChild("p"), "/", "confirmRestartForm");
                                restartForm.addChild("input", new String[] { 
"type", "name", "value" }, new String[] { "submit", "cancel", 
L10n.getString("Toadlet.cancel") });
                                restartForm.addChild("input", new String[] { 
"type", "name", "value" }, new String[] { "submit", "restartconfirm", 
l10n("restart") });
-                               writeReply(ctx, 200, "text/html", "OK", 
pageNode.generate());
+                               writeHTMLReply(ctx, 200, "OK", 
pageNode.generate());
                                return;
                        }
                }
@@ -584,7 +584,7 @@
                        activityList.addChild("li", l10n("arkFetchCount", 
"total", Integer.toString(node.getNumARKFetchers())));
                }

-               this.writeReply(ctx, 200, "text/html", "OK", 
pageNode.generate());
+               this.writeHTMLReply(ctx, 200, "OK", pageNode.generate());
        }

        public String supportedMethods() {


Reply via email to