Package net.i2p.i2ptunnel.ui
Class TunnelConfig
java.lang.Object
net.i2p.i2ptunnel.ui.TunnelConfig
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 Summary
Modifier and TypeFieldDescriptionprotected final I2PAppContext
protected static final String
protected static final String
static final String
static final String
static final String
all of these are @since 0.8.3 (moved from IndexBean)static final String
static final String
static final String
static final String
static final String
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addClientKeys
(String[] s) Multiple entries in form Handles either order addClientName/addClientKeyvoid
addClientNames
(String[] s) Multiple entries in formBased on all provided data, create a set of configuration parameters suitable for use in a TunnelController.getType()
void
Handles either order newClientName/newClientKeyvoid
Handles either order newClientName/newClientKeyvoid
revokeClients
(String[] s) Multiple entries in formvoid
setAccessList
(String val) void
setAccessMode
(int mode) Controls how other tunnels are checked for access.void
setAddClient
(boolean val) void
setAllowAccept
(boolean val) void
setAllowInternalSSL
(boolean val) void
setAllowReferer
(boolean val) void
setAllowUserAgent
(boolean val) void
setAltPrivKeyFile
(String file) What filename is this server tunnel's alternate private keys stored invoid
void
setClientHost
(String host) I2CP host the router is on, ignored when in router contextvoid
setClientPort
(String port) I2CP port the router is on, ignored when in router contextvoid
setClose
(boolean val) void
setCloseTime
(int val) void
setConnectDelay
(boolean val) void
setCustomOptions
(String customOptions) what I2P session overrides should be usedvoid
setDCC
(boolean val) void
setDelayOpen
(boolean val) void
setDescription
(String description) one line descriptionvoid
setDestination
(Destination dest) This is easier than requiring TunnelConfig to talk to TunnelControllerGroup and TunnelController.void
setEncrypt
(boolean val) void
setEncryptKey
(String val) void
setEncryptMode
(int mode) void
setEncType
(String val) Adds to existing, comma separatedvoid
setFilterDefinition
(String filterDefinition) void
Random keysvoid
setJumpList
(String val) void
void
void
setLimitDay
(int val) void
setLimitHour
(int val) void
setLimitMinute
(int val) void
setMaxStreams
(int val) void
setMultihome
(boolean val) void
Short name of the tunnelvoid
setNewDest
(int mode) Controls how ephemeral the I2P Destination of a client tunnel is.void
void
setOutproxyAuth
(boolean val) Sets whether authentication is required for any of the configured outproxies.void
void
void
void
setPort
(int port) what port should this client/httpclient/ircclient listen onvoid
setPostBanTime
(int val) void
setPostCheckTime
(int val) void
setPostMax
(int val) POST limitsvoid
setPostTotalBanTime
(int val) void
setPostTotalMax
(int val) void
setPrivKeyFile
(String file) What filename is this server tunnel's private keys stored invoid
setProfile
(String profile) void
setProxyAuth
(String authType) Sets whether authentication should be used for client proxy tunnels.void
setProxyList
(String proxyList) what HTTP outproxies should be used (httpclient specific)void
void
void
setReachableBy
(String reachableBy) what interface should this client/httpclient/ircclient listen onvoid
setReduce
(boolean val) void
setReduceCount
(int val) void
setReduceTime
(int val) void
setRejectInproxy
(boolean val) void
setRejectReferer
(boolean val) void
setRejectUserAgents
(boolean val) void
setShared
(boolean val) void
setSigType
(String val) void
setSpoofedHost
(String host) What host does this http server tunnel spoofvoid
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)void
setTargetDestination
(String dest) What peer does this client tunnel point atvoid
setTargetHost
(String host) What host does this server tunnel point atvoid
setTargetPort
(int port) What port does this server tunnel point atvoid
setTotalDay
(int val) void
setTotalHour
(int val) void
setTotalMinute
(int val) void
setTunnelBackupQuantity
(int tunnelBackupQuantity) how many tunnels to hold in reserve to guard against failures In or both in/outvoid
setTunnelBackupQuantityOut
(int tunnelBackupQuantity) how many tunnels to hold in reserve to guard against failuresvoid
setTunnelDepth
(int tunnelDepth) how many hops to use for inbound tunnels In or both in/outvoid
setTunnelDepthOut
(int tunnelDepth) how many hops to use for outbound tunnelsvoid
setTunnelQuantity
(int tunnelQuantity) how many parallel inbound tunnels to use In or both in/outvoid
setTunnelQuantityOut
(int tunnelQuantity) how many parallel outbound tunnels to usevoid
setTunnelVariance
(int tunnelVariance) how much randomisation to apply to the depth of tunnels In or both in/outvoid
setTunnelVarianceOut
(int tunnelVariance) how much randomisation to apply to the depth of tunnelsvoid
What type of tunnel (httpclient, ircclient, client, or server).void
setUniqueLocal
(boolean val) void
setUseOutproxyPlugin
(boolean val) void
setUserAgents
(String val) void
setUseSSL
(boolean val) void
updateTunnelQuantities
(Properties config) Update tunnel quantities for the provided config from this TunnelConfig.
-
Field Details
-
SHARED_CLIENT_NICKNAME
- See Also:
-
_context
-
PROP_ENABLE_ACCESS_LIST
- See Also:
-
PROP_ENABLE_BLACKLIST
- See Also:
-
PROP_MAX_CONNS_MIN
all of these are @since 0.8.3 (moved from IndexBean)- See Also:
-
PROP_MAX_CONNS_HOUR
- See Also:
-
PROP_MAX_CONNS_DAY
- See Also:
-
PROP_MAX_TOTAL_CONNS_MIN
- See Also:
-
PROP_MAX_TOTAL_CONNS_HOUR
- See Also:
-
PROP_MAX_TOTAL_CONNS_DAY
- See Also:
-
PROP_MAX_STREAMS
- See Also:
-
_noShowSet
-
_nonProxyNoShowSet
-
-
Constructor Details
-
TunnelConfig
public TunnelConfig()
-
-
Method Details
-
setType
What type of tunnel (httpclient, ircclient, client, or server). This is required when adding a new tunnel. -
getType
-
setName
Short name of the tunnel -
setDescription
one line description -
setClientHost
I2CP host the router is on, ignored when in router context -
setClientPort
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
what I2P session overrides should be used -
setProxyList
what HTTP outproxies should be used (httpclient specific) -
setPort
public void setPort(int port) what port should this client/httpclient/ircclient listen on -
setReachableBy
what interface should this client/httpclient/ircclient listen on -
setTargetDestination
What peer does this client tunnel point at -
setTargetHost
What host does this server tunnel point at -
setTargetPort
public void setTargetPort(int port) What port does this server tunnel point at -
setSpoofedHost
What host does this http server tunnel spoof -
setPrivKeyFile
What filename is this server tunnel's private keys stored in -
getPrivKeyFile
-
setAltPrivKeyFile
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) -
setConnectDelay
public void setConnectDelay(boolean val) -
setProfile
-
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
- Since:
- 0.9.40
-
addClientNames
Multiple entries in form- Since:
- 0.9.41
-
addClientKeys
Multiple entries in form Handles either order addClientName/addClientKey- Since:
- 0.9.41
-
revokeClients
Multiple entries in form- Since:
- 0.9.41
-
newClientName
Handles either order newClientName/newClientKey- Since:
- 0.9.41
-
newClientKey
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
- 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
- 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
-
setAccessList
-
setJumpList
-
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
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
-
setProxyPassword
-
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
-
setOutproxyPassword
-
setSslProxies
-
setUseOutproxyPlugin
public void setUseOutproxyPlugin(boolean val) -
setOutproxyType
- 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
-
setEncType
Adds to existing, comma separated- Since:
- 0.9.44
-
setInboundRandomKey
Random keys -
setOutboundRandomKey
-
setLeaseSetSigningPrivateKey
-
setLeaseSetPrivateKey
-
setDestination
This is easier than requiring TunnelConfig to talk to TunnelControllerGroup and TunnelController.- Parameters:
dest
- the current Destination for this tunnel.
-
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
Update tunnel quantities for the provided config from this TunnelConfig.- Parameters:
config
- the config to update.
-