Author: dbkr
Date: 2006-03-24 03:19:44 +0000 (Fri, 24 Mar 2006)
New Revision: 8295
Modified:
trunk/freenet/src/freenet/clients/http/FproxyToadlet.java
trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java
trunk/freenet/src/freenet/clients/http/filter/GenericReadFilterCallback.java
trunk/freenet/src/freenet/node/Version.java
Log:
558: Add HTML encoding when inserting bookmark keys / descriptions. Modify
content filter to allow adding bookmarks.
Modified: trunk/freenet/src/freenet/clients/http/FproxyToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/FproxyToadlet.java 2006-03-24
02:29:37 UTC (rev 8294)
+++ trunk/freenet/src/freenet/clients/http/FproxyToadlet.java 2006-03-24
03:19:44 UTC (rev 8295)
@@ -78,7 +78,15 @@
RedirectException re = new RedirectException();
try {
- re.newuri = new URI("/welcome/"+(uri.getQuery()
== null? "" : "?"+uri.getQuery()));
+ String querystring = uri.getQuery();
+
+ if (querystring == null) {
+ re.newuri = new URI("/welcome/");
+ } else {
+ // TODP possibly a proper URLEncode
method
+ querystring = querystring.replace(" ",
"+");
+ re.newuri = new
URI("/welcome/?"+querystring);
+ }
} catch (URISyntaxException e) {
// HUH!?!
}
Modified: trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java 2006-03-24
02:29:37 UTC (rev 8294)
+++ trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java 2006-03-24
03:19:44 UTC (rev 8295)
@@ -17,6 +17,7 @@
import freenet.support.Bucket;
import freenet.support.BucketTools;
import freenet.support.Logger;
+import freenet.support.HTMLEncoder;
public class WelcomeToadlet extends Toadlet {
private static final String[] DEFAULT_BOOKMARKS = {
@@ -167,8 +168,8 @@
buf.append("<i>"+request.getParam("newbookmark")+"</i><br />");
buf.append("To your bookmarks, and enter the
description that you would prefer:<br />\n");
buf.append("Description:\n");
- buf.append("<input type=\"text\" name=\"name\"
value=\""+request.getParam("desc")+"\" style=\"width: 100%; \" />\n");
- buf.append("<input type=\"hidden\" name=\"newbookmark\"
value=\""+request.getParam("newbookmark")+"\" />\n");
+ buf.append("<input type=\"text\" name=\"name\"
value=\""+HTMLEncoder.encode(request.getParam("desc"))+"\" style=\"width: 100%;
\" />\n");
+ buf.append("<input type=\"hidden\" name=\"newbookmark\"
value=\""+HTMLEncoder.encode(request.getParam("newbookmark"))+"\" />\n");
buf.append("<input type=\"submit\" value=\"Add
Bookmark\" />\n");
buf.append("</div>\n");
buf.append("</form>\n");
@@ -195,8 +196,8 @@
while (e.hasMoreElements()) {
Bookmark b = (Bookmark)e.nextElement();
- buf.append("<a href=\"/"+b.getKey()+"\">");
- buf.append(b.getDesc());
+ buf.append("<a
href=\"/"+HTMLEncoder.encode(b.getKey())+"\">");
+ buf.append(HTMLEncoder.encode(b.getDesc()));
buf.append("</a><br />\n");
}
Modified:
trunk/freenet/src/freenet/clients/http/filter/GenericReadFilterCallback.java
===================================================================
---
trunk/freenet/src/freenet/clients/http/filter/GenericReadFilterCallback.java
2006-03-24 02:29:37 UTC (rev 8294)
+++
trunk/freenet/src/freenet/clients/http/filter/GenericReadFilterCallback.java
2006-03-24 03:19:44 UTC (rev 8295)
@@ -7,6 +7,7 @@
import freenet.keys.FreenetURI;
import freenet.pluginmanager.HTTPRequest;
import freenet.support.Logger;
+import freenet.support.HTMLEncoder;
public class GenericReadFilterCallback implements FilterCallback {
@@ -26,13 +27,25 @@
return null;
}
String path = uri.getPath();
- if(path.startsWith("/")) {
+ if (path.startsWith("/") && path.substring(1).indexOf("/") ==
-1) {
+ // allow links to the root to add bookmarks
+ HTTPRequest req = new HTTPRequest(uri);
+
+ String bookmark_key = req.getParam("newbookmark");
+ String bookmark_desc = req.getParam("desc");
+
+ bookmark_key = HTMLEncoder.encode(bookmark_key);
+ bookmark_desc = HTMLEncoder.encode(bookmark_desc);
+
+ return
path+"?newbookmark="+bookmark_key+"&desc="+bookmark_desc;
+ } else if(path.startsWith("/")) {
// Try to make it into a FreenetURI
try {
FreenetURI furi = new
FreenetURI(path.substring(1));
return processURI(furi, uri, overrideType);
} catch (MalformedURLException e) {
// Obviously not a Freenet URI!
+
}
} else {
// Relative URI
Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-03-24 02:29:37 UTC (rev
8294)
+++ trunk/freenet/src/freenet/node/Version.java 2006-03-24 03:19:44 UTC (rev
8295)
@@ -20,7 +20,7 @@
public static final String protocolVersion = "1.0";
/** The build number of the current revision */
- private static final int buildNumber = 557;
+ private static final int buildNumber = 558;
/** Oldest build of Fred we will talk to */
private static final int lastGoodBuild = 507;