* Dave Baker <dbkr at freenetproject.org> [2006-05-07 02:17:58]:

> I tested it in Opera and it does indeed prompt the user to save the file. 
> I've 
> left it as changing the MIME type to application/x-msdownload as well. Opera 
> at least seems to work with just the content-disposition trick, but I can't 
> be sure of other browsers, so I've left it in place for now.
> 
> By the way, it looks like emu is out of disk space - I can't commit at the 
> moment.
> 
> Dave

Fixed. My bad :$ the compilation of gcc took more space that what I was
expecting.


NextGen$
> 
> 
> On Saturday 06 May 2006 18:07, Matthew Toseland wrote:
> > Is it necessary to add any other headers to persuade the client to
> > download the file rather than showing it? I believe Opera will
> > auto-detect on application/octet-stream; they recommend
> > application/x-msdownload or application/x-unknown. They also gave the
> > hint on content-disposition...
> > 
> > Thanks! I may be online later; I'm having technical issues at present.
> > 
> > On Sat, May 06, 2006 at 01:29:10PM +0000, dbkr at freenetproject.org wrote:
> > > Author: dbkr
> > > Date: 2006-05-06 13:29:06 +0000 (Sat, 06 May 2006)
> > > New Revision: 8621
> > > 
> > > Modified:
> > >    trunk/freenet/src/freenet/clients/http/FproxyToadlet.java
> > >    trunk/freenet/src/freenet/clients/http/PageMaker.java
> > >    trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java
> > >    trunk/freenet/src/freenet/node/Version.java
> > > Log:
> > > 681: Anonymity improvents:
> > > * Fix bug 132 (Reinstate Internet Explorer warning)
> > > * Fix bug 131 (Downloads should have content-disposition: attatchment 
> added too)
> > > * Remove http URL in xml namespace (paranoid, but the URL is not 
> necessary)
> > > 
> > > 
> > > Modified: trunk/freenet/src/freenet/clients/http/FproxyToadlet.java
> > > ===================================================================
> > > --- trunk/freenet/src/freenet/clients/http/FproxyToadlet.java     
> > > 2006-05-06 
> 11:40:33 UTC (rev 8620)
> > > +++ trunk/freenet/src/freenet/clients/http/FproxyToadlet.java     
> > > 2006-05-06 
> 13:29:06 UTC (rev 8621)
> > > @@ -149,23 +149,34 @@
> > >                   
> > >                   String forceString = httprequest.getParam("force");
> > >                   boolean force = false;
> > > +                 boolean forcedownload = false;
> > >                   if(forceString != null) {
> > >                           if(forceString.equals(getForceValue(key, now)) 
> > > || 
> > >                                           
> > > forceString.equals(getForceValue(key, now-FORCE_GRAIN_INTERVAL)))
> > >                                   force = true;
> > >                   }
> > >  
> > > -                 if(typeName.equals("application/x-msdownload")) {
> > > +                 if(httprequest.isParameterSet("forcedownload")) {
> > >                           // Download to disk, this should be safe, and 
> > > is set when we do 
> "force download to disk" from a dangerous-content-warning page.
> > > -                         force = true;
> > > +                         typeName = "application/x-msdownload";
> > > +                         forcedownload = true;
> > >                   }
> > >                   
> > >                   try {
> > > -                         if(!force)
> > > +                         if(!force && !forcedownload) {
> > >                                   data = ContentFilter.filter(data, 
> > > ctx.getBucketFactory(), typeName);
> > > +                         }
> > >                           
> > > -                         // Send the data, intact
> > > -                         writeReply(ctx, 200, typeName, "OK", data);
> > > +                         if (forcedownload) {
> > > +                                 MultiValueTable headers = new 
> > > MultiValueTable();
> > > +                                 
> > > +                                 headers.put("Content-Disposition", 
> > > "attachment");
> > > +                                 ctx.sendReplyHeaders(200, "OK", 
> > > headers, typeName, data.size());
> > > +                                 ctx.writeData(data);
> > > +                         } else {
> > > +                                 // Send the data, intact
> > > +                                 writeReply(ctx, 200, typeName, "OK", 
> > > data);
> > > +                         }
> > >                   } catch (UnsafeContentTypeException e) {
> > >                           StringBuffer buf = new StringBuffer();
> > >                           ctx.getPageMaker().makeHead(buf, "Potentially 
> > > Dangerous Content");
> > > @@ -176,7 +187,7 @@
> > >                           buf.append("<p>Your options are:</p><ul>\n");
> > >                           buf.append("<li><a 
> href=\"/"+key.toString(false)+"?type=text/plain\">Click here</a> to open the 
> file as plain text (this should not be dangerous, but it may be 
> garbled).</li>\n");
> > >                           // FIXME: is this safe? See bug #131
> > > -                         buf.append("<li><a 
> href=\"/"+key.toString(false)+"?type=application/x-msdownload\">Click 
> here</a> to force your browser to download the file to disk.</li>\n");
> > > +                         buf.append("<li><a 
> href=\"/"+key.toString(false)+"?forcedownload\">Click here</a> to force your 
> browser to download the file to disk.</li>\n");
> > >                           buf.append("<li><a 
> href=\"/"+key.toString(false)+"?force="+getForceValue(key, now)+"\">Click 
> here</a> to open the file as "+HTMLEncoder.encode(typeName)+".</li>\n");
> > >                           buf.append("<li><a href=\"/\">Click here</a> to 
> > > go to the FProxy home 
> page.</li>\n");
> > >                           buf.append("</ul>");
> > > 
> > > Modified: trunk/freenet/src/freenet/clients/http/PageMaker.java
> > > ===================================================================
> > > --- trunk/freenet/src/freenet/clients/http/PageMaker.java 2006-05-06 
> 11:40:33 UTC (rev 8620)
> > > +++ trunk/freenet/src/freenet/clients/http/PageMaker.java 2006-05-06 
> 13:29:06 UTC (rev 8621)
> > > @@ -38,7 +38,7 @@
> > >   public void makeTopHead(StringBuffer buf) {
> > >           buf.append("<!DOCTYPE\n"
> > >                           + "     html PUBLIC \"-//W3C//DTD XHTML 
> > > 1.1//EN\">\n"
> > > -                         + "<html xmlns=\"http://www.w3.org/1999/xhtml\"; 
> > > xml:lang=\"en\">\n"
> > > +                         + "<html xml:lang=\"en\">\n"
> > >                           + "<head>\n"
> > >                           + "<meta http-equiv=\"Content-Type\" 
> > > content=\"text/html;\" />\n"
> > >                           +"<link rel=\"stylesheet\" 
> href=\"/static/themes/"+this.theme+"/theme.css\" type=\"text/css\" />\n");
> > > 
> > > Modified: trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java
> > > ===================================================================
> > > --- trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java    
> > > 2006-05-06 
> 11:40:33 UTC (rev 8620)
> > > +++ trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java    
> > > 2006-05-06 
> 13:29:06 UTC (rev 8621)
> > > @@ -212,6 +212,15 @@
> > >           ctx.getPageMaker().makeHead(buf, "Freenet FProxy Homepage");
> > >           if(node.isTestnetEnabled())
> > >                   buf.append("<div style=\"color: red; font-size: 200%; 
> > > \">WARNING: 
> TESTNET MODE ENABLED</div>");
> > > +         
> > > +         String useragent = (String)ctx.getHeaders().get("user-agent");
> > > +         
> > > +         if (useragent != null) {
> > > +                 useragent = useragent.toLowerCase();
> > > +                 if (useragent.indexOf("msie") > -1 && 
> > > useragent.indexOf("opera") == 
> -1) {
> > > +                         buf.append("<div style=\"color: 
> > > darkred\"><b>Warning</b>: You appear 
> to be using Internet Explorer. This means that some sites within Freenet may 
> be able to compromise your anonymity.</div>");
> > > +                 }
> > > +         }
> > >  
> > >           // Alerts
> > >           
> > > 
> > > Modified: trunk/freenet/src/freenet/node/Version.java
> > > ===================================================================
> > > --- trunk/freenet/src/freenet/node/Version.java   2006-05-06 11:40:33 UTC 
> (rev 8620)
> > > +++ trunk/freenet/src/freenet/node/Version.java   2006-05-06 13:29:06 UTC 
> (rev 8621)
> > > @@ -20,7 +20,7 @@
> > >   public static final String protocolVersion = "1.0";
> > >  
> > >   /** The build number of the current revision */
> > > - private static final int buildNumber = 680;
> > > + private static final int buildNumber = 681;
> > >  
> > >   /** Oldest build of Fred we will talk to */
> > >   private static final int lastGoodBuild = 591;
> > > 
> > > _______________________________________________
> > > cvs mailing list
> > > cvs at freenetproject.org
> > > http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs
> > > 
> > 
> > -- 
> > Matthew J Toseland - toad at amphibian.dyndns.org
> > Freenet Project Official Codemonkey - http://freenetproject.org/
> > ICTHUS - Nothing is impossible. Our Boss says so.
> > 
> _______________________________________________
> cvs mailing list
> cvs at freenetproject.org
> http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: 
<https://emu.freenetproject.org/pipermail/devl/attachments/20060507/a944bb06/attachment.pgp>

Reply via email to