Package net.i2p.i2ptunnel.localServer
Class LocalHTTPServer
java.lang.Object
net.i2p.i2ptunnel.localServer.LocalHTTPServer
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
-
Method Summary
Modifier and TypeMethodDescriptionprotected static String
lang in routerconsole.lang property, else current localeprotected static String
{0}protected static String
{0} and {1}static String
Decode %xx encodingstatic InputStream
getResource
(String resource) static void
serveLocalFile
(I2PAppContext context, I2PSocketManager sockMgr, OutputStream out, String method, String targetRequest, String query, String proxyNonce, boolean allowGzip) Very simple web server.
-
Constructor Details
-
LocalHTTPServer
public LocalHTTPServer()
-
-
Method Details
-
serveLocalFile
public static void serveLocalFile(I2PAppContext context, I2PSocketManager sockMgr, OutputStream out, String method, String targetRequest, String query, String proxyNonce, boolean allowGzip) throws IOException 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:
sockMgr
- only for /b32, otherwise ignoredtargetRequest
- decoded path only, non-nullquery
- raw (encoded), may be nullallowGzip
- may we send a gzipped response?- Throws:
IOException
-
decode
Decode %xx encoding- Since:
- 0.8.7
-
getResource
- Parameters:
resource
- relative path- Returns:
- stream or null if not found
- Since:
- 0.9.49
-
_t
lang in routerconsole.lang property, else current locale -
_t
{0} -
_t
{0} and {1}
-