net.i2p.i2ptunnel.localServer
Class LocalHTTPServer

java.lang.Object
  extended by net.i2p.i2ptunnel.localServer.LocalHTTPServer

public abstract class LocalHTTPServer
extends Object

Very simple web server. Serve local files in the docs/ directory, for CSS and images in error pages, using the reserved address proxy.i2p (similar to p.p in privoxy). This solves the problems with including links to the router console, as assuming the router console is at 127.0.0.1 leads to broken links if it isn't.

Since:
0.7.6, moved from I2PTunnelHTTPClient in 0.9

Constructor Summary
LocalHTTPServer()
           
 
Method Summary
protected static String _(String key)
          lang in routerconsole.lang property, else current locale
protected static String _(String key, Object o)
          {0}
protected static String _(String key, Object o, Object o2)
          {0} and {1}
static String decode(String s)
          Decode %xx encoding
static void serveLocalFile(OutputStream out, String method, String targetRequest, String query, String proxyNonce)
          Very simple web server.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LocalHTTPServer

public LocalHTTPServer()
Method Detail

serveLocalFile

public static void serveLocalFile(OutputStream out,
                                  String method,
                                  String targetRequest,
                                  String query,
                                  String proxyNonce)
Very simple web server. Serve local files in the docs/ directory, for CSS and images in error pages, using the reserved address proxy.i2p (similar to p.p in privoxy). This solves the problems with including links to the router console, as assuming the router console is at 127.0.0.1 leads to broken links if it isn't. Ignore all request headers (If-Modified-Since, etc.) There is basic protection here - FileUtil.readFile() prevents traversal above the base directory - but inproxy/gateway ops would be wise to block proxy.i2p to prevent exposing the docs/ directory or perhaps other issues through uncaught vulnerabilities. Restrict to the /themes/ directory for now.

Parameters:
targetRequest - decoded path only, non-null
query - raw (encoded), may be null

decode

public static String decode(String s)
Decode %xx encoding

Since:
0.8.7

_

protected static String _(String key)
lang in routerconsole.lang property, else current locale


_

protected static String _(String key,
                          Object o)
{0}


_

protected static String _(String key,
                          Object o,
                          Object o2)
{0} and {1}