## net.i2p.i2ptunnel
Class I2PTunnelConnectClient

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

All Implemented Interfaces:
  Runnable, EventDispatcher

    public class I2PTunnelConnectClient

extends I2PTunnelHTTPClientBase
implements Runnable

Supports the following:

       (where protocol is generally HTTP/1.1 but is ignored)
       (where host is one of:
          example.i2p
          52chars.b32.i2p
          516+charsbase64
          example.com (sent to one of the configured proxies)
       )

       (port and protocol are ignored for i2p destinations)
       CONNECT host
       CONNECT host protocol
       CONNECT host:port
       CONNECT host:port protocol (this is the standard)

Additional lines after the CONNECT line but before the blank line are ignored and stripped. The CONNECT line is removed for .i2p accesses but passed along for outproxy accesses. Ref:

      INTERNET-DRAFT                                              Ari Luotonen
      Expires: September 26, 1997          Netscape Communications Corporation
                           March 26, 1997
                         Tunneling SSL Through a WWW Proxy

Author:
  zzz a stripped-down I2PTunnelHTTPClient

Field Summary

Fields inherited from class net.i2p.i2ptunnel.I2PTunnelHTTPClientBase
`__clientId, __requestId, _errorDir, _proxyList, DEFAULT_READ_TIMEOUT, ERR_NO_OUTPROXY, PROP_AUTH, PROP_OUTPROXY_AUTH, PROP_OUTPROXY_PW, PROP_OUTPROXY_PW_PREFIX, PROP_OUTPROXY_USER, PROP_OUTPROXY_USER_PREFIX, PROP_PW, PROP_PW_PREFIX, 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
`I2PTunnelConnectClient(int localPort, Logging l, boolean ownDest, String wwwProxy, EventDispatcher notifyThis, I2PTunnel tunnel)`

Method Summary
`protected void` `clientConnectionRun(Socket s)` Manage a connection in a separate thread.
`protected I2PSocketOptions` `getDefaultOptions()` create the default options (using the default timeout, etc)

Methods inherited from class net.i2p.i2ptunnel.I2PTunnelHTTPClientBase
`authorize, getPrefix, selectProxy`

Methods inherited from class net.i2p.i2ptunnel.I2PTunnelClientBase
`buildSocketManager, buildSocketManager, buildSocketManager, buildSocketManager, close, closeSocket, createI2PSocket, createI2PSocket, 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`

Constructor Detail

### I2PTunnelConnectClient

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

Throws:
  `IllegalArgumentException` - if the I2PTunnel does not contain valid config to contact the router

Method Detail

### getDefaultOptions

    protected I2PSocketOptions getDefaultOptions()

  create the default options (using the default timeout, etc)

  Overrides:
    `getDefaultOptions` in class `I2PTunnelClientBase`

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