## Package net.i2p.i2ptunnel

Interface Summary
I2PTunnel.ConnectionEventListener: Callback routine to find out
Logging

Class Summary
HTTPResponseOutputStream: Simple stream for delivering an HTTP response to the client, trivially filtered to make sure "Connection: close" is always in the response.
I2Ping
I2PTunnel
I2PTunnelClient
I2PTunnelClientBase

I2PTunnelConnectClient

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.

I2PTunnelGUI: AWT gui since kaffe doesn't support swing yet
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.
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
I2PTunnelIRCClient.IrcInboundFilter
I2PTunnelIRCClient.IrcOutboundFilter
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.
I2PTunnelRunner
I2PTunnelServer
I2PTunnelTask: Either a Server or a Client.
InternalSocketRunner: Listen for in-JVM connections on the internal "socket"
TunnelController: Coordinate the runtime operation and configuration of a tunnel.
TunnelControllerGroup: Coordinate a set of tunnels within the JVM, loading and storing their config to disk, and building new ones as requested.