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
FieldsModifier and TypeFieldDescriptionprotected final I2PAppContextprotected static final Stringprotected static final Stringstatic final Stringstatic final Stringstatic final Stringall of these are @since 0.8.3 (moved from IndexBean)static final Stringstatic final Stringstatic final Stringstatic final Stringstatic final String -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddClientKeys(String[] s) Multiple entries in form Handles either order addClientName/addClientKeyvoidaddClientNames(String[] s) Multiple entries in formBased on all provided data, create a set of configuration parameters suitable for use in a TunnelController.getType()voidHandles either order newClientName/newClientKeyvoidHandles either order newClientName/newClientKeyvoidrevokeClients(String[] s) Multiple entries in formvoidsetAccessList(String val) voidsetAccessMode(int mode) Controls how other tunnels are checked for access.voidsetAddClient(boolean val) voidsetAllowAccept(boolean val) voidsetAllowInternalSSL(boolean val) voidsetAllowReferer(boolean val) voidsetAllowUserAgent(boolean val) voidsetAltPrivKeyFile(String file) What filename is this server tunnel's alternate private keys stored invoidvoidsetClientHost(String host) I2CP host the router is on, ignored when in router contextvoidsetClientPort(String port) I2CP port the router is on, ignored when in router contextvoidsetClose(boolean val) voidsetCloseTime(int val) voidsetConnectDelay(boolean val) voidsetCustomOptions(String customOptions) what I2P session overrides should be usedvoidsetDCC(boolean val) voidsetDelayOpen(boolean val) voidsetDescription(String description) one line descriptionvoidsetDestination(Destination dest) This is easier than requiring TunnelConfig to talk to TunnelControllerGroup and TunnelController.voidsetEncrypt(boolean val) voidsetEncryptKey(String val) voidsetEncryptMode(int mode) voidsetEncType(String val) Adds to existing, comma separatedvoidsetFilterDefinition(String filterDefinition) voidRandom keysvoidsetJumpList(String val) voidvoidvoidsetLimitDay(int val) voidsetLimitHour(int val) voidsetLimitMinute(int val) voidsetMaxStreams(int val) voidsetMultihome(boolean val) voidShort name of the tunnelvoidsetNewDest(int mode) Controls how ephemeral the I2P Destination of a client tunnel is.voidvoidsetOutproxyAuth(boolean val) Sets whether authentication is required for any of the configured outproxies.voidvoidvoidvoidsetPort(int port) what port should this client/httpclient/ircclient listen onvoidsetPostBanTime(int val) voidsetPostCheckTime(int val) voidsetPostMax(int val) POST limitsvoidsetPostTotalBanTime(int val) voidsetPostTotalMax(int val) voidsetPrivKeyFile(String file) What filename is this server tunnel's private keys stored invoidsetProfile(String profile) voidsetProxyAuth(String authType) Sets whether authentication should be used for client proxy tunnels.voidsetProxyList(String proxyList) what HTTP outproxies should be used (httpclient specific)voidvoidvoidsetReachableBy(String reachableBy) what interface should this client/httpclient/ircclient listen onvoidsetReduce(boolean val) voidsetReduceCount(int val) voidsetReduceTime(int val) voidsetRejectInproxy(boolean val) voidsetRejectReferer(boolean val) voidsetRejectUserAgents(boolean val) voidsetShared(boolean val) voidsetSigType(String val) voidsetSpoofedHost(String host) What host does this http server tunnel spoofvoidvoidsetStartOnLoad(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)voidsetTargetDestination(String dest) What peer does this client tunnel point atvoidsetTargetHost(String host) What host does this server tunnel point atvoidsetTargetPort(int port) What port does this server tunnel point atvoidsetTotalDay(int val) voidsetTotalHour(int val) voidsetTotalMinute(int val) voidsetTunnelBackupQuantity(int tunnelBackupQuantity) how many tunnels to hold in reserve to guard against failures In or both in/outvoidsetTunnelBackupQuantityOut(int tunnelBackupQuantity) how many tunnels to hold in reserve to guard against failuresvoidsetTunnelDepth(int tunnelDepth) how many hops to use for inbound tunnels In or both in/outvoidsetTunnelDepthOut(int tunnelDepth) how many hops to use for outbound tunnelsvoidsetTunnelQuantity(int tunnelQuantity) how many parallel inbound tunnels to use In or both in/outvoidsetTunnelQuantityOut(int tunnelQuantity) how many parallel outbound tunnels to usevoidsetTunnelVariance(int tunnelVariance) how much randomisation to apply to the depth of tunnels In or both in/outvoidsetTunnelVarianceOut(int tunnelVariance) how much randomisation to apply to the depth of tunnelsvoidWhat type of tunnel (httpclient, ircclient, client, or server).voidsetUniqueLocal(boolean val) voidsetUseOutproxyPlugin(boolean val) voidsetUserAgents(String val) voidsetUseSSL(boolean val) voidupdateTunnelQuantities(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.
-