[freenet-cvs] r14498 - trunk/freenet/src/freenet/clients/http

toad at freenetproject.org toad at freenetproject.org
Mon Aug 6 22:25:34 UTC 2007


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() {




More information about the cvs mailing list