additional proxy.i2p defenses

This commit is contained in:
zzz
2009-07-20 17:29:25 +00:00
parent 71d72b426f
commit 6039f3931d

View File

@ -830,12 +830,13 @@ public class I2PTunnelHTTPClient extends I2PTunnelClientBase implements Runnable
int space = targetRequest.indexOf(' '); int space = targetRequest.indexOf(' ');
String filename = null; String filename = null;
try { try {
filename = targetRequest.substring(10, space); filename = targetRequest.substring(17, space); // "proxy.i2p/themes/".length
} catch (IndexOutOfBoundsException ioobe) {} } catch (IndexOutOfBoundsException ioobe) {}
// theme hack // theme hack
if (filename.startsWith("themes/console/default/")) if (filename.startsWith("console/default/"))
filename = filename.replaceFirst("default", I2PAppContext.getGlobalContext().getProperty("routerconsole.theme", "light")); filename = filename.replaceFirst("default", I2PAppContext.getGlobalContext().getProperty("routerconsole.theme", "light"));
File file = new File(_errorDir, filename); File themesDir = new File(_errorDir, "themes");
File file = new File(themesDir, filename);
if (file.exists() && !file.isDirectory()) { if (file.exists() && !file.isDirectory()) {
String type; String type;
if (filename.endsWith(".css")) if (filename.endsWith(".css"))
@ -849,7 +850,7 @@ public class I2PTunnelHTTPClient extends I2PTunnelClientBase implements Runnable
out.write("HTTP/1.1 200 OK\r\nContent-Type: ".getBytes()); out.write("HTTP/1.1 200 OK\r\nContent-Type: ".getBytes());
out.write(type.getBytes()); out.write(type.getBytes());
out.write("\r\nCache-Control: max-age=86400\r\n\r\n".getBytes()); out.write("\r\nCache-Control: max-age=86400\r\n\r\n".getBytes());
FileUtil.readFile(filename, _errorDir.getAbsolutePath(), out); FileUtil.readFile(filename, themesDir.getAbsolutePath(), out);
return; return;
} catch (IOException ioe) {} } catch (IOException ioe) {}
} }