net.i2p.i2ptunnel
Class I2PTunnelHTTPClient
java.lang.Object
net.i2p.i2ptunnel.I2PTunnelTask
net.i2p.i2ptunnel.I2PTunnelClientBase
net.i2p.i2ptunnel.I2PTunnelHTTPClient
- All Implemented Interfaces:
- java.lang.Runnable, EventDispatcher
public class I2PTunnelHTTPClient
- extends I2PTunnelClientBase
- implements java.lang.Runnable
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/$site/$path $protocolVersion
or
$method /$site/$path $protocolVersion
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.
Methods inherited from class net.i2p.i2ptunnel.I2PTunnelClientBase |
buildSocketManager, buildSocketManager, close, closeSocket, createI2PSocket, createI2PSocket, getListenHost, getLocalPort, getSocketManager, getSocketManager, manageConnection, run, startRunning |
Methods inherited from class net.i2p.i2ptunnel.I2PTunnelTask |
attachEventDispatcher, detachEventDispatcher, disconnected, errorOccurred, getEventDispatcher, getEvents, getEventValue, getId, getTunnel, ignoreEvents, isOpen, notifyEvent, reportAbuse, routerDisconnected, setId, setName, setTunnel, toString, 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 |
I2PTunnelHTTPClient
public I2PTunnelHTTPClient(int localPort,
Logging l,
boolean ownDest,
java.lang.String wwwProxy,
EventDispatcher notifyThis,
I2PTunnel tunnel)
throws java.lang.IllegalArgumentException
- Throws:
java.lang.IllegalArgumentException
- if the I2PTunnel does not contain
valid config to contact the router
getDefaultOptions
protected I2PSocketOptions getDefaultOptions()
- create the default options (using the default timeout, etc)
- Overrides:
getDefaultOptions
in class I2PTunnelClientBase
getDefaultOptions
protected I2PSocketOptions getDefaultOptions(java.util.Properties overrides)
- create the default options (using the default timeout, etc)
- Overrides:
getDefaultOptions
in class I2PTunnelClientBase
clientConnectionRun
protected void clientConnectionRun(java.net.Socket s)
- Description copied from class:
I2PTunnelClientBase
- Manage a connection in a separate thread. This only works if
you do not override manageConnection()
- Specified by:
clientConnectionRun
in class I2PTunnelClientBase