java.lang.Runnable
, EventDispatcher
I2PTunnelConnectClient
, I2PTunnelHTTPClient
public abstract class I2PTunnelHTTPClientBase extends I2PTunnelClientBase implements java.lang.Runnable
修飾子とタイプ | クラス | 説明 |
---|---|---|
protected static class |
I2PTunnelHTTPClientBase.AuthResult |
|
protected class |
I2PTunnelHTTPClientBase.OnTimeout |
修飾子とタイプ | フィールド | 説明 |
---|---|---|
protected static java.util.concurrent.atomic.AtomicLong |
__requestId |
|
protected java.util.List<java.lang.String> |
_proxyList |
|
static java.lang.String |
BASIC_AUTH |
|
protected static int |
DEFAULT_READ_TIMEOUT |
|
static java.lang.String |
DIGEST_AUTH |
|
protected static java.lang.String |
ERR_DESTINATION_UNKNOWN |
|
protected static java.lang.String |
ERR_NO_OUTPROXY |
|
protected static int |
INITIAL_SO_TIMEOUT |
This is a standard soTimeout, not a total timeout.
|
static java.lang.String |
PROP_AUTH |
all auth @since 0.8.2
|
static java.lang.String |
PROP_OUTPROXY_AUTH |
|
static java.lang.String |
PROP_OUTPROXY_PW |
|
static java.lang.String |
PROP_OUTPROXY_PW_PREFIX |
|
static java.lang.String |
PROP_OUTPROXY_USER |
|
static java.lang.String |
PROP_OUTPROXY_USER_PREFIX |
passwords for specific outproxies may be added with outproxyUsername.fooproxy.i2p=user and outproxyPassword.fooproxy.i2p=pw
|
static java.lang.String |
PROP_PROXY_DIGEST_PREFIX |
new style MD5 auth
|
static java.lang.String |
PROP_PROXY_DIGEST_SUFFIX |
|
static java.lang.String |
PROP_PW |
|
static java.lang.String |
PROP_PW_PREFIX |
additional users may be added with proxyPassword.user=pw
|
static java.lang.String |
PROP_USE_OUTPROXY_PLUGIN |
|
static java.lang.String |
PROP_USER |
|
protected static java.lang.String |
SUCCESS_RESPONSE |
_clientId, _context, _log, _ownDest, DEFAULT_CONNECT_TIMEOUT, dest, l, listenerReady, mySockets, PROP_USE_SSL, sockLock, sockMgr, ss
open
コンストラクタ | 説明 |
---|---|
I2PTunnelHTTPClientBase(int localPort,
boolean ownDest,
Logging l,
EventDispatcher notifyThis,
java.lang.String handlerName,
I2PTunnel tunnel) |
|
I2PTunnelHTTPClientBase(int localPort,
Logging l,
I2PSocketManager sktMgr,
I2PTunnel tunnel,
EventDispatcher notifyThis,
long clientId) |
This constructor always starts the tunnel (ignoring the i2cp.delayOpen option).
|
修飾子とタイプ | メソッド | 説明 |
---|---|---|
protected java.lang.String |
_t(java.lang.String key) |
Translate
|
protected java.lang.String |
_t(java.lang.String key,
java.lang.Object o) |
Translate
{0}
|
protected java.lang.String |
_t(java.lang.String key,
java.lang.Object o,
java.lang.Object o2) |
Translate
{0} and {1}
|
protected I2PTunnelHTTPClientBase.AuthResult |
authorize(java.net.Socket s,
long requestId,
java.lang.String method,
java.lang.String authorization) |
Authorization
Ref: RFC 2617
If the socket is an InternalSocket, no auth required.
|
protected java.lang.String |
getAuthError(boolean isStale) |
What to send if digest auth fails
|
protected java.lang.String |
getErrorPage(java.lang.String base,
java.lang.String backup) |
foo => errordir/foo-header_xx.ht for lang xx, or errordir/foo-header.ht,
or the backup byte array on fail.
|
protected static java.lang.String |
getErrorPage(I2PAppContext ctx,
java.lang.String base,
java.lang.String backup) |
foo => errordir/foo-header_xx.ht for lang xx, or errordir/foo-header.ht,
or the backup byte array on fail.
|
protected java.lang.String |
getPrefix(long requestId) |
|
protected abstract java.lang.String |
getRealm() |
|
protected void |
handleClientException(java.lang.Exception ex,
java.io.OutputStream out,
java.lang.String targetRequest,
boolean usingWWWProxy,
java.lang.String wwwProxy,
long requestId) |
|
protected void |
handleI2PSocketException(I2PSocketException ise,
java.io.OutputStream out,
java.lang.String targetRequest,
boolean usingWWWProxy,
java.lang.String wwwProxy) |
Generate an error page based on the status code
in our custom exception.
|
protected boolean |
isDigestAuthRequired() |
|
void |
optionsUpdated(I2PTunnel tunnel) |
Update the outproxy list then call super.
|
protected java.lang.String |
selectProxy() |
|
protected void |
writeErrorMessage(java.lang.String errMessage,
java.io.OutputStream out,
java.lang.String targetRequest,
boolean usingWWWProxy,
java.lang.String wwwProxy) |
No jump servers or extra message
|
protected void |
writeErrorMessage(java.lang.String errMessage,
java.io.OutputStream out,
java.lang.String targetRequest,
boolean usingWWWProxy,
java.lang.String wwwProxy,
java.lang.String jumpServers) |
No extra message
|
protected void |
writeErrorMessage(java.lang.String errMessage,
java.lang.String extraMessage,
java.io.OutputStream out,
java.lang.String targetRequest,
boolean usingWWWProxy,
java.lang.String wwwProxy) |
No jump servers
|
protected void |
writeErrorMessage(java.lang.String errMessage,
java.lang.String extraMessage,
java.io.OutputStream outs,
java.lang.String targetRequest,
boolean usingWWWProxy,
java.lang.String wwwProxy,
java.lang.String jumpServers) |
|
static void |
writeFooter(java.io.OutputStream out) |
Flushes.
|
static void |
writeFooter(java.io.Writer out) |
Flushes.
|
attachEventDispatcher, detachEventDispatcher, getEventDispatcher, getEvents, getEventValue, ignoreEvents, notifyEvent, unIgnoreEvents, waitEventValue
addSubsession, buildSocketManager, buildSocketManager, buildSocketManager, buildSocketManager, clientConnectionRun, close, closeSocket, createI2PSocket, createI2PSocket, createI2PSocket, destroy, getDefaultOptions, getDefaultOptions, getListenHost, getLocalPort, getSocketManager, getSocketManager, getSocketManager, killSharedClient, manageConnection, run, startRunning, verifySocketManager
connected, disconnected, errorOccurred, getId, getTunnel, isOpen, reportAbuse, routerDisconnected, setId, setName, setTunnel, toString
public static final java.lang.String PROP_USE_OUTPROXY_PLUGIN
protected static final int INITIAL_SO_TIMEOUT
protected final java.util.List<java.lang.String> _proxyList
protected static final java.lang.String ERR_NO_OUTPROXY
protected static final java.lang.String ERR_DESTINATION_UNKNOWN
protected static final java.lang.String SUCCESS_RESPONSE
protected static final int DEFAULT_READ_TIMEOUT
protected static final java.util.concurrent.atomic.AtomicLong __requestId
public static final java.lang.String PROP_AUTH
public static final java.lang.String PROP_USER
public static final java.lang.String PROP_PW
public static final java.lang.String PROP_PW_PREFIX
public static final java.lang.String PROP_OUTPROXY_AUTH
public static final java.lang.String PROP_OUTPROXY_USER
public static final java.lang.String PROP_OUTPROXY_PW
public static final java.lang.String PROP_OUTPROXY_USER_PREFIX
public static final java.lang.String PROP_OUTPROXY_PW_PREFIX
public static final java.lang.String PROP_PROXY_DIGEST_PREFIX
public static final java.lang.String PROP_PROXY_DIGEST_SUFFIX
public static final java.lang.String BASIC_AUTH
public static final java.lang.String DIGEST_AUTH
public I2PTunnelHTTPClientBase(int localPort, boolean ownDest, Logging l, EventDispatcher notifyThis, java.lang.String handlerName, I2PTunnel tunnel) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentException
public I2PTunnelHTTPClientBase(int localPort, Logging l, I2PSocketManager sktMgr, I2PTunnel tunnel, EventDispatcher notifyThis, long clientId) throws java.lang.IllegalArgumentException
sktMgr
- the existing socket managerjava.lang.IllegalArgumentException
protected java.lang.String getPrefix(long requestId)
protected java.lang.String selectProxy()
protected abstract java.lang.String getRealm()
public void optionsUpdated(I2PTunnel tunnel)
optionsUpdated
クラス内 I2PTunnelClientBase
protected boolean isDigestAuthRequired()
protected I2PTunnelHTTPClientBase.AuthResult authorize(java.net.Socket s, long requestId, java.lang.String method, java.lang.String authorization)
method
- GET, POST, etc.authorization
- may be null, the full auth line e.g. "Basic lskjlksjf"protected java.lang.String getAuthError(boolean isStale)
protected java.lang.String getErrorPage(java.lang.String base, java.lang.String backup)
protected static java.lang.String getErrorPage(I2PAppContext ctx, java.lang.String base, java.lang.String backup)
protected void handleClientException(java.lang.Exception ex, java.io.OutputStream out, java.lang.String targetRequest, boolean usingWWWProxy, java.lang.String wwwProxy, long requestId)
ex
- may be nullprotected void handleI2PSocketException(I2PSocketException ise, java.io.OutputStream out, java.lang.String targetRequest, boolean usingWWWProxy, java.lang.String wwwProxy)
ise
- may be nullprotected void writeErrorMessage(java.lang.String errMessage, java.io.OutputStream out, java.lang.String targetRequest, boolean usingWWWProxy, java.lang.String wwwProxy) throws java.io.IOException
java.io.IOException
protected void writeErrorMessage(java.lang.String errMessage, java.io.OutputStream out, java.lang.String targetRequest, boolean usingWWWProxy, java.lang.String wwwProxy, java.lang.String jumpServers) throws java.io.IOException
jumpServers
- comma- or space-separated list, or nulljava.io.IOException
protected void writeErrorMessage(java.lang.String errMessage, java.lang.String extraMessage, java.io.OutputStream out, java.lang.String targetRequest, boolean usingWWWProxy, java.lang.String wwwProxy) throws java.io.IOException
extraMessage
- extra message or null, will be HTML-escapedjava.io.IOException
protected void writeErrorMessage(java.lang.String errMessage, java.lang.String extraMessage, java.io.OutputStream outs, java.lang.String targetRequest, boolean usingWWWProxy, java.lang.String wwwProxy, java.lang.String jumpServers) throws java.io.IOException
jumpServers
- comma- or space-separated list, or nullextraMessage
- extra message or null, will be HTML-escapedjava.io.IOException
public static void writeFooter(java.io.OutputStream out) throws java.io.IOException
java.io.IOException
public static void writeFooter(java.io.Writer out) throws java.io.IOException
java.io.IOException
protected java.lang.String _t(java.lang.String key)
protected java.lang.String _t(java.lang.String key, java.lang.Object o)
protected java.lang.String _t(java.lang.String key, java.lang.Object o, java.lang.Object o2)