Package net.i2p.i2ptunnel
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.
-
ClassDescriptionCount how often something happens with a particular peer and all peers.Gunzip implementation per RFC 1952, reusing java's standard CRC32 and Inflater and InflaterOutputStream implementations.This does the transparent gzip decompression on the client side.Warning - not necessarily a stable API.An I2PTunnel tracks one or more I2PTunnelTasks and one or more I2PSessions.Callback routine to find outSupports the following:Reuse HTTP server's I2PSocketManager for a proxy with no outproxy capability.Act as a mini HTTP proxy, handling various different types of requests, forwarding them through I2P appropriately, and displaying the reply.Common things for HTTPClient and ConnectClient Retrofit over them in 0.8.2Override the response with a stream filtering the HTTP headers received.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.Todo: Can we extend I2PTunnelClient instead and remove some duplicated code?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.Like I2PTunnelRunner but socket-to-socket Warning - not maintained as a stable API for external use.A thread that starts two more threads, one to forward traffic in each direction.For use in new constructorEither a Server or a Client.Listen for in-JVM connections on the internal "socket"Utilities for I2PTunnel client SSL server sockets.Coordinate the runtime operation and configuration of a single I2PTunnel.Coordinate a set of tunnels within the JVM, loading and storing their config to disk, and building new ones as requested.Not really needed for now but in case we want to add some hooks like afterExecute().