## Uses of Interface
net.i2p.i2ptunnel.Logging

- Packages that use Logging
  Package | Description
  --- | ---
  net.i2p.i2ptunnel | Implementation of preconfigured tunnels for both clients and servers, with a comprehensive UI for tunnel management and configuration.
  net.i2p.i2ptunnel.irc | IRC-specific tunnel enhancements including protocol filters and DCC (Direct Client-to-Client) connection handlers for IRC client tunnels.
  net.i2p.i2ptunnel.socks | SOCKS protocol tunnel implementation for I2P, supporting SOCKS 4, 4a, and 5.
  net.i2p.i2ptunnel.streamr | Special-purpose tunnels for streaming UDP clients and servers, optimized for audio and video streaming applications.
  net.i2p.i2ptunnel.udpTunnel | UDP tunnel implementation for I2PTunnel.

- - ### Uses of Logging in net.i2p.i2ptunnel

    Classes in net.i2p.i2ptunnel that implement Logging
    Modifier and Type | Class and Description
    --- | ---
    `class` | `I2PTunnel` Manages I2PTunnelTasks and I2PSessions.
    `class` | `TunnelController` Coordinate the runtime operation and configuration of a single I2PTunnel.

    Fields in net.i2p.i2ptunnel declared as Logging
    Modifier and Type | Field and Description
    --- | ---
    `protected Logging` | I2PTunnelServer.`l`
    `protected Logging` | I2PTunnelClientBase.`l`

    Methods in net.i2p.i2ptunnel with parameters of type Logging
    Modifier and Type | Method and Description
    --- | ---
    `protected static I2PSocketManager` | I2PTunnelClientBase.`buildSocketManager(I2PTunnel tunnel, String pkf, Logging log)` As of 0.9.20 this is fast, and does NOT connect the manager to the router.
    `protected InetAddress` | I2PTunnelClientBase.`getListenHost(Logging l)`
    `void` | I2PTunnel.`runClient(String[] args, Logging l)` Run the client on the given port number pointing at the specified destination (either the base64 of the destination or file:fileNameContainingDestination).
    `void` | I2PTunnel.`runClientOptions(String[] args, Logging l)` Configure the extra I2CP options to use in any subsequent I2CP sessions.
    `void` | I2PTunnel.`runClose(String[] args, Logging l)` Close the given task (or all tasks), optionally forcing them to die a hard death Sets the event "closeResult" = "ok" after the closing is complete
    `void` | I2PTunnel.`runCommand(String cmd, Logging l)` Parses and executes a tunnel management command.
    `void` | I2PTunnel.`runConnectClient(String[] args, Logging l)` Run a CONNECT client on the given port number
    `void` | I2PTunnel.`runHttpBidirServer(String[] args, Logging l)` Run the HTTP server pointing at the host and port specified using the private i2p destination loaded from the specified file, replacing the HTTP headers so that the Host: specified is the one spoofed.
    `void` | I2PTunnel.`runHttpClient(String[] args, Logging l)` Run an HTTP client on the given port number Sets the event "httpclientTaskId" = Integer(taskId) after the tunnel has been started (or -1 on error).
    `void` | I2PTunnel.`runHttpServer(String[] args, Logging l)` Run the HTTP server pointing at the host and port specified using the private i2p destination loaded from the specified file, replacing the HTTP headers so that the Host: specified is the one spoofed.
    `void` | I2PTunnel.`runIrcClient(String[] args, Logging l)` Run an IRC client on the given port number Sets the event "ircclientTaskId" = Integer(taskId) after the tunnel has been started (or -1 on error).
    `void` | I2PTunnel.`runIrcServer(String[] args, Logging l)` Same args as runServer (we should stop duplicating all this code...)
    `void` | I2PTunnel.`runListenOn(String[] args, Logging l)` Specify the hostname / IP address of the interface that the tunnels should bind to Sets the event "listen_onResult" = "ok" or "error" after the interface has been specified
    `void` | I2PTunnel.`runReadTimeout(String[] args, Logging l)` Specify the read timeout going to be used for newly-created I2PSockets Sets the event "read_timeoutResult" = "ok" or "error" after the interface has been specified
    `void` | I2PTunnel.`runServer(String[] args, Logging l)` Run the server pointing at the host and port specified using the private i2p destination loaded from the specified file.
    `void` | I2PTunnel.`runSOCKSIRCTunnel(String[] args, Logging l)` Run an SOCKS IRC tunnel on the given port number
    `void` | I2PTunnel.`runSOCKSTunnel(String[] args, Logging l)` Run an SOCKS tunnel on the given port number Sets the event "sockstunnelTaskId" = Integer(taskId) after the tunnel has been started (or -1 on error).
    `void` | I2PTunnel.`runStreamrClient(String[] args, Logging l)` Streamr client
    `void` | I2PTunnel.`runStreamrServer(String[] args, Logging l)` Streamr server
    `void` | I2PTunnel.`runTextServer(String[] args, Logging l)` Run the server pointing at the host and port specified using the private i2p destination loaded from the given base64 stream.

    Constructors in net.i2p.i2ptunnel with parameters of type Logging
    Constructor and Description
    `I2Ping(Logging l, boolean ownDest, EventDispatcher notifyThis, I2PTunnel tunnel)` tunnel.getOptions must contain "command".
    `I2PTunnelClient(int localPort, String destinations, Logging l, boolean ownDest, EventDispatcher notifyThis, I2PTunnel tunnel, String pkf)` As of 0.9.20 this is fast, and does NOT connect the manager to the router, or open the local socket.
    `I2PTunnelClientBase(int localPort, boolean ownDest, Logging l, EventDispatcher notifyThis, String handlerName, I2PTunnel tunnel)` The main constructor.
    `I2PTunnelClientBase(int localPort, boolean ownDest, Logging l, EventDispatcher notifyThis, String handlerName, I2PTunnel tunnel, String pkf)` Use this to build a client with a persistent private key.
    `I2PTunnelClientBase(int localPort, Logging l, I2PSocketManager sktMgr, I2PTunnel tunnel, EventDispatcher notifyThis, long clientId)` This constructor is used to add a client to an existing socket manager.
    `I2PTunnelConnectClient(int localPort, Logging l, boolean ownDest, String wwwProxy, EventDispatcher notifyThis, I2PTunnel tunnel)` As of 0.9.20 this is fast, and does NOT connect the manager to the router, or open the local socket.
    `I2PTunnelHTTPBidirProxy(int localPort, Logging l, I2PSocketManager sockMgr, I2PTunnel tunnel, EventDispatcher notifyThis, long clientId)` As of 0.9.20 this is fast, and does NOT connect the manager to the router, or open the local socket.
    `I2PTunnelHTTPBidirServer(InetAddress host, int port, int proxyport, File privkey, String privkeyname, String spoofHost, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)` Creates a bidirectional HTTP server tunnel with a private key file.
    `I2PTunnelHTTPBidirServer(InetAddress host, int port, int proxyport, InputStream privData, String privkeyname, String spoofHost, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)` Creates a bidirectional HTTP server tunnel with an input stream for the private key.
    `I2PTunnelHTTPBidirServer(InetAddress host, int port, int proxyport, String privData, String spoofHost, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)` Creates a bidirectional HTTP server tunnel.
    `I2PTunnelHTTPClient(int localPort, Logging l, boolean ownDest, String wwwProxy, EventDispatcher notifyThis, I2PTunnel tunnel)` As of 0.9.20 this is fast, and does NOT connect the manager to the router, or open the local socket.
    `I2PTunnelHTTPClient(int localPort, Logging l, I2PSocketManager sockMgr, I2PTunnel tunnel, EventDispatcher notifyThis, long clientId)` This constructor always starts the tunnel (ignoring the i2cp.delayOpen option).
    `I2PTunnelHTTPClientBase(int localPort, boolean ownDest, Logging l, EventDispatcher notifyThis, String handlerName, I2PTunnel tunnel)`
    `I2PTunnelHTTPClientBase(int localPort, Logging l, I2PSocketManager sktMgr, I2PTunnel tunnel, EventDispatcher notifyThis, long clientId)` This constructor always starts the tunnel (ignoring the i2cp.delayOpen option).
    `I2PTunnelHTTPServer(InetAddress host, int port, File privkey, String privkeyname, String spoofHost, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)`
    `I2PTunnelHTTPServer(InetAddress host, int port, InputStream privData, String privkeyname, String spoofHost, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)`
    `I2PTunnelHTTPServer(InetAddress host, int port, String privData, String spoofHost, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)`
    `I2PTunnelIRCClient(int localPort, String destinations, Logging l, boolean ownDest, EventDispatcher notifyThis, I2PTunnel tunnel, String pkf)` As of 0.9.20 this is fast, and does NOT connect the manager to the router, or open the local socket.
    `I2PTunnelIRCServer(InetAddress host, int port, File privkey, String privkeyname, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)`
    `I2PTunnelServer(InetAddress host, int port, File privkey, String privkeyname, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)` Non-blocking
    `I2PTunnelServer(InetAddress host, int port, I2PSocketManager sktMgr, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)` Non-blocking
    `I2PTunnelServer(InetAddress host, int port, InputStream privData, String privkeyname, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)` Non-blocking
    `I2PTunnelServer(InetAddress host, int port, String privData, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)` Non-blocking

  - ### Uses of Logging in net.i2p.i2ptunnel.irc

    Constructors in net.i2p.i2ptunnel.irc with parameters of type Logging
    Constructor and Description
    `DCCClientManager(I2PSocketManager sktMgr, Logging logging, EventDispatcher dispatch, I2PTunnel tunnel)` Create a new manager for DCC client tunnels.
    `I2PTunnelDCCClient(String dest, int localPort, int remotePort, Logging l, I2PSocketManager sktMgr, EventDispatcher notifyThis, I2PTunnel tunnel, long clientId)` As of 0.9.20 this is fast, and does NOT connect the manager to the router, or open the local socket.
    `I2PTunnelDCCServer(I2PSocketManager sktMgr, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)` There's no support for unsolicited incoming I2P connections, so there's no server host or port parameters.

  - ### Uses of Logging in net.i2p.i2ptunnel.socks

    Constructors in net.i2p.i2ptunnel.socks with parameters of type Logging
    Constructor and Description
    `I2PSOCKSIRCTunnel(int localPort, Logging l, boolean ownDest, EventDispatcher notifyThis, I2PTunnel tunnel, String pkf)`
    `I2PSOCKSTunnel(int localPort, Logging l, boolean ownDest, EventDispatcher notifyThis, I2PTunnel tunnel, String pkf)` As of 0.9.20 this is fast, and does NOT connect the manager to the router, or open the local socket.

  - ### Uses of Logging in net.i2p.i2ptunnel.streamr

    Constructors in net.i2p.i2ptunnel.streamr with parameters of type Logging
    Constructor and Description
    `StreamrConsumer(InetAddress host, int port, String destination, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)` Creates a Streamr consumer that receives data from I2P and forwards it to a UDP destination.
    `StreamrProducer(int port, File privkey, String privkeyname, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)` Creates a Streamr producer that receives UDP data and forwards it through I2P.

  - ### Uses of Logging in net.i2p.i2ptunnel.udpTunnel

    Fields in net.i2p.i2ptunnel.udpTunnel declared as Logging
    Modifier and Type | Field and Description
    --- | ---
    `protected Logging` | I2PTunnelUDPClientBase.`l`
    `protected Logging` | I2PTunnelUDPServerBase.`l`

    Constructors in net.i2p.i2ptunnel.udpTunnel with parameters of type Logging
    Constructor and Description
    `I2PTunnelUDPClientBase(String destination, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)`
    `I2PTunnelUDPServerBase(File privkey, String privkeyname, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)`