Author: toad
Date: 2006-05-18 15:30:32 +0000 (Thu, 18 May 2006)
New Revision: 8773

Modified:
   trunk/freenet/src/freenet/clients/http/filter/GenericReadFilterCallback.java
   trunk/freenet/src/freenet/node/Version.java
Log:
722: Fix other filter bug.

Modified: 
trunk/freenet/src/freenet/clients/http/filter/GenericReadFilterCallback.java
===================================================================
--- 
trunk/freenet/src/freenet/clients/http/filter/GenericReadFilterCallback.java    
    2006-05-18 15:20:12 UTC (rev 8772)
+++ 
trunk/freenet/src/freenet/clients/http/filter/GenericReadFilterCallback.java    
    2006-05-18 15:30:32 UTC (rev 8773)
@@ -3,6 +3,7 @@
 import java.net.MalformedURLException;
 import java.net.URI;
 import java.net.URISyntaxException;
+import java.net.URLEncoder;

 import freenet.clients.http.HTTPRequest;
 import freenet.keys.FreenetURI;
@@ -96,20 +97,21 @@
                // Obviously we don't want to support ?force= !!
                // At the moment, ?type= and ?force= are the only options 
supported by Fproxy anyway.
                String ret = path;
-               if(typeOverride != null)
-                       ret = ret + "?type=" + typeOverride;
-               if(u.getFragment() != null)
-                       ret = ret + "#" + u.getFragment();
-               ret = ret.trim(); // URI does wierd things with trailing spaces
-               Logger.minor(this, "ret = "+ret);
+               
                try {
-                       URI out = new URI(ret);
+                       URI uri = new URI(null, null, path, typeOverride == 
null ? null : "type="+typeOverride,
+                                       u.getFragment());
                        if(!noRelative)
-                               return baseURI.relativize(out).toASCIIString();
-                       else
-                               return ret;
+                               uri = baseURI.relativize(uri);
+                       return uri.toASCIIString();
                } catch (URISyntaxException e) {
-                       Logger.error(this, "Could not parse own URI: "+ret+" : 
"+e, e);
+                       Logger.error(this, "Could not parse own URI: 
path="+path+", typeOverride="+typeOverride+", frag="+u.getFragment()+" : "+e, 
e);
+                       String p = path;
+                       if(typeOverride != null)
+                               p += "?type="+typeOverride;
+                       if(u.getFragment() != null)
+                               // FIXME encode it properly
+                               p += URLEncoder.encode(u.getFragment());
                        return null;
                }
        }

Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-05-18 15:20:12 UTC (rev 
8772)
+++ trunk/freenet/src/freenet/node/Version.java 2006-05-18 15:30:32 UTC (rev 
8773)
@@ -18,7 +18,7 @@
        public static final String protocolVersion = "1.0";

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

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


Reply via email to