net.i2p.i2ptunnel
Class I2PTunnelConnectClient

java.lang.Object
  extended by net.i2p.util.EventDispatcherImpl
      extended by net.i2p.i2ptunnel.I2PTunnelTask
          extended by net.i2p.i2ptunnel.I2PTunnelClientBase
              extended by net.i2p.i2ptunnel.I2PTunnelHTTPClientBase
                  extended by 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

Nested Class Summary
 
Nested classes/interfaces inherited from class net.i2p.i2ptunnel.I2PTunnelHTTPClientBase
I2PTunnelHTTPClientBase.AuthResult
 
Field Summary
static String AUTH_REALM
           
 
Fields inherited from class net.i2p.i2ptunnel.I2PTunnelHTTPClientBase
__clientId, __requestId, _proxyList, BASIC_AUTH, DEFAULT_READ_TIMEOUT, DIGEST_AUTH, ERR_NO_OUTPROXY, 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_SUFFIX, PROP_PW, PROP_PW_PREFIX, PROP_USER
 
Fields inherited from class net.i2p.i2ptunnel.I2PTunnelClientBase
_clientId, _context, _log, _ownDest, DEFAULT_CONNECT_TIMEOUT, dest, l, mySockets, sockLock, sockMgr, ss
 
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.
 boolean close(boolean forced)
           
protected  I2PSocketOptions getDefaultOptions()
          Create the default options (using the default timeout, etc).
protected  String getRealm()
           
 void startRunning()
          Actually start working on incoming connections.
 
Methods inherited from class net.i2p.i2ptunnel.I2PTunnelHTTPClientBase
authorize, getAuthError, getErrorPage, getErrorPage, getPrefix, isDigestAuthRequired, selectProxy
 
Methods inherited from class net.i2p.i2ptunnel.I2PTunnelClientBase
buildSocketManager, buildSocketManager, buildSocketManager, buildSocketManager, closeSocket, createI2PSocket, createI2PSocket, getClientExecutor, getDefaultOptions, getListenHost, getLocalPort, getSocketManager, getSocketManager, getSocketManager, killClientExecutor, manageConnection, optionsUpdated, run, verifySocketManager
 
Methods inherited from class net.i2p.i2ptunnel.I2PTunnelTask
connected, disconnected, errorOccurred, 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
 

Field Detail

AUTH_REALM

public static final String AUTH_REALM
See Also:
Constant Field Values
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). Warning, this does not make a copy of I2PTunnel's client options, it modifies them directly.

Overrides:
getDefaultOptions in class I2PTunnelClientBase

startRunning

public void startRunning()
Description copied from class: I2PTunnelClientBase
Actually start working on incoming connections. *Must* be called by derived classes after initialization.

Overrides:
startRunning in class I2PTunnelClientBase

close

public boolean close(boolean forced)
Overrides:
close in class I2PTunnelClientBase

getRealm

protected String getRealm()
Specified by:
getRealm in class I2PTunnelHTTPClientBase
Since:
0.9.4

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