public class I2PTunnelHTTPClient extends I2PTunnelHTTPClientBase implements Runnable
$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 $protocolVersionCONNECT (https) supported as of release 0.9.11. Note 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 and HTTPS are supported (no ftp, mailto, etc). Both GET and POST have been tested, though other $methods should work.
I2PTunnelHTTPClientBase.AuthResult, I2PTunnelHTTPClientBase.OnTimeout
Modifier and Type | Field and Description |
---|---|
static String |
AUTH_REALM |
static String |
DEFAULT_JUMP_SERVERS |
static String |
LOCAL_SERVER |
static String |
PROP_ACCEPT |
static String |
PROP_DISABLE_HELPER |
static String |
PROP_INTERNAL_SSL |
static String |
PROP_JUMP_SERVERS |
static String |
PROP_REFERER
all default to false
|
static String |
PROP_SSL_OUTPROXIES |
static String |
PROP_USER_AGENT |
static String |
PROP_VIA |
__requestId, _proxyList, BASIC_AUTH, DEFAULT_READ_TIMEOUT, DIGEST_AUTH, ERR_DESTINATION_UNKNOWN, 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_USE_OUTPROXY_PLUGIN, PROP_USER, SUCCESS_RESPONSE
_clientId, _context, _log, _ownDest, DEFAULT_CONNECT_TIMEOUT, dest, l, listenerReady, mySockets, PROP_USE_SSL, sockLock, sockMgr, ss
open
Constructor and Description |
---|
I2PTunnelHTTPClient(int localPort,
Logging l,
boolean ownDest,
String wwwProxy,
EventDispatcher notifyThis,
I2PTunnel tunnel)
As of 0.9.20 this is fast, and does NOT connect the manager to the router,
or open the local socket.
|
I2PTunnelHTTPClient(int localPort,
Logging l,
I2PSocketManager sockMgr,
I2PTunnel tunnel,
EventDispatcher notifyThis,
long clientId)
This constructor always starts the tunnel (ignoring the i2cp.delayOpen option).
|
Modifier and Type | Method and Description |
---|---|
protected void |
clientConnectionRun(Socket s)
Note: This does not handle RFC 2616 header line splitting,
which is obsoleted in RFC 7230.
|
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.
|
_t, _t, _t, authorize, getAuthError, getErrorPage, getErrorPage, getPrefix, handleClientException, handleI2PSocketException, isDigestAuthRequired, optionsUpdated, selectProxy, writeErrorMessage, writeErrorMessage, writeErrorMessage, writeErrorMessage, writeFooter, writeFooter
addSubsession, buildSocketManager, buildSocketManager, buildSocketManager, buildSocketManager, closeSocket, createI2PSocket, createI2PSocket, createI2PSocket, destroy, getListenHost, getLocalPort, getSocketManager, getSocketManager, getSocketManager, killSharedClient, manageConnection, run, verifySocketManager
connected, disconnected, errorOccurred, getId, getTunnel, isOpen, reportAbuse, routerDisconnected, setId, setName, setTunnel, toString
attachEventDispatcher, detachEventDispatcher, getEventDispatcher, getEvents, getEventValue, ignoreEvents, notifyEvent, unIgnoreEvents, waitEventValue
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 PROP_SSL_OUTPROXIES
public static final String PROP_ACCEPT
public static final String PROP_INTERNAL_SSL
public static final String DEFAULT_JUMP_SERVERS
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 routerprotected 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)
clientConnectionRun
in class I2PTunnelClientBase