Class TunnelConfig

java.lang.Object
net.i2p.i2ptunnel.ui.TunnelConfig

public class TunnelConfig extends Object
Helper class to generate a valid TunnelController configuration from provided settings. This class is also used by Android. Maintain as a stable API and take care not to break Android.
Since:
0.9.19 logic moved from IndexBean
  • Field Details

  • Constructor Details

    • TunnelConfig

      public TunnelConfig()
  • Method Details

    • setType

      public void setType(String type)
      What type of tunnel (httpclient, ircclient, client, or server). This is required when adding a new tunnel.
    • getType

      public String getType()
    • setName

      public void setName(String name)
      Short name of the tunnel
    • setDescription

      public void setDescription(String description)
      one line description
    • setClientHost

      public void setClientHost(String host)
      I2CP host the router is on, ignored when in router context
    • setClientPort

      public void setClientPort(String port)
      I2CP port the router is on, ignored when in router context
    • setTunnelDepth

      public void setTunnelDepth(int tunnelDepth)
      how many hops to use for inbound tunnels In or both in/out
    • setTunnelQuantity

      public void setTunnelQuantity(int tunnelQuantity)
      how many parallel inbound tunnels to use In or both in/out
    • setTunnelVariance

      public void setTunnelVariance(int tunnelVariance)
      how much randomisation to apply to the depth of tunnels In or both in/out
    • setTunnelBackupQuantity

      public void setTunnelBackupQuantity(int tunnelBackupQuantity)
      how many tunnels to hold in reserve to guard against failures In or both in/out
    • setTunnelDepthOut

      public void setTunnelDepthOut(int tunnelDepth)
      how many hops to use for outbound tunnels
      Since:
      0.9.33
    • setTunnelQuantityOut

      public void setTunnelQuantityOut(int tunnelQuantity)
      how many parallel outbound tunnels to use
      Since:
      0.9.33
    • setTunnelVarianceOut

      public void setTunnelVarianceOut(int tunnelVariance)
      how much randomisation to apply to the depth of tunnels
      Since:
      0.9.33
    • setTunnelBackupQuantityOut

      public void setTunnelBackupQuantityOut(int tunnelBackupQuantity)
      how many tunnels to hold in reserve to guard against failures
      Since:
      0.9.33
    • setCustomOptions

      public void setCustomOptions(String customOptions)
      what I2P session overrides should be used
    • setProxyList

      public void setProxyList(String proxyList)
      what HTTP outproxies should be used (httpclient specific)
    • setPort

      public void setPort(int port)
      what port should this client/httpclient/ircclient listen on
    • setReachableBy

      public void setReachableBy(String reachableBy)
      what interface should this client/httpclient/ircclient listen on
    • 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(int port)
      What port does this server tunnel point at
    • setSpoofedHost

      public void setSpoofedHost(String host)
      What host does this http server tunnel spoof
    • setPrivKeyFile

      public void setPrivKeyFile(String file)
      What filename is this server tunnel's private keys stored in
    • getPrivKeyFile

      public String getPrivKeyFile()
    • setAltPrivKeyFile

      public void setAltPrivKeyFile(String file)
      What filename is this server tunnel's alternate private keys stored in
      Since:
      0.9.30
    • setStartOnLoad

      public void setStartOnLoad(boolean val)
      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)
    • setShared

      public void setShared(boolean val)
    • setConnectDelay

      public void setConnectDelay(boolean val)
    • setProfile

      public void setProfile(String profile)
    • setReduce

      public void setReduce(boolean val)
    • setClose

      public void setClose(boolean val)
    • setEncrypt

      public void setEncrypt(boolean val)
    • setEncryptMode

      public void setEncryptMode(int mode)
      Since:
      0.9.40
    • setBlindedPassword

      public void setBlindedPassword(String s)
      Since:
      0.9.40
    • addClientNames

      public void addClientNames(String[] s)
      Multiple entries in form
      Since:
      0.9.41
    • addClientKeys

      public void addClientKeys(String[] s)
      Multiple entries in form Handles either order addClientName/addClientKey
      Since:
      0.9.41
    • revokeClients

      public void revokeClients(String[] s)
      Multiple entries in form
      Since:
      0.9.41
    • newClientName

      public void newClientName(String s)
      Handles either order newClientName/newClientKey
      Since:
      0.9.41
    • newClientKey

      public void newClientKey(String s)
      Handles either order newClientName/newClientKey
      Since:
      0.9.41
    • setAddClient

      public void setAddClient(boolean val)
      Since:
      0.9.41
    • setDCC

      public void setDCC(boolean val)
    • setUseSSL

      public void setUseSSL(boolean val)
    • setRejectInproxy

      public void setRejectInproxy(boolean val)
    • setRejectReferer

      public void setRejectReferer(boolean val)
      Since:
      0.9.25
    • setRejectUserAgents

      public void setRejectUserAgents(boolean val)
      Since:
      0.9.25
    • setUserAgents

      public void setUserAgents(String val)
      Since:
      0.9.25
    • setUniqueLocal

      public void setUniqueLocal(boolean val)
    • setAccessMode

      public void setAccessMode(int mode)
      Controls how other tunnels are checked for access.

      The list used for whitelisting/blacklisting can be set with setAccessList(String).

      Parameters:
      mode - 0 for no control, 1 for whitelist, 2 for blacklist
    • setFilterDefinition

      public void setFilterDefinition(String filterDefinition)
      Since:
      0.9.40
    • setDelayOpen

      public void setDelayOpen(boolean val)
    • setNewDest

      public void setNewDest(int mode)
      Controls how ephemeral the I2P Destination of a client tunnel is.

      If setClose(boolean) is set to false then mode 1 == mode 0.

      Parameters:
      mode - 0 for new dest on restart, 1 for new dest on resume from idle, 2 for persistent key
    • setReduceTime

      public void setReduceTime(int val)
    • setReduceCount

      public void setReduceCount(int val)
    • setEncryptKey

      public void setEncryptKey(String val)
    • setAccessList

      public void setAccessList(String val)
    • setJumpList

      public void setJumpList(String val)
    • setCloseTime

      public void setCloseTime(int val)
    • setAllowUserAgent

      public void setAllowUserAgent(boolean val)
    • setAllowReferer

      public void setAllowReferer(boolean val)
    • setAllowAccept

      public void setAllowAccept(boolean val)
    • setAllowInternalSSL

      public void setAllowInternalSSL(boolean val)
    • setMultihome

      public void setMultihome(boolean val)
    • setProxyAuth

      public void setProxyAuth(String authType)
      Sets whether authentication should be used for client proxy tunnels. Supported authentication types: "basic", "digest".
      Parameters:
      authType - the authentication type, or "false" for no authentication
    • setProxyUsername

      public void setProxyUsername(String s)
    • setProxyPassword

      public void setProxyPassword(String s)
    • setOutproxyAuth

      public void setOutproxyAuth(boolean val)
      Sets whether authentication is required for any of the configured outproxies.
      Parameters:
      val - true if authentication is required, false otherwise
    • setOutproxyUsername

      public void setOutproxyUsername(String s)
    • setOutproxyPassword

      public void setOutproxyPassword(String s)
    • setSslProxies

      public void setSslProxies(String s)
    • setUseOutproxyPlugin

      public void setUseOutproxyPlugin(boolean val)
    • setOutproxyType

      public void setOutproxyType(String s)
      Parameters:
      s - "connect" or "socks"
      Since:
      0.9.57
    • setLimitMinute

      public void setLimitMinute(int val)
    • setLimitHour

      public void setLimitHour(int val)
    • setLimitDay

      public void setLimitDay(int val)
    • setTotalMinute

      public void setTotalMinute(int val)
    • setTotalHour

      public void setTotalHour(int val)
    • setTotalDay

      public void setTotalDay(int val)
    • setMaxStreams

      public void setMaxStreams(int val)
    • setPostMax

      public void setPostMax(int val)
      POST limits
    • setPostTotalMax

      public void setPostTotalMax(int val)
    • setPostCheckTime

      public void setPostCheckTime(int val)
    • setPostBanTime

      public void setPostBanTime(int val)
    • setPostTotalBanTime

      public void setPostTotalBanTime(int val)
    • setSigType

      public void setSigType(String val)
    • setEncType

      public void setEncType(String val)
      Adds to existing, comma separated
      Since:
      0.9.44
    • setInboundRandomKey

      public void setInboundRandomKey(String s)
      Random keys
    • setOutboundRandomKey

      public void setOutboundRandomKey(String s)
    • setLeaseSetSigningPrivateKey

      public void setLeaseSetSigningPrivateKey(String s)
    • setLeaseSetPrivateKey

      public void setLeaseSetPrivateKey(String s)
    • setDestination

      public void setDestination(Destination dest)
      This is easier than requiring TunnelConfig to talk to TunnelControllerGroup and TunnelController.
      Parameters:
      dest - the current Destination for this tunnel.
    • getConfig

      public Properties getConfig()
      Based on all provided data, create a set of configuration parameters suitable for use in a TunnelController. This will replace (not add to) any existing parameters, so this should return a comprehensive mapping.
    • updateTunnelQuantities

      public void updateTunnelQuantities(Properties config)
      Update tunnel quantities for the provided config from this TunnelConfig.
      Parameters:
      config - the config to update.