public class I2PTunnelHTTPServer extends I2PTunnelServer
Modifier and Type | Field and Description |
---|---|
static int |
DEFAULT_POST_BAN_TIME |
static int |
DEFAULT_POST_MAX |
static int |
DEFAULT_POST_TOTAL_BAN_TIME |
static int |
DEFAULT_POST_TOTAL_MAX |
static int |
DEFAULT_POST_WINDOW |
static String |
OPT_POST_BAN_TIME |
static String |
OPT_POST_MAX |
static String |
OPT_POST_TOTAL_BAN_TIME |
static String |
OPT_POST_TOTAL_MAX |
static String |
OPT_POST_WINDOW
all of these in SECONDS
|
static String |
OPT_REJECT_INPROXY |
static String |
OPT_REJECT_REFERER |
static String |
OPT_REJECT_USER_AGENTS |
static String |
OPT_USER_AGENTS |
__serverId, _clientExecutor, _log, bidir, i2pss, l, localPort, PROP_ALT_PKF, PROP_UNIQUE_LOCAL, PROP_USE_SSL, readTimeout, remoteHost, remotePort, slock, sockMgr, sslLock, task
open
Constructor and Description |
---|
I2PTunnelHTTPServer(InetAddress host,
int port,
File privkey,
String privkeyname,
String spoofHost,
Logging l,
EventDispatcher notifyThis,
I2PTunnel tunnel) |
I2PTunnelHTTPServer(InetAddress host,
int port,
InputStream privData,
String privkeyname,
String spoofHost,
Logging l,
EventDispatcher notifyThis,
I2PTunnel tunnel) |
I2PTunnelHTTPServer(InetAddress host,
int port,
String privData,
String spoofHost,
Logging l,
EventDispatcher notifyThis,
I2PTunnel tunnel) |
Modifier and Type | Method and Description |
---|---|
protected void |
blockingHandle(I2PSocket socket)
Called by the thread pool of I2PSocket handlers
|
boolean |
close(boolean forced)
Note that the tunnel can be reopened after this by calling startRunning().
|
protected static String |
formatHeaders(Map<String,List<String>> headers,
StringBuilder command) |
void |
optionsUpdated(I2PTunnel tunnel)
Update the I2PSocketManager.
|
(package private) static Map<String,List<String>> |
readHeaders(I2PSocket socket,
InputStream in,
StringBuilder command,
String[] skipHeaders,
I2PAppContext ctx)
From I2P to server: socket non-null, in null.
|
void |
startRunning()
Start running the I2PTunnelServer.
|
destroy, getHandlerCount, getReadTimeout, getSocket, getSocket, run, setReadTimeout, shouldUsePool
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 OPT_POST_WINDOW
public static final String OPT_POST_BAN_TIME
public static final String OPT_POST_TOTAL_BAN_TIME
public static final String OPT_POST_MAX
public static final String OPT_POST_TOTAL_MAX
public static final String OPT_REJECT_INPROXY
public static final String OPT_REJECT_REFERER
public static final String OPT_REJECT_USER_AGENTS
public static final String OPT_USER_AGENTS
public static final int DEFAULT_POST_WINDOW
public static final int DEFAULT_POST_BAN_TIME
public static final int DEFAULT_POST_TOTAL_BAN_TIME
public static final int DEFAULT_POST_MAX
public static final int DEFAULT_POST_TOTAL_MAX
public I2PTunnelHTTPServer(InetAddress host, int port, String privData, String spoofHost, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)
public I2PTunnelHTTPServer(InetAddress host, int port, File privkey, String privkeyname, String spoofHost, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)
public I2PTunnelHTTPServer(InetAddress host, int port, InputStream privData, String privkeyname, String spoofHost, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)
public void startRunning()
I2PTunnelServer
startRunning
in class I2PTunnelServer
public boolean close(boolean forced)
I2PTunnelServer
close
in class I2PTunnelServer
public void optionsUpdated(I2PTunnel tunnel)
I2PTunnelServer
optionsUpdated
in class I2PTunnelServer
protected void blockingHandle(I2PSocket socket)
blockingHandle
in class I2PTunnelServer
protected static String formatHeaders(Map<String,List<String>> headers, StringBuilder command)
static Map<String,List<String>> readHeaders(I2PSocket socket, InputStream in, StringBuilder command, String[] skipHeaders, I2PAppContext ctx) throws IOException
socket
- if null, use in as InputStreamin
- if null, use socket.getInputStream() as InputStreamcommand
- out parameter, first lineSocketTimeoutException
- if timeout is reached before newlineEOFException
- if EOF is reached before newlineLineTooLongException
- if one header too long, or too many headers, or total size too bigRequestTooLongException
- if too longBadRequestException
- on bad headersIOException
- on other errors in the underlying stream