From b8b272a5b8e3de3cd1d9e96121160deb644aa74e Mon Sep 17 00:00:00 2001 From: str4d <str4d@mail.i2p> Date: Wed, 11 Mar 2015 10:57:07 +0000 Subject: [PATCH] Better multi-mode setters --- .../net/i2p/i2ptunnel/ui/TunnelConfig.java | 46 ++++++++++++++++--- .../src/net/i2p/i2ptunnel/web/IndexBean.java | 12 ++++- 2 files changed, 50 insertions(+), 8 deletions(-) diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/ui/TunnelConfig.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/ui/TunnelConfig.java index 81202a5db8..c4f0b18fe3 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/ui/TunnelConfig.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/ui/TunnelConfig.java @@ -223,11 +223,28 @@ public class TunnelConfig { protected static final String PROP_ENABLE_ACCESS_LIST = "i2cp.enableAccessList"; protected static final String PROP_ENABLE_BLACKLIST = "i2cp.enableBlackList"; - public void setAccessMode(String val) { - if ("1".equals(val)) + /** + * Controls how other tunnels are checked for access. + * <p/> + * The list used for whitelisting/blacklisting can be set with + * {@link #setAccessList(String)}. + * + * @param mode 0 for no control, 1 for whitelist, 2 for blacklist + */ + public void setAccessMode(int mode) { + switch (mode) { + case 1: _booleanOptions.add(PROP_ENABLE_ACCESS_LIST); - else if ("2".equals(val)) + _booleanOptions.remove(PROP_ENABLE_BLACKLIST); + break; + case 2: + _booleanOptions.remove(PROP_ENABLE_ACCESS_LIST); _booleanOptions.add(PROP_ENABLE_BLACKLIST); + break; + default: + _booleanOptions.remove(PROP_ENABLE_ACCESS_LIST); + _booleanOptions.remove(PROP_ENABLE_BLACKLIST); + } } public void setDelayOpen(boolean val) { @@ -236,11 +253,28 @@ public class TunnelConfig { else _booleanOptions.remove("i2cp.delayOpen"); } - public void setNewDest(String val) { - if ("1".equals(val)) + + /** + * Controls how ephemeral the I2P Destination of a client tunnel is. + * <p/> + * If {@link #setClose(boolean)} is set to true then mode 1 == mode 0. + * + * @param mode 0 for new dest on restart, 1 for new dest on resume from idle, 2 for persistent key + */ + public void setNewDest(int mode) { + switch (mode) { + case 1: _booleanOptions.add("i2cp.newDestOnResume"); - else if ("2".equals(val)) + _booleanOptions.remove("persistentClientKey"); + break; + case 2: + _booleanOptions.remove("i2cp.newDestOnResume"); _booleanOptions.add("persistentClientKey"); + break; + default: + _booleanOptions.remove("i2cp.newDestOnResume"); + _booleanOptions.remove("persistentClientKey"); + } } public void setReduceTime(int val) { diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java index 5cecb3afba..fa440033cb 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java @@ -864,14 +864,22 @@ public class IndexBean { protected static final String PROP_ENABLE_BLACKLIST = "i2cp.enableBlackList"; public void setAccessMode(String val) { - _config.setAccessMode(val); + if (val != null) { + try { + _config.setAccessMode(Integer.parseInt(val.trim())); + } catch (NumberFormatException nfe) {} + } } public void setDelayOpen(String moo) { _config.setDelayOpen(true); } public void setNewDest(String val) { - _config.setNewDest(val); + if (val != null) { + try { + _config.setNewDest(Integer.parseInt(val.trim())); + } catch (NumberFormatException nfe) {} + } } public void setReduceTime(String val) { -- GitLab