net.i2p.i2ptunnel.socks

## Class I2PSOCKSTunnel

- java.lang.Object
- - net.i2p.i2ptunnel.I2PTunnelTask
  - - net.i2p.i2ptunnel.I2PTunnelClientBase
    - - net.i2p.i2ptunnel.socks.I2PSOCKSTunnel

- All Implemented Interfaces:
    Runnable, EventDispatcher
  Direct Known Subclasses:
    I2PSOCKSIRCTunnel

      public class I2PSOCKSTunnel
      extends I2PTunnelClientBase

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `DEFAULT`
    `protected Destination` | `outProxyDest`
    `static String` | `PROP_PROXY_DEFAULT`
    `static String` | `PROP_PROXY_PREFIX` add "default" or port number

    - ### Fields inherited from class net.i2p.i2ptunnel.I2PTunnelClientBase

      `_clientId, _context, _log, _ownDest, dest, l, mySockets, sockLock, sockMgr`

    - ### Fields inherited from class net.i2p.i2ptunnel.I2PTunnelTask

      `open`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `I2PSOCKSTunnel(int localPort, Logging l, boolean ownDest, EventDispatcher notifyThis, I2PTunnel tunnel, String pkf)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `I2PSocketOptions` | `buildOptions(Properties overrides)` Because getDefaultOptions() in super() is protected
    `protected void` | `clientConnectionRun(Socket s)` Manage a connection in a separate thread.
    `List<String>` | `getDefaultProxies()`
    `List<String>` | `getProxies(int port)`
    `HashMap<String,List<String>>` | `getProxyMap()`

    - ### Methods inherited from class net.i2p.i2ptunnel.I2PTunnelClientBase

      `buildSocketManager, buildSocketManager, buildSocketManager, buildSocketManager, close, closeSocket, createI2PSocket, createI2PSocket, getDefaultOptions, getDefaultOptions, getListenHost, getLocalPort, getSocketManager, getSocketManager, getSocketManager, manageConnection, run, startRunning, verifySocketManager`

    - ### Methods inherited from class net.i2p.i2ptunnel.I2PTunnelTask

      `attachEventDispatcher, detachEventDispatcher, disconnected, errorOccurred, getEventDispatcher, getEvents, getEventValue, getId, getTunnel, ignoreEvents, isOpen, notifyEvent, reportAbuse, routerDisconnected, setId, setName, setTunnel, toString, unIgnoreEvents, waitEventValue`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### outProxyDest

          protected Destination outProxyDest

    - #### PROP_PROXY_PREFIX

          public static final String PROP_PROXY_PREFIX

      add "default" or port number
      See Also:
        Constant Field Values

    - #### DEFAULT

          public static final String DEFAULT

      See Also:
        Constant Field Values

    - #### PROP_PROXY_DEFAULT

          public static final String PROP_PROXY_DEFAULT

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### I2PSOCKSTunnel

          public I2PSOCKSTunnel(int localPort,
                        Logging l,
                        boolean ownDest,
                        EventDispatcher notifyThis,
                        I2PTunnel tunnel,
                        String pkf)

      Parameters:
        `pkf` - private key file name or null for transient key

  - ### Method Detail

    - #### 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()
      Specified by:
        `clientConnectionRun` in class `I2PTunnelClientBase`

    - #### getProxyMap

          public HashMap<String,List<String>> getProxyMap()

    - #### getProxies

          public List<String> getProxies(int port)

    - #### getDefaultProxies

          public List<String> getDefaultProxies()

    - #### buildOptions

          public I2PSocketOptions buildOptions(Properties overrides)

      Because getDefaultOptions() in super() is protected
      Since:
        0.8.2