net.i2p.i2ptunnel

## Class I2PTunnelHTTPClientBase

- java.lang.Object
- - net.i2p.i2ptunnel.I2PTunnelTask
  - - net.i2p.i2ptunnel.I2PTunnelClientBase
    - - net.i2p.i2ptunnel.I2PTunnelHTTPClientBase

- All Implemented Interfaces:
    Runnable, EventDispatcher
  Direct Known Subclasses:
    I2PTunnelConnectClient, I2PTunnelHTTPClient

      public abstract class I2PTunnelHTTPClientBase
      extends I2PTunnelClientBase
      implements Runnable

  Common things for HTTPClient and ConnectClient Retrofit over them in 0.8.2
  Since:
    0.8.2

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected static long` | `__clientId` used to assign unique IDs to the threads / clients.
    `protected static long` | `__requestId`
    `protected static File` | `_errorDir`
    `protected List<String>` | `_proxyList`
    `protected static int` | `DEFAULT_READ_TIMEOUT`
    `protected static byte[]` | `ERR_NO_OUTPROXY`
    `static String` | `PROP_AUTH` all auth @since 0.8.2
    `static String` | `PROP_OUTPROXY_AUTH`
    `static String` | `PROP_OUTPROXY_PW`
    `static String` | `PROP_OUTPROXY_PW_PREFIX`
    `static String` | `PROP_OUTPROXY_USER`
    `static String` | `PROP_OUTPROXY_USER_PREFIX` passwords for specific outproxies may be added with outproxyUsername.fooproxy.i2p=user and outproxyPassword.fooproxy.i2p=pw
    `static String` | `PROP_PW`
    `static String` | `PROP_PW_PREFIX` additional users may be added with proxyPassword.user=pw
    `static String` | `PROP_USER`

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

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

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

      `open`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `I2PTunnelHTTPClientBase(int localPort, boolean ownDest, Logging l, EventDispatcher notifyThis, String handlerName, I2PTunnel tunnel)`
    `I2PTunnelHTTPClientBase(int localPort, Logging l, I2PSocketManager sktMgr, I2PTunnel tunnel, EventDispatcher notifyThis, long clientId)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected boolean` | `authorize(Socket s, long requestId, String authorization)`
    `protected String` | `getPrefix(long requestId)`
    `protected String` | `selectProxy()`

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

      `buildSocketManager, buildSocketManager, buildSocketManager, buildSocketManager, clientConnectionRun, 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`

    - ### Methods inherited from interface java.lang.Runnable

      `run`

- - ### Field Detail

    - #### _proxyList

          protected final List<String> _proxyList

    - #### ERR_NO_OUTPROXY

          protected static final byte[] ERR_NO_OUTPROXY

    - #### __clientId

          protected static volatile long __clientId

      used to assign unique IDs to the threads / clients. no logic or functionality

    - #### _errorDir

          protected static final File _errorDir

    - #### DEFAULT_READ_TIMEOUT

          protected static final int DEFAULT_READ_TIMEOUT

      See Also:
        Constant Field Values

    - #### __requestId

          protected static long __requestId

    - #### PROP_AUTH

          public static final String PROP_AUTH

      all auth @since 0.8.2
      See Also:
        Constant Field Values

    - #### PROP_USER

          public static final String PROP_USER

      See Also:
        Constant Field Values

    - #### PROP_PW

          public static final String PROP_PW

      See Also:
        Constant Field Values

    - #### PROP_PW_PREFIX

          public static final String PROP_PW_PREFIX

      additional users may be added with proxyPassword.user=pw
      See Also:
        Constant Field Values

    - #### PROP_OUTPROXY_AUTH

          public static final String PROP_OUTPROXY_AUTH

      See Also:
        Constant Field Values

    - #### PROP_OUTPROXY_USER

          public static final String PROP_OUTPROXY_USER

      See Also:
        Constant Field Values

    - #### PROP_OUTPROXY_PW

          public static final String PROP_OUTPROXY_PW

      See Also:
        Constant Field Values

    - #### PROP_OUTPROXY_USER_PREFIX

          public static final String PROP_OUTPROXY_USER_PREFIX

      passwords for specific outproxies may be added with outproxyUsername.fooproxy.i2p=user and outproxyPassword.fooproxy.i2p=pw
      See Also:
        Constant Field Values

    - #### PROP_OUTPROXY_PW_PREFIX

          public static final String PROP_OUTPROXY_PW_PREFIX

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### I2PTunnelHTTPClientBase

          public I2PTunnelHTTPClientBase(int localPort,
                                 boolean ownDest,
                                 Logging l,
                                 EventDispatcher notifyThis,
                                 String handlerName,
                                 I2PTunnel tunnel)
                                  throws IllegalArgumentException

      Throws:
        `IllegalArgumentException`

    - #### I2PTunnelHTTPClientBase

          public I2PTunnelHTTPClientBase(int localPort,
                                 Logging l,
                                 I2PSocketManager sktMgr,
                                 I2PTunnel tunnel,
                                 EventDispatcher notifyThis,
                                 long clientId)
                                  throws IllegalArgumentException

      Throws:
        `IllegalArgumentException`

  - ### Method Detail

    - #### getPrefix

          protected String getPrefix(long requestId)

    - #### selectProxy

          protected String selectProxy()

    - #### authorize

          protected boolean authorize(Socket s,
                          long requestId,
                          String authorization)

      Parameters:
        `authorization` - may be null
      Returns:
        success