Class I2PTunnelClient

All Implemented Interfaces:
Runnable, EventDispatcher

public class I2PTunnelClient extends I2PTunnelClientBase
  • Field Details

    • 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 Details

    • 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 Details

    • 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 class I2PTunnelClientBase
    • optionsUpdated

      public void optionsUpdated(I2PTunnel tunnel)
      Update the dests then call super.
      Overrides:
      optionsUpdated in class I2PTunnelClientBase
      Since:
      0.9.9
    • startRunning

      public void startRunning()
      Actually start working on incoming connections. Overridden to register with port mapper.
      Overrides:
      startRunning in class I2PTunnelClientBase
      Since:
      0.9.27
    • close

      public boolean close(boolean forced)
      Overridden to unregister with port mapper
      Overrides:
      close in class I2PTunnelClientBase
      Returns:
      success
      Since:
      0.9.27