From fc10031ff010c7d0de44cb01add263f7318b9d02 Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Tue, 28 Apr 2009 22:45:26 +0000 Subject: [PATCH] - Start to rework inbound configuration --- .../net/i2p/router/web/ConfigNetHandler.java | 22 +++++- .../net/i2p/router/web/ConfigNetHelper.java | 76 +++++++++---------- apps/routerconsole/jsp/config.jsp | 24 ++++-- 3 files changed, 71 insertions(+), 51 deletions(-) diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHandler.java index d933d1f9ec..26e03feff8 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHandler.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHandler.java @@ -29,6 +29,7 @@ public class ConfigNetHandler extends FormHandler { private String _udpPort; private boolean _ntcpAutoIP; private boolean _ntcpAutoPort; + private boolean _ntcpInboundDisabled; private boolean _upnp; private String _inboundRate; private String _inboundBurstRate; @@ -58,8 +59,16 @@ public class ConfigNetHandler extends FormHandler { public void setHiddenMode(String moo) { _hiddenMode = true; } public void setDynamicKeys(String moo) { _dynamicKeys = true; } public void setEnableloadtesting(String moo) { _enableLoadTesting = true; } - public void setNtcpAutoIP(String moo) { _ntcpAutoIP = true; } - public void setNtcpAutoPort(String moo) { _ntcpAutoPort = true; } + public void setNtcpAutoIP(String mode) { + _ntcpAutoIP = mode.equals("2"); + if (mode.equals("0")) + _ntcpInboundDisabled = true; + } + public void setNtcpAutoPort(String mode) { + _ntcpAutoPort = mode.equals("2"); + if (mode.equals("0")) + _ntcpInboundDisabled = true; + } public void setUpnp(String moo) { _upnp = true; } public void setHostname(String hostname) { @@ -122,8 +131,12 @@ public class ConfigNetHandler extends FormHandler { String sAutoPort = _context.router().getConfigSetting(ConfigNetHelper.PROP_I2NP_NTCP_AUTO_PORT); boolean oldAutoHost = "true".equalsIgnoreCase(sAutoHost); boolean oldAutoPort = "true".equalsIgnoreCase(sAutoPort); - if (_ntcpHostname == null) _ntcpHostname = ""; - if (_ntcpPort == null) _ntcpPort = ""; + if (_ntcpHostname == null || _ntcpInboundDisabled) _ntcpHostname = ""; + if (_ntcpPort == null || _ntcpInboundDisabled) _ntcpPort = ""; + if (_ntcpInboundDisabled) { + _ntcpAutoIP = false; + _ntcpAutoPort = false; + } if (oldAutoHost != _ntcpAutoIP || ! oldNHost.equalsIgnoreCase(_ntcpHostname)) { if (_ntcpAutoIP) { @@ -162,6 +175,7 @@ public class ConfigNetHandler extends FormHandler { String oldPort = "" + _context.getProperty(UDPTransport.PROP_INTERNAL_PORT, UDPTransport.DEFAULT_INTERNAL_PORT); if (!oldPort.equals(_udpPort)) { _context.router().setConfigSetting(UDPTransport.PROP_INTERNAL_PORT, _udpPort); + _context.router().setConfigSetting(UDPTransport.PROP_EXTERNAL_PORT, _udpPort); addFormNotice("Updating UDP port from " + oldPort + " to " + _udpPort); restartRequired = true; } diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHelper.java index f77ce43722..0814df38e4 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHelper.java @@ -18,6 +18,8 @@ public class ConfigNetHelper extends HelperBase { public final static String PROP_I2NP_NTCP_PORT = "i2np.ntcp.port"; public final static String PROP_I2NP_NTCP_AUTO_PORT = "i2np.ntcp.autoport"; public final static String PROP_I2NP_NTCP_AUTO_IP = "i2np.ntcp.autoip"; + private final static String CHECKED = " checked=\"true\" "; + private final static String DISABLED = " disabled=\"true\" "; public String getNtcphostname() { if (!TransportManager.enableNTCP(_context)) return "\" disabled=\"true"; @@ -70,68 +72,64 @@ public class ConfigNetHelper extends HelperBase { if ( (disabled != null) && ("true".equalsIgnoreCase(disabled)) ) return ""; else - return " checked "; + return CHECKED; } + /** @param prop must default to false */ + public String getChecked(String prop) { + if (Boolean.valueOf(_context.getProperty(prop)).booleanValue()) + return CHECKED; + return ""; + } + public String getHiddenModeChecked() { - String enabled = _context.getProperty(Router.PROP_HIDDEN, "false"); - if ( (enabled != null) && ("true".equalsIgnoreCase(enabled)) ) - return " checked "; - else - return ""; + return getChecked(Router.PROP_HIDDEN); } public String getDynamicKeysChecked() { - String enabled = _context.getProperty(Router.PROP_DYNAMIC_KEYS, "false"); - if ( (enabled != null) && ("true".equalsIgnoreCase(enabled)) ) - return " checked "; - else - return ""; + return getChecked(Router.PROP_DYNAMIC_KEYS); } - public String getTcpAutoPortChecked() { + public String getTcpAutoPortChecked(int mode) { if (!TransportManager.enableNTCP(_context)) - return " disabled=\"true\" "; - String enabled = _context.getProperty(PROP_I2NP_NTCP_AUTO_PORT, "false"); - if ( (enabled != null) && ("true".equalsIgnoreCase(enabled)) ) - return " checked "; - else - return ""; + return DISABLED; + String port = _context.getProperty(PROP_I2NP_NTCP_PORT); + boolean specified = port != null && port.length() > 0; + boolean auto = Boolean.valueOf(_context.getProperty(PROP_I2NP_NTCP_AUTO_PORT)).booleanValue(); + if ((mode == 0 && (!specified) && !auto) || + (mode == 1 && specified && !auto) || + (mode == 2 && auto)) + return CHECKED; + return ""; } - public String getTcpAutoIPChecked() { + public String getTcpAutoIPChecked(int mode) { if (!TransportManager.enableNTCP(_context)) - return " disabled=\"true\" "; - String enabled = _context.getProperty(PROP_I2NP_NTCP_AUTO_IP, "false"); - if ( (enabled != null) && ("true".equalsIgnoreCase(enabled)) ) - return " checked "; - else - return ""; + return DISABLED; + String hostname = _context.getProperty(PROP_I2NP_NTCP_HOSTNAME); + boolean specified = hostname != null && hostname.length() > 0; + boolean auto = Boolean.valueOf(_context.getProperty(PROP_I2NP_NTCP_AUTO_IP)).booleanValue(); + if ((mode == 0 && (!specified) && !auto) || + (mode == 1 && specified && !auto) || + (mode == 2 && auto)) + return CHECKED; + return ""; } public String getUpnpChecked() { - if (Boolean.valueOf(_context.getProperty(TransportManager.PROP_ENABLE_UPNP)).booleanValue()) - return " checked "; - else - return ""; + return getChecked(TransportManager.PROP_ENABLE_UPNP); } public String getRequireIntroductionsChecked() { short status = _context.commSystem().getReachabilityStatus(); switch (status) { case CommSystemFacade.STATUS_OK: - if ("true".equalsIgnoreCase(_context.getProperty(UDPTransport.PROP_FORCE_INTRODUCERS, "false"))) - return "checked=\"true\""; - return ""; + case CommSystemFacade.STATUS_UNKNOWN: + return getChecked(UDPTransport.PROP_FORCE_INTRODUCERS); case CommSystemFacade.STATUS_DIFFERENT: case CommSystemFacade.STATUS_REJECT_UNSOLICITED: - return "checked=\"true\""; - case CommSystemFacade.STATUS_UNKNOWN: - if ("true".equalsIgnoreCase(_context.getProperty(UDPTransport.PROP_FORCE_INTRODUCERS, "false"))) - return "checked=\"true\""; - return ""; default: - return "checked=\"true\""; + return CHECKED; } } @@ -191,7 +189,7 @@ public class ConfigNetHelper extends HelperBase { public String getEnableLoadTesting() { if (LoadTestManager.isEnabled(_context)) - return " checked "; + return CHECKED; else return ""; } diff --git a/apps/routerconsole/jsp/config.jsp b/apps/routerconsole/jsp/config.jsp index 550cdeb55f..4bcf6880c8 100644 --- a/apps/routerconsole/jsp/config.jsp +++ b/apps/routerconsole/jsp/config.jsp @@ -83,18 +83,26 @@ <input type="submit" name="recheckReachability" value="Check network reachability..." /> <p> <b>Inbound TCP connection configuration:</b><br /> - Externally reachable hostname or IP address: + Externally reachable hostname or IP address:<br /> + <input type="radio" name="ntcpAutoIP" value="0" <%=nethelper.getTcpAutoIPChecked(0) %> /> + Disable<br /> + <input type="radio" name="ntcpAutoIP" value="2" <%=nethelper.getTcpAutoIPChecked(2) %> /> + Use IP address detected by SSU + (currently <jsp:getProperty name="nethelper" property="udpIP" />)<br /> + <input type="radio" name="ntcpAutoIP" value="1" <%=nethelper.getTcpAutoIPChecked(1) %> /> + Specify hostname or IP: <input name ="ntcphost" type="text" size="16" value="<jsp:getProperty name="nethelper" property="ntcphostname" />" /> (dyndns and the like are fine)<br /> - OR use IP address detected by SSU - (currently <jsp:getProperty name="nethelper" property="udpIP" />)? - <input type="checkbox" name="ntcpAutoIP" value="true" <jsp:getProperty name="nethelper" property="tcpAutoIPChecked" /> /><br /> <p> - Externally reachable TCP port: + Externally reachable TCP port:<br /> + <input type="radio" name="ntcpAutoPort" value="0" <%=nethelper.getTcpAutoPortChecked(0) %> /> + Disable<br /> + <input type="radio" name="ntcpAutoPort" value="2" <%=nethelper.getTcpAutoPortChecked(2) %> /> + Use the same port configured for SSU + (currently <jsp:getProperty name="nethelper" property="udpPort" />)?<br /> + <input type="radio" name="ntcpAutoPort" value="1" <%=nethelper.getTcpAutoPortChecked(1) %> /> + Specify Port: <input name ="ntcpport" type="text" size="6" value="<jsp:getProperty name="nethelper" property="ntcpport" />" /><br /> - OR use the same port configured for SSU - (currently <jsp:getProperty name="nethelper" property="udpPort" />)? - <input type="checkbox" name="ntcpAutoPort" value="true" <jsp:getProperty name="nethelper" property="tcpAutoPortChecked" /> /><br /> <p>A hostname entered here will be published in the network database. It is <b>not private</b>. Also, <b>do not enter a private IP address</b> like 127.0.0.1 or 192.168.1.1. -- GitLab