Package net.i2p.i2ptunnel
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.
-
Interface Summary Interface Description I2PTunnel.ConnectionEventListener Callback routine to find outI2PTunnelRunner.FailCallback For use in new constructorI2PTunnelRunner.SuccessCallback Logging -
Class Summary Class Description 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.2I2PTunnelHTTPClientRunner 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 Enum Description I2PTunnelHTTPClientBase.AuthResult