Package net.i2p.i2ptunnel

Implementation of preconfigured tunnels, both for clients and servers, and a UI for adding more and editing the configuration.

See:
          Description

Interface Summary
I2PTunnel.ConnectionEventListener Callback routine to find out
I2PTunnelRunner.FailCallback For use in new constructor
Logging  
 

Class Summary
ConnThrottler Count how often something happens with a particular peer and all peers.
GunzipOutputStream Gunzip implementation per RFC 1952, reusing java's standard CRC32 and Inflater and InflaterOutputStream implementations.
HTTPResponseOutputStream This does the transparent gzip decompression on the client side.
I2Ping Warning - not necessarily a stable API.
I2PTunnel An I2PTunnel tracks one or more I2PTunnelTasks and one or more I2PSessions.
I2PTunnelClient  
I2PTunnelClientBase  
I2PTunnelConnectClient Supports the following:
I2PTunnelHTTPBidirProxy Reuse HTTP server's I2PSocketManager for a proxy with no outproxy capability.
I2PTunnelHTTPBidirServer  
I2PTunnelHTTPClient Act as a mini HTTP proxy, handling various different types of requests, forwarding them through I2P appropriately, and displaying the reply.
I2PTunnelHTTPClientBase Common things for HTTPClient and ConnectClient Retrofit over them in 0.8.2
I2PTunnelHTTPClientRunner Override the response with a stream filtering the HTTP headers received.
I2PTunnelHTTPServer Simple extension to the I2PTunnelServer that filters the HTTP headers sent from the client to the server, replacing the Host header with whatever this instance has been configured with, and if the browser set Accept-encoding: x-i2p-gzip, gzip the http message body and set Content-encoding: x-i2p-gzip.
I2PTunnelIRCClient Todo: Can we extend I2PTunnelClient instead and remove some duplicated code?
I2PTunnelIRCServer Simple extension to the I2PTunnelServer that filters the registration sequence to pass the destination hash of the client through as the hostname, so an IRC Server may track users across nick changes.
I2PTunnelOutproxyRunner Like I2PTunnelRunner but socket-to-socket Warning - not maintained as a stable API for external use.
I2PTunnelRunner A thread that starts two more threads, one to forward traffic in each direction.
I2PTunnelServer  
I2PTunnelTask Either a Server or a Client.
InternalSocketRunner Listen for in-JVM connections on the internal "socket"
SSLClientUtil Utilities for I2PTunnel client SSL server sockets.
TunnelController Coordinate the runtime operation and configuration of a single I2PTunnel.
TunnelControllerGroup Coordinate a set of tunnels within the JVM, loading and storing their config to disk, and building new ones as requested.
TunnelControllerGroup.CustomThreadPoolExecutor Not really needed for now but in case we want to add some hooks like afterExecute().
 

Enum Summary
I2PTunnelHTTPClientBase.AuthResult  
 

Package net.i2p.i2ptunnel Description

Implementation of preconfigured tunnels, both for clients and servers, and a UI for adding more and editing the configuration. Includes special-purpose tunnels for IRC, SOCKS, HTTP, and more.

The entry point is TunnelControllerGroup, which is started from clients.config. Individual tunnel configuration is in i2ptunnel.config. The primary API is TunnelControllerGroup and TunnelController. Other classes may not be maintained as a stable API.