|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectnet.i2p.util.EventDispatcherImpl
net.i2p.i2ptunnel.I2PTunnelTask
net.i2p.i2ptunnel.I2PTunnelClientBase
net.i2p.i2ptunnel.I2PTunnelHTTPClientBase
net.i2p.i2ptunnel.I2PTunnelHTTPClient
public class I2PTunnelHTTPClient
Act as a mini HTTP proxy, handling various different types of requests, forwarding them through I2P appropriately, and displaying the reply. Supported request formats are:
$method http://$site[$port]/$path $protocolVersion or $method $path $protocolVersion\nHost: $site or $method http://i2p/$b64key/$path $protocolVersion or $method /$site/$path $protocolVersion or (deprecated) $method /eepproxy/$site/$path $protocolVersionNote that http://i2p/$b64key/... and /eepproxy/$site/... are not recommended in browsers or other user-visible applications, as relative links will not resolve correctly, cookies won't work, etc. Note that http://$b64key/... and http://$b64key.i2p/... are NOT supported, as a b64 key may contain '=' and '~', both of which are illegal host name characters. Rewrite as http://i2p/$b64key/... If the $site resolves with the I2P naming service, then it is directed towards that eepsite, otherwise it is directed towards this client's outproxy (typically "squid.i2p"). Only HTTP is supported (no HTTPS, ftp, mailto, etc). Both GET and POST have been tested, though other $methods should work.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class net.i2p.i2ptunnel.I2PTunnelHTTPClientBase |
---|
I2PTunnelHTTPClientBase.AuthResult |
Field Summary | |
---|---|
static String |
AUTH_REALM
|
static String |
DEFAULT_JUMP_SERVERS
|
static String |
LOCAL_SERVER
|
static String |
PROP_DISABLE_HELPER
|
static String |
PROP_JUMP_SERVERS
|
static String |
PROP_REFERER
all default to false |
static String |
PROP_USER_AGENT
|
static String |
PROP_VIA
|
Fields inherited from class net.i2p.i2ptunnel.I2PTunnelHTTPClientBase |
---|
__clientId, __requestId, _proxyList, BASIC_AUTH, DEFAULT_READ_TIMEOUT, DIGEST_AUTH, ERR_NO_OUTPROXY, PROP_AUTH, PROP_OUTPROXY_AUTH, PROP_OUTPROXY_PW, PROP_OUTPROXY_PW_PREFIX, PROP_OUTPROXY_USER, PROP_OUTPROXY_USER_PREFIX, PROP_PROXY_DIGEST_PREFIX, PROP_PROXY_DIGEST_SUFFIX, PROP_PW, PROP_PW_PREFIX, PROP_USER |
Fields inherited from class net.i2p.i2ptunnel.I2PTunnelClientBase |
---|
_clientId, _context, _log, _ownDest, DEFAULT_CONNECT_TIMEOUT, dest, l, mySockets, sockLock, sockMgr, ss |
Fields inherited from class net.i2p.i2ptunnel.I2PTunnelTask |
---|
open |
Constructor Summary | |
---|---|
I2PTunnelHTTPClient(int localPort,
Logging l,
boolean ownDest,
String wwwProxy,
EventDispatcher notifyThis,
I2PTunnel tunnel)
|
|
I2PTunnelHTTPClient(int localPort,
Logging l,
I2PSocketManager sockMgr,
I2PTunnel tunnel,
EventDispatcher notifyThis,
long clientId)
This constructor always starts the tunnel (ignoring the i2cp.delayOpen option). |
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} |
protected void |
clientConnectionRun(Socket s)
Manage a connection in a separate thread. |
boolean |
close(boolean forced)
Overridden to close internal socket too. |
protected I2PSocketOptions |
getDefaultOptions()
Create the default options (using the default timeout, etc). |
protected I2PSocketOptions |
getDefaultOptions(Properties overrides)
Create the default options (using the default timeout, etc). |
protected String |
getRealm()
|
void |
startRunning()
Actually start working on incoming connections. |
static void |
writeFooter(OutputStream out)
Public only for LocalHTTPServer, not for general use |
Methods inherited from class net.i2p.i2ptunnel.I2PTunnelHTTPClientBase |
---|
authorize, getAuthError, getErrorPage, getErrorPage, getPrefix, isDigestAuthRequired, selectProxy |
Methods inherited from class net.i2p.i2ptunnel.I2PTunnelClientBase |
---|
buildSocketManager, buildSocketManager, buildSocketManager, buildSocketManager, closeSocket, createI2PSocket, createI2PSocket, getClientExecutor, getListenHost, getLocalPort, getSocketManager, getSocketManager, getSocketManager, killClientExecutor, manageConnection, optionsUpdated, run, verifySocketManager |
Methods inherited from class net.i2p.i2ptunnel.I2PTunnelTask |
---|
connected, disconnected, errorOccurred, getId, getTunnel, isOpen, reportAbuse, routerDisconnected, setId, setName, setTunnel, toString |
Methods inherited from class net.i2p.util.EventDispatcherImpl |
---|
attachEventDispatcher, detachEventDispatcher, getEventDispatcher, getEvents, getEventValue, ignoreEvents, notifyEvent, unIgnoreEvents, waitEventValue |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface java.lang.Runnable |
---|
run |
Field Detail |
---|
public static final String AUTH_REALM
public static final String LOCAL_SERVER
public static final String PROP_REFERER
public static final String PROP_USER_AGENT
public static final String PROP_VIA
public static final String PROP_JUMP_SERVERS
public static final String PROP_DISABLE_HELPER
public static final String DEFAULT_JUMP_SERVERS
Constructor Detail |
---|
public I2PTunnelHTTPClient(int localPort, Logging l, I2PSocketManager sockMgr, I2PTunnel tunnel, EventDispatcher notifyThis, long clientId)
sockMgr
- the existing socket managerpublic I2PTunnelHTTPClient(int localPort, Logging l, boolean ownDest, String wwwProxy, EventDispatcher notifyThis, I2PTunnel tunnel) throws IllegalArgumentException
IllegalArgumentException
- if the I2PTunnel does not contain
valid config to contact the routerMethod Detail |
---|
protected I2PSocketOptions getDefaultOptions()
getDefaultOptions
in class I2PTunnelClientBase
protected I2PSocketOptions getDefaultOptions(Properties overrides)
getDefaultOptions
in class I2PTunnelClientBase
public void startRunning()
startRunning
in class I2PTunnelClientBase
public boolean close(boolean forced)
close
in class I2PTunnelClientBase
protected String getRealm()
getRealm
in class I2PTunnelHTTPClientBase
protected void clientConnectionRun(Socket s)
I2PTunnelClientBase
clientConnectionRun
in class I2PTunnelClientBase
public static void writeFooter(OutputStream out) throws IOException
IOException
protected static String _(String key)
protected static String _(String key, Object o)
protected static String _(String key, Object o, Object o2)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |