Package net.i2p.i2ptunnel
Class I2PTunnelClient
- java.lang.Object
-
- net.i2p.util.EventDispatcherImpl
-
- net.i2p.i2ptunnel.I2PTunnelTask
-
- net.i2p.i2ptunnel.I2PTunnelClientBase
-
- net.i2p.i2ptunnel.I2PTunnelClient
-
- All Implemented Interfaces:
Runnable
,EventDispatcher
public class I2PTunnelClient extends I2PTunnelClientBase
-
-
Field Summary
Fields Modifier and Type Field Description protected List<Destination>
dests
Deprecated.why protected? Is anybody using out-of-tree? Protected from the beginning (2004)protected long
readTimeout
-
Fields inherited from class net.i2p.i2ptunnel.I2PTunnelClientBase
_clientId, _context, _log, _ownDest, DEFAULT_CONNECT_TIMEOUT, dest, l, listenerReady, mySockets, PROP_USE_SSL, sockLock, sockMgr, ss
-
Fields inherited from class net.i2p.i2ptunnel.I2PTunnelTask
open
-
-
Constructor Summary
Constructors Constructor Description I2PTunnelClient(int localPort, String destinations, Logging l, boolean ownDest, EventDispatcher notifyThis, I2PTunnel tunnel, String pkf)
As of 0.9.20 this is fast, and does NOT connect the manager to the router, or open the local socket.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
clientConnectionRun(Socket s)
Manage a connection in a separate thread.boolean
close(boolean forced)
Overridden to unregister with port mapperlong
getReadTimeout()
Get the read idle timeout for newly-created connections (in milliseconds).void
optionsUpdated(I2PTunnel tunnel)
Update the dests then call super.void
setReadTimeout(long ms)
Set the read idle timeout for newly-created connections (in milliseconds).void
startRunning()
Actually start working on incoming connections.-
Methods inherited from class net.i2p.i2ptunnel.I2PTunnelClientBase
addSubsession, buildSocketManager, buildSocketManager, buildSocketManager, buildSocketManager, closeSocket, createI2PSocket, createI2PSocket, createI2PSocket, destroy, getDefaultOptions, getDefaultOptions, getListenHost, getLocalPort, getSocketManager, getSocketManager, getSocketManager, killSharedClient, manageConnection, 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
-
-
-
-
Field Detail
-
dests
@Deprecated protected List<Destination> dests
Deprecated.why protected? Is anybody using out-of-tree? Protected from the beginning (2004)list of Destination objects that we point at
-
readTimeout
protected long readTimeout
-
-
Constructor Detail
-
I2PTunnelClient
public I2PTunnelClient(int localPort, String destinations, Logging l, boolean ownDest, EventDispatcher notifyThis, I2PTunnel tunnel, String pkf) throws IllegalArgumentException
As of 0.9.20 this is fast, and does NOT connect the manager to the router, or open the local socket. You MUST call startRunning() for that.- Parameters:
destinations
- peers we target, comma- or space-separated. Since 0.9.9, each dest may be appended with :port- Throws:
IllegalArgumentException
- if the I2PTunnel does not contain valid config to contact the router
-
-
Method Detail
-
setReadTimeout
public void setReadTimeout(long ms)
Set the read idle timeout for newly-created connections (in milliseconds). After this time expires without data being reached from the I2P network, the connection itself will be closed. Less than or equal to 0 means forever. Default -1 (forever) as of 0.9.36 for standard tunnels, but extending classes may override. Prior to that, default was 5 minutes, but did not work due to streaming bugs. Applies only to future connections; calling this does not affect existing connections.- Parameters:
ms
- in ms
-
getReadTimeout
public long getReadTimeout()
Get the read idle timeout for newly-created connections (in milliseconds). Less than or equal to 0 means forever. Default -1 (forever) as of 0.9.36 for standard tunnels, but extending classes may override. Prior to that, default was 5 minutes, but did not work due to streaming bugs.- Returns:
- in ms
-
clientConnectionRun
protected void clientConnectionRun(Socket s)
Description copied from class:I2PTunnelClientBase
Manage a connection in a separate thread. This only works if you do not override manageConnection(). This is run in a thread from an unlimited-size thread pool, so it may block or run indefinitely.- Specified by:
clientConnectionRun
in classI2PTunnelClientBase
-
optionsUpdated
public void optionsUpdated(I2PTunnel tunnel)
Update the dests then call super.- Overrides:
optionsUpdated
in classI2PTunnelClientBase
- Since:
- 0.9.9
-
startRunning
public void startRunning()
Actually start working on incoming connections. Overridden to register with port mapper.- Overrides:
startRunning
in classI2PTunnelClientBase
- Since:
- 0.9.27
-
close
public boolean close(boolean forced)
Overridden to unregister with port mapper- Overrides:
close
in classI2PTunnelClientBase
- Returns:
- success
- Since:
- 0.9.27
-
-