net.i2p.i2ptunnel.web

## Class IndexBean

- java.lang.Object
- - net.i2p.i2ptunnel.web.IndexBean

- Direct Known Subclasses:
    EditBean

      public class IndexBean
      extends Object

  Backend bean for I2P tunnel management web interface

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected I2PAppContext` | `_context`
    `protected TunnelControllerGroup` | `_group`
    `protected GeneralHelper` | `_helper`
    `protected Log` | `_log`
    `static int` | `NOT_RUNNING`
    `static int` | `RUNNING`
    `static int` | `STANDBY`
    `static int` | `STARTING`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `IndexBean()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected String` | `_t(String key)`
    `protected String` | `encrypt(int tunnel, String k, String v)` Encrypt a property using an in-memory key, for interaction with the UI only, using ChaCha20.
    `String` | `getAltDestHashBase32(int tunnel)` Works even if tunnel is not running.
    `protected Destination` | `getAltDestination(int tunnel)` Works even if tunnel is not running.
    `String` | `getAltDestinationBase64(int tunnel)` Works even if tunnel is not running.
    `String` | `getClientDestination(int tunnel)`
    `String` | `getClientInterface(int tunnel)`
    `String` | `getClientPort(int tunnel)` No validation
    `String` | `getClientPort2(int tunnel)` Returns error message if blank or invalid
    `protected TunnelController` | `getController(int tunnel)`
    `List<Integer>` | `getControllerNumbers(boolean isClient)` Return tunnel numbers of clients or servers only, sorted by tunnel name
    `String` | `getDestHashBase32(int tunnel)` Works even if tunnel is not running.
    `protected Destination` | `getDestination(int tunnel)` Works even if tunnel is not running.
    `String` | `getDestinationBase64(int tunnel)` Works even if tunnel is not running.
    `String` | `getEncryptedBase32(int tunnel)` Works even if tunnel is not running.
    `String` | `getInternalType(int tunnel)`
    `boolean` | `getIsOfflineKeys(int tunnel)` Works even if tunnel is not running.
    `boolean` | `getIsUsingOutproxyPlugin(int tunnel)` For index.jsp
    `int` | `getLastMessageID()` The last stored message ID
    `String` | `getMessages()` Executes any action requested (start/stop/etc) and dump out the messages.
    `static String` | `getNextNonce()`
    `int` | `getRemainingStartupDelay(int tunnel)`
    `String` | `getServerTarget(int tunnel)`
    `String` | `getSharedClient(int tunnel)`
    `String` | `getSpoofedHost(int tunnel)`
    `String` | `getTheme()`
    `String` | `getThemeName()`
    `int` | `getTunnelCount()`
    `String` | `getTunnelDescription(int tunnel)`
    `String` | `getTunnelName(int tunnel)`
    `int` | `getTunnelStatus(int tunnel)`
    `String` | `getTunnelType(int tunnel)`
    `(package private) String` | `getType()`
    `String` | `getTypeName(String internalType)`
    `static boolean` | `haveNonce(String nonce)` do we know this nonce?
    `boolean` | `isClient(int tunnelNum)` Is it a client or server in the UI and I2P side? Note that a streamr client is a UI and I2P client but a server on the localhost side.
    `static boolean` | `isClient(String type)` Is it a client or server in the UI and I2P side? Note that a streamr client is a UI and I2P client but a server on the localhost side.
    `boolean` | `isInitialized()`
    `boolean` | `isRejectInproxy(int tunnel)`
    `boolean` | `isRejectReferer(int tunnel)`
    `boolean` | `isRejectUserAgents(int tunnel)`
    `boolean` | `isServer(int tunnel)` Is this a server tunnel?
    `boolean` | `isServerTargetLinkValid(int tunnel)` Call this to see if it is ok to linkify getServerTarget()
    `boolean` | `isSharedClient(int tunnel)`
    `boolean` | `isSSLEnabled(int tunnel)`
    `boolean` | `isValidIRCServer(int tunnel)` Is this an IRC server? Call to establish if we should provide irc:// link on index page
    `protected String` | `ngettext(String s, String p, int n)` translate (ngettext)
    `void` | `setAccessList(String val)`
    `void` | `setAccessMode(String val)`
    `void` | `setAction(String action)`
    `void` | `setAddClient(String moo)`
    `void` | `setAllowAccept(String moo)`
    `void` | `setAllowInternalSSL(String moo)`
    `void` | `setAllowReferer(String moo)`
    `void` | `setAllowUserAgent(String moo)`
    `void` | `setAltPrivKeyFile(String file)` What filename is this server tunnel's alternate private keys stored in
    `void` | `setCert(String val)`
    `void` | `setClientHost(String host)` I2CP host the router is on, ignored when in router context
    `void` | `setclientKey(String[] s)` Multiple entries in form
    `void` | `setClientport(String port)` I2CP port the router is on, ignored when in router context
    `void` | `setClose(String moo)`
    `void` | `setCloseTime(String val)`
    `void` | `setConnectDelay(String moo)`
    `void` | `setDCC(String moo)`
    `void` | `setDelayOpen(String moo)`
    `void` | `setEncrypt(String moo)`
    `void` | `setEncryptKey(String val)`
    `void` | `setEncryptMode(String val)`
    `void` | `setEncType(String s)` Adds to existing, comma separated
    `void` | `setFilterDefinition(String val)`
    `void` | `setJumpList(String val)`
    `void` | `setKey1(String s)` Random keys, hidden in forms
    `void` | `setKey2(String s)`
    `void` | `setKey3(String s)`
    `void` | `setKey4(String s)`
    `void` | `setLimitDay(String s)`
    `void` | `setLimitHour(String s)`
    `void` | `setLimitMinute(String s)`
    `void` | `setMaxStreams(String s)`
    `void` | `setMsgid(String id)`
    `void` | `setMultihome(String moo)`
    `void` | `setNewClientKey(String s)`
    `void` | `setNewDest(String val)`
    `void` | `setNofilter_blindedPassword(String s)`
    `void` | `setNofilter_clientName(String[] s)` Multiple entries in form
    `void` | `setNofilter_customOptions(String customOptions)` what I2P session overrides should be used
    `void` | `setNofilter_description(String description)` One line host description
    `void` | `setNofilter_name(String name)` Short name of the tunnel
    `void` | `setNofilter_newClientName(String s)`
    `void` | `setNofilter_outproxyPassword(String s)`
    `void` | `setNofilter_proxyPassword(String s)`
    `void` | `setNonce(String nonce)`
    `void` | `setOutproxyAuth(String s)`
    `void` | `setOutproxyType(String s)`
    `void` | `setOutproxyUsername(String s)`
    `void` | `setPort(String port)` what port should this client/httpclient/ircclient listen on
    `void` | `setPostBanTime(String s)`
    `void` | `setPostCheckTime(String s)`
    `void` | `setPostMax(String s)` POST limits
    `void` | `setPostTotalBanTime(String s)`
    `void` | `setPostTotalMax(String s)`
    `void` | `setPrivKeyFile(String file)` What filename is this server tunnel's private keys stored in
    `void` | `setProfile(String profile)`
    `void` | `setProxyAuth(String s)` all proxy auth @since 0.8.2
    `void` | `setProxyList(String proxyList)` what HTTP outproxies should be used (httpclient specific)
    `void` | `setProxyUsername(String s)`
    `void` | `setReachableBy(String reachableBy)` what interface should this client/httpclient/ircclient listen on
    `void` | `setReduce(String moo)`
    `void` | `setReduceCount(String val)`
    `void` | `setReduceTime(String val)`
    `void` | `setRejectInproxy(String moo)`
    `void` | `setRejectReferer(String moo)`
    `void` | `setRejectUserAgents(String moo)`
    `void` | `setRemoveConfirm(String moo)` If called with any value (and the form submitted with action=Remove), we really do want to stop and remove the tunnel.
    `void` | `setRevokeClient(String[] s)` Multiple entries in form Values are integers
    `void` | `setShared(boolean val)`
    `void` | `setShared(String moo)`
    `void` | `setShutdownDelayMax(String val)`
    `void` | `setShutdownDelayMin(String val)`
    `void` | `setSigner(String val)`
    `void` | `setSigType(String val)`
    `void` | `setSpoofedHost(String host)` What host does this http server tunnel spoof
    `void` | `setSslProxies(String s)`
    `void` | `setStartOnLoad(String moo)` If called with any value, we want this tunnel to start whenever it is loaded (aka right now and whenever the router is started up)
    `void` | `setStartupDelayMax(String val)`
    `void` | `setStartupDelayMin(String val)`
    `void` | `setTargetDestination(String dest)` What peer does this client tunnel point at
    `void` | `setTargetHost(String host)` What host does this server tunnel point at
    `void` | `setTargetPort(String port)` What port does this server tunnel point at
    `void` | `setTotalDay(String s)`
    `void` | `setTotalHour(String s)`
    `void` | `setTotalMinute(String s)`
    `void` | `setTunnel(String tunnel)`
    `void` | `setTunnelBackupQuantity(String tunnelBackupQuantity)` How many tunnels to hold in reserve to guard against failures In or both in/out
    `void` | `setTunnelBackupQuantityOut(String tunnelBackupQuantity)` How many outbound tunnels to hold in reserve to guard against failures
    `void` | `setTunnelDepth(String tunnelDepth)` How many hops to use for inbound tunnels In or both in/out
    `void` | `setTunnelDepthOut(String tunnelDepth)` How many hops to use for outbound tunnels
    `void` | `setTunnelQuantity(String tunnelQuantity)` How many parallel inbound tunnels to use In or both in/out
    `void` | `setTunnelQuantityOut(String tunnelQuantity)` How many parallel outbound tunnels to use
    `void` | `setTunnelVariance(String tunnelVariance)` How much randomisation to apply to the depth of tunnels In or both in/out
    `void` | `setTunnelVarianceOut(String tunnelVariance)` How much randomisation to apply to the depth of outbound tunnels
    `void` | `setType(String type)` What type of tunnel (httpclient, ircclient, client, or server).
    `void` | `setUniqueLocal(String moo)`
    `void` | `setUseOutproxyPlugin(String moo)`
    `void` | `setUserAgents(String agents)`
    `void` | `setUseSSL(String moo)`
    `boolean` | `useSoraFont()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### _context

          protected final I2PAppContext _context

    - #### _group

          protected final TunnelControllerGroup _group

    - #### _helper

          protected final GeneralHelper _helper

    - #### _log

          protected final Log _log

    - #### NOT_RUNNING

          public static final int NOT_RUNNING

      See Also:
        Constant Field Values

    - #### RUNNING

          public static final int RUNNING

      See Also:
        Constant Field Values

    - #### STANDBY

          public static final int STANDBY

      See Also:
        Constant Field Values

    - #### STARTING

          public static final int STARTING

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### IndexBean

          public IndexBean()

  - ### Method Detail

    - #### _t

          protected String _t(String key)

    - #### encrypt

          protected String encrypt(int tunnel,
                                   String k,
                                   String v)

      Encrypt a property using an in-memory key, for interaction with the UI only, using ChaCha20. IV is SHA256(k). These are transient keys by design, but are persisted to hide restarts. They are hidden inputs in the edit form. Storage in config files is not encrypted.
      Parameters:
        `k` - non-null
        `v` - may be empty or null
      Returns:
        Base64, or empty, or null

    - #### getAltDestHashBase32

          public String getAltDestHashBase32(int tunnel)

      Works even if tunnel is not running.
      Returns:
        "{52 chars}.b32.i2p" or ""

    - #### getAltDestination

          protected Destination getAltDestination(int tunnel)

      Works even if tunnel is not running.
      Returns:
        Destination or null

    - #### getAltDestinationBase64

          public String getAltDestinationBase64(int tunnel)

      Works even if tunnel is not running.
      Returns:
        Base64 or ""

    - #### getClientDestination

          public String getClientDestination(int tunnel)

    - #### getClientInterface

          public String getClientInterface(int tunnel)

    - #### getClientPort

          public String getClientPort(int tunnel)

      No validation

    - #### getClientPort2

          public String getClientPort2(int tunnel)

      Returns error message if blank or invalid

    - #### getController

          protected TunnelController getController(int tunnel)

    - #### getControllerNumbers

          public List<Integer> getControllerNumbers(boolean isClient)

      Return tunnel numbers of clients or servers only, sorted by tunnel name
      Parameters:
        `isClient` - true for clients, false for servers
      Returns:
        non-null, may be empty

    - #### getDestHashBase32

          public String getDestHashBase32(int tunnel)

      Works even if tunnel is not running.
      Returns:
        "{52 chars}.b32.i2p" or ""

    - #### getDestination

          protected Destination getDestination(int tunnel)

      Works even if tunnel is not running.
      Returns:
        Destination or null

    - #### getDestinationBase64

          public String getDestinationBase64(int tunnel)

      Works even if tunnel is not running.
      Returns:
        Base64 or ""

    - #### getEncryptedBase32

          public String getEncryptedBase32(int tunnel)

      Works even if tunnel is not running.
      Returns:
        "{56 chars}.b32.i2p" or "" if not blinded

    - #### getInternalType

          public String getInternalType(int tunnel)

    - #### getIsOfflineKeys

          public boolean getIsOfflineKeys(int tunnel)

      Works even if tunnel is not running.
      Returns:
        true if offline keys

    - #### getIsUsingOutproxyPlugin

          public boolean getIsUsingOutproxyPlugin(int tunnel)

      For index.jsp
      Returns:
        true if the plugin is enabled, installed, and running

    - #### getLastMessageID

          public int getLastMessageID()

      The last stored message ID

    - #### getMessages

          public String getMessages()

      Executes any action requested (start/stop/etc) and dump out the messages. Only call this ONCE! Or you will get duplicate tunnels on save.
      Returns:
        HTML escaped or "" if empty

    - #### getNextNonce

          public static String getNextNonce()

    - #### getRemainingStartupDelay

          public int getRemainingStartupDelay(int tunnel)

    - #### getServerTarget

          public String getServerTarget(int tunnel)

      Returns:
        valid host:port only if isServerTargetLinkValid() is true

    - #### getSharedClient

          public String getSharedClient(int tunnel)

    - #### getSpoofedHost

          public String getSpoofedHost(int tunnel)

    - #### getTheme

          public String getTheme()

    - #### getThemeName

          public String getThemeName()

    - #### getTunnelCount

          public int getTunnelCount()

    - #### getTunnelDescription

          public String getTunnelDescription(int tunnel)

    - #### getTunnelName

          public String getTunnelName(int tunnel)

    - #### getTunnelStatus

          public int getTunnelStatus(int tunnel)

    - #### getTunnelType

          public String getTunnelType(int tunnel)

    - #### getType

          String getType()

    - #### getTypeName

          public String getTypeName(String internalType)

    - #### haveNonce

          public static boolean haveNonce(String nonce)

      do we know this nonce?

    - #### isClient

          public boolean isClient(int tunnelNum)

      Is it a client or server in the UI and I2P side? Note that a streamr client is a UI and I2P client but a server on the localhost side. Note that a streamr server is a UI and I2P server but a client on the localhost side.

    - #### isClient

          public static boolean isClient(String type)

      Is it a client or server in the UI and I2P side? Note that a streamr client is a UI and I2P client but a server on the localhost side. Note that a streamr server is a UI and I2P server but a client on the localhost side.

    - #### isInitialized

          public boolean isInitialized()

    - #### isRejectInproxy

          public boolean isRejectInproxy(int tunnel)

    - #### isRejectReferer

          public boolean isRejectReferer(int tunnel)

    - #### isRejectUserAgents

          public boolean isRejectUserAgents(int tunnel)

    - #### isServer

          public boolean isServer(int tunnel)

      Is this a server tunnel?

    - #### isServerTargetLinkValid

          public boolean isServerTargetLinkValid(int tunnel)

      Call this to see if it is ok to linkify getServerTarget()

    - #### isSharedClient

          public boolean isSharedClient(int tunnel)

    - #### isSSLEnabled

          public boolean isSSLEnabled(int tunnel)

    - #### isValidIRCServer

          public boolean isValidIRCServer(int tunnel)

      Is this an IRC server? Call to establish if we should provide irc:// link on index page

    - #### ngettext

          protected String ngettext(String s,
                                    String p,
                                    int n)

      translate (ngettext)

    - #### setAccessList

          public void setAccessList(String val)

    - #### setAccessMode

          public void setAccessMode(String val)

    - #### setAction

          public void setAction(String action)

    - #### setAddClient

          public void setAddClient(String moo)

    - #### setAllowAccept

          public void setAllowAccept(String moo)

    - #### setAllowInternalSSL

          public void setAllowInternalSSL(String moo)

    - #### setAllowReferer

          public void setAllowReferer(String moo)

    - #### setAllowUserAgent

          public void setAllowUserAgent(String moo)

    - #### setAltPrivKeyFile

          public void setAltPrivKeyFile(String file)

      What filename is this server tunnel's alternate private keys stored in

    - #### setCert

          public void setCert(String val)

    - #### setClientHost

          public void setClientHost(String host)

      I2CP host the router is on, ignored when in router context

    - #### setclientKey

          public void setclientKey(String[] s)

      Multiple entries in form

    - #### setClientport

          public void setClientport(String port)

      I2CP port the router is on, ignored when in router context

    - #### setClose

          public void setClose(String moo)

    - #### setCloseTime

          public void setCloseTime(String val)

    - #### setConnectDelay

          public void setConnectDelay(String moo)

    - #### setDCC

          public void setDCC(String moo)

    - #### setDelayOpen

          public void setDelayOpen(String moo)

    - #### setEncrypt

          public void setEncrypt(String moo)

    - #### setEncryptKey

          public void setEncryptKey(String val)

    - #### setEncryptMode

          public void setEncryptMode(String val)

    - #### setEncType

          public void setEncType(String s)

      Adds to existing, comma separated

    - #### setFilterDefinition

          public void setFilterDefinition(String val)

    - #### setJumpList

          public void setJumpList(String val)

    - #### setKey1

          public void setKey1(String s)

      Random keys, hidden in forms

    - #### setKey2

          public void setKey2(String s)

    - #### setKey3

          public void setKey3(String s)

    - #### setKey4

          public void setKey4(String s)

    - #### setLimitDay

          public void setLimitDay(String s)

    - #### setLimitHour

          public void setLimitHour(String s)

    - #### setLimitMinute

          public void setLimitMinute(String s)

    - #### setMaxStreams

          public void setMaxStreams(String s)

    - #### setMsgid

          public void setMsgid(String id)

    - #### setMultihome

          public void setMultihome(String moo)

    - #### setNewClientKey

          public void setNewClientKey(String s)

    - #### setNewDest

          public void setNewDest(String val)

    - #### setNofilter_blindedPassword

          public void setNofilter_blindedPassword(String s)

    - #### setNofilter_clientName

          public void setNofilter_clientName(String[] s)

      Multiple entries in form

    - #### setNofilter_customOptions

          public void setNofilter_customOptions(String customOptions)

      what I2P session overrides should be used

    - #### setNofilter_description

          public void setNofilter_description(String description)

      One line host description

    - #### setNofilter_name

          public void setNofilter_name(String name)

      Short name of the tunnel

    - #### setNofilter_newClientName

          public void setNofilter_newClientName(String s)

    - #### setNofilter_outproxyPassword

          public void setNofilter_outproxyPassword(String s)

    - #### setNofilter_proxyPassword

          public void setNofilter_proxyPassword(String s)

    - #### setNonce

          public void setNonce(String nonce)

    - #### setOutproxyAuth

          public void setOutproxyAuth(String s)

    - #### setOutproxyType

          public void setOutproxyType(String s)

      Parameters:
        `s` - "connect" or "socks"

    - #### setOutproxyUsername

          public void setOutproxyUsername(String s)

    - #### setPort

          public void setPort(String port)

      what port should this client/httpclient/ircclient listen on

    - #### setPostBanTime

          public void setPostBanTime(String s)

    - #### setPostCheckTime

          public void setPostCheckTime(String s)

    - #### setPostMax

          public void setPostMax(String s)

      POST limits

    - #### setPostTotalBanTime

          public void setPostTotalBanTime(String s)

    - #### setPostTotalMax

          public void setPostTotalMax(String s)

    - #### setPrivKeyFile

          public void setPrivKeyFile(String file)

      What filename is this server tunnel's private keys stored in

    - #### setProfile

          public void setProfile(String profile)

    - #### setProxyAuth

          public void setProxyAuth(String s)

      all proxy auth @since 0.8.2

    - #### setProxyList

          public void setProxyList(String proxyList)

      what HTTP outproxies should be used (httpclient specific)

    - #### setProxyUsername

          public void setProxyUsername(String s)

    - #### setReachableBy

          public void setReachableBy(String reachableBy)

      what interface should this client/httpclient/ircclient listen on

    - #### setReduce

          public void setReduce(String moo)

    - #### setReduceCount

          public void setReduceCount(String val)

    - #### setReduceTime

          public void setReduceTime(String val)

    - #### setRejectInproxy

          public void setRejectInproxy(String moo)

    - #### setRejectReferer

          public void setRejectReferer(String moo)

    - #### setRejectUserAgents

          public void setRejectUserAgents(String moo)

    - #### setRemoveConfirm

          public void setRemoveConfirm(String moo)

      If called with any value (and the form submitted with action=Remove), we really do want to stop and remove the tunnel.

    - #### setRevokeClient

          public void setRevokeClient(String[] s)

      Multiple entries in form Values are integers

    - #### setShared

          public void setShared(boolean val)

      Parameters:
        `val` - true to share the private key with other client tunnels

    - #### setShared

          public void setShared(String moo)

      Parameters:
        `moo` - any value triggers shared private key mode

    - #### setShutdownDelayMax

          public void setShutdownDelayMax(String val)

      Parameters:
        `val` - the maximum shutdown delay in seconds for server tunnels

    - #### setShutdownDelayMin

          public void setShutdownDelayMin(String val)

      Parameters:
        `val` - the minimum shutdown delay in seconds for server tunnels

    - #### setSigner

          public void setSigner(String val)

    - #### setSigType

          public void setSigType(String val)

    - #### setSpoofedHost

          public void setSpoofedHost(String host)

      What host does this http server tunnel spoof

    - #### setSslProxies

          public void setSslProxies(String s)

    - #### setStartOnLoad

          public void setStartOnLoad(String moo)

      If called with any value, we want this tunnel to start whenever it is loaded (aka right now and whenever the router is started up)
      Parameters:
        `moo` - any value triggers startup on load

    - #### setStartupDelayMax

          public void setStartupDelayMax(String val)

      Parameters:
        `val` - the maximum startup delay in seconds for server tunnels

    - #### setStartupDelayMin

          public void setStartupDelayMin(String val)

      Parameters:
        `val` - the minimum startup delay in seconds for server tunnels

    - #### setTargetDestination

          public void setTargetDestination(String dest)

      What peer does this client tunnel point at

    - #### setTargetHost

          public void setTargetHost(String host)

      What host does this server tunnel point at

    - #### setTargetPort

          public void setTargetPort(String port)

      What port does this server tunnel point at

    - #### setTotalDay

          public void setTotalDay(String s)

    - #### setTotalHour

          public void setTotalHour(String s)

    - #### setTotalMinute

          public void setTotalMinute(String s)

    - #### setTunnel

          public void setTunnel(String tunnel)

    - #### setTunnelBackupQuantity

          public void setTunnelBackupQuantity(String tunnelBackupQuantity)

      How many tunnels to hold in reserve to guard against failures In or both in/out

    - #### setTunnelBackupQuantityOut

          public void setTunnelBackupQuantityOut(String tunnelBackupQuantity)

      How many outbound tunnels to hold in reserve to guard against failures

    - #### setTunnelDepth

          public void setTunnelDepth(String tunnelDepth)

      How many hops to use for inbound tunnels In or both in/out

    - #### setTunnelDepthOut

          public void setTunnelDepthOut(String tunnelDepth)

      How many hops to use for outbound tunnels

    - #### setTunnelQuantity

          public void setTunnelQuantity(String tunnelQuantity)

      How many parallel inbound tunnels to use In or both in/out

    - #### setTunnelQuantityOut

          public void setTunnelQuantityOut(String tunnelQuantity)

      How many parallel outbound tunnels to use

    - #### setTunnelVariance

          public void setTunnelVariance(String tunnelVariance)

      How much randomisation to apply to the depth of tunnels In or both in/out

    - #### setTunnelVarianceOut

          public void setTunnelVarianceOut(String tunnelVariance)

      How much randomisation to apply to the depth of outbound tunnels

    - #### setType

          public void setType(String type)

      What type of tunnel (httpclient, ircclient, client, or server). This is required when adding a new tunnel.

    - #### setUniqueLocal

          public void setUniqueLocal(String moo)

    - #### setUseOutproxyPlugin

          public void setUseOutproxyPlugin(String moo)

    - #### setUserAgents

          public void setUserAgents(String agents)

    - #### setUseSSL

          public void setUseSSL(String moo)

    - #### useSoraFont

          public boolean useSoraFont()