diff --git a/lib/modules/Tools.pmod/Standalone.pmod/httpserver.pike b/lib/modules/Tools.pmod/Standalone.pmod/httpserver.pike index a50c05af0cc470fdac3f5164066d1b245ea417a9..b37a9d74ec54aa47df6915fff9165e56459b85be 100644 --- a/lib/modules/Tools.pmod/Standalone.pmod/httpserver.pike +++ b/lib/modules/Tools.pmod/Standalone.pmod/httpserver.pike @@ -59,13 +59,13 @@ string dirlist( string dir ) if( t == "application/octet-stream" ) t = "<span style='color:darkgrey'>unknown</span>"; - fn = Parser.encode_html_entities(fn); res += sprintf("<tr class='%s'><td><a href='%s%s'>%s%[2]s</a></td>" "<td align='right'>%s</td>" "<td align='right'>%s</td></tr>\n", (i&1?"odd":"even"), - fn, s->isdir?"/":"", fn, t, + Protocols.HTTP.uri_encode(fn), s->isdir?"/":"", + Parser.encode_html_entities(fn), t, s->isdir?"":String.int2size(s->size)); } return res+"</table></body></html>\n"; @@ -82,6 +82,7 @@ string file_not_found(string fname) void handle_request(Protocols.HTTP.Server.Request request) { string file = "."+combine_path("/",request->not_query); + file = Protocols.HTTP.uri_decode(file); Stdio.Stat s = file_stat( file ); if( !s ) request->response_and_finish( (["data":