net.i2p.i2ptunnel

## Class I2PTunnelHTTPBidirProxy

- java.lang.Object
- - net.i2p.util.EventDispatcherImpl
  - - net.i2p.i2ptunnel.I2PTunnelTask
    - - net.i2p.i2ptunnel.I2PTunnelClientBase
      - - net.i2p.i2ptunnel.I2PTunnelHTTPClientBase
        - - net.i2p.i2ptunnel.I2PTunnelHTTPClient
          - - net.i2p.i2ptunnel.I2PTunnelHTTPBidirProxy

- All Implemented Interfaces:
    Runnable, EventDispatcher

      public class I2PTunnelHTTPBidirProxy
      extends I2PTunnelHTTPClient
      implements Runnable

  HTTP proxy reusing server's I2PSocketManager without outproxy capability.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class net.i2p.i2ptunnel.I2PTunnelHTTPClientBase

      `I2PTunnelHTTPClientBase.AuthResult, I2PTunnelHTTPClientBase.OnProxySuccess, I2PTunnelHTTPClientBase.OnTimeout`

  - ### Field Summary

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

      `AUTH_REALM, BROWSER_KEEPALIVE_TIMEOUT, DEFAULT_JUMP_SERVERS, LOCAL_SERVER, OPT_KEEPALIVE_BROWSER, OPT_KEEPALIVE_I2P, PROP_ACCEPT, PROP_DISABLE_HELPER, PROP_INTERNAL_SSL, PROP_JUMP_SERVERS, PROP_REFERER, PROP_SSL_SET, PROP_USER_AGENT, PROP_VIA`

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

      `__requestId, _proxyList, BASIC_AUTH, BROWSER_READ_TIMEOUT, DEFAULT_READ_TIMEOUT, DIGEST_AUTH, ERR_DESTINATION_UNKNOWN, INITIAL_SO_TIMEOUT, PROP_AUTH, PROP_OUTPROXY_AUTH, PROP_OUTPROXY_PW, PROP_OUTPROXY_PW_PREFIX, PROP_OUTPROXY_USER, PROP_OUTPROXY_USER_PREFIX, PROP_PROXY_DIGEST_PREFIX, PROP_PROXY_DIGEST_SHA256_SUFFIX, PROP_PROXY_DIGEST_SUFFIX, PROP_PW, PROP_PW_PREFIX, PROP_SSL_OUTPROXIES, PROP_USE_OUTPROXY_PLUGIN, PROP_USER, SUCCESS_RESPONSE`

    - ### 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, tunnel`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `I2PTunnelHTTPBidirProxy(int localPort, Logging l, I2PSocketManager sockMgr, I2PTunnel tunnel, EventDispatcher notifyThis, long clientId)` As of 0.9.20 this is fast, and does NOT connect the manager to the router, or open the local socket.

  - ### Method Summary

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

      `clientConnectionRun, close, getDefaultOptions, getDefaultOptions, getRealm, startRunning`

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

      `_t, _t, _t, authorize, decodeIDNHost, getAuthError, getErrorPage, getErrorPage, getPrefix, handleClientException, handleI2PSocketException, isDigestAuthRequired, noteProxyResult, optionsUpdated, selectProxy, selectSSLProxy, writeErrorMessage, writeErrorMessage, writeErrorMessage, writeErrorMessage, writeFooter, writeFooter`

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

      `buildSocketManager, buildSocketManager, buildSocketManager, buildSocketManager, closeSocket, createI2PSocket, createI2PSocket, createI2PSocket, destroy, getListenHost, getLocalPort, getSocketManager, getSocketManager, getSocketManager, killSharedClient, manageConnection, run, verifySocketManager`

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

      `connected, disconnected, errorOccurred, getBooleanOption, 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`

    - ### 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`

- - ### Constructor Detail

    - #### I2PTunnelHTTPBidirProxy

          public I2PTunnelHTTPBidirProxy(int localPort,
                                         Logging l,
                                         I2PSocketManager sockMgr,
                                         I2PTunnel tunnel,
                                         EventDispatcher notifyThis,
                                         long clientId)

      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.
      Throws:
        `IllegalArgumentException` - if the I2PTunnel does not contain valid config to contact the router