From 2c65173becba282a3194f03d0cc990582d722245 Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Sat, 12 Nov 2016 15:14:43 +0000 Subject: [PATCH] Console: Add IPv6 firewalled setting on /confignet --- .../src/net/i2p/router/web/ConfigNetHandler.java | 14 ++++++++++++++ .../src/net/i2p/router/web/ConfigNetHelper.java | 5 +++++ apps/routerconsole/jsp/confignet.jsp | 2 ++ .../net/i2p/router/transport/TransportUtil.java | 8 ++++---- 4 files changed, 25 insertions(+), 4 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 7e4c7c5f74..8a53fde1c2 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHandler.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHandler.java @@ -52,6 +52,7 @@ public class ConfigNetHandler extends FormHandler { private boolean _udpDisabled; private String _ipv6Mode; private boolean _ipv4Firewalled; + private boolean _ipv6Firewalled; private final Map<String, String> changes = new HashMap<String, String>(); private static final String PROP_HIDDEN = Router.PROP_HIDDEN_HIDDEN; // see Router for other choice @@ -87,6 +88,9 @@ public class ConfigNetHandler extends FormHandler { /** @since 0.9.20 */ public void setIPv4Firewalled(String moo) { _ipv4Firewalled = true; } + + /** @since 0.9.28 */ + public void setIPv6Firewalled(String moo) { _ipv6Firewalled = true; } public void setHostname(String hostname) { _hostname = (hostname != null ? hostname.trim() : null); @@ -366,6 +370,16 @@ public class ConfigNetHandler extends FormHandler { } changes.put(TransportUtil.PROP_IPV4_FIREWALLED, "" + _ipv4Firewalled); + if (Boolean.parseBoolean(_context.getProperty(TransportUtil.PROP_IPV6_FIREWALLED)) != + _ipv6Firewalled) { + if (_ipv6Firewalled) + addFormNotice(_t("Disabling inbound IPv6")); + else + addFormNotice(_t("Enabling inbound IPv6")); + restartRequired = true; + } + changes.put(TransportUtil.PROP_IPV6_FIREWALLED, "" + _ipv6Firewalled); + if (_context.getBooleanPropertyDefaultTrue(TransportManager.PROP_ENABLE_UDP) != !_udpDisabled) { if (_udpDisabled) 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 76b1369888..8222a05723 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHelper.java @@ -90,6 +90,11 @@ public class ConfigNetHelper extends HelperBase { return getChecked(TransportUtil.PROP_IPV4_FIREWALLED); } + /** @since 0.9.28 */ + public String getIPv6FirewalledChecked() { + return getChecked(TransportUtil.PROP_IPV6_FIREWALLED); + } + public String getTcpAutoPortChecked(int mode) { String port = _context.getProperty(PROP_I2NP_NTCP_PORT); boolean specified = port != null && port.length() > 0; diff --git a/apps/routerconsole/jsp/confignet.jsp b/apps/routerconsole/jsp/confignet.jsp index 7b81518e34..4551668637 100644 --- a/apps/routerconsole/jsp/confignet.jsp +++ b/apps/routerconsole/jsp/confignet.jsp @@ -56,6 +56,8 @@ <%=intl._t("Disable inbound (Firewalled by Carrier-grade NAT or DS-Lite)")%> </p><p> <%=intl._t("IPv6 Configuration")%>:<br> + <input type="checkbox" class="optbox" name="IPv6Firewalled" value="true" <jsp:getProperty name="nethelper" property="IPv6FirewalledChecked" /> > + <%=intl._t("Disable inbound (Firewalled by Carrier-grade NAT or DS-Lite)")%><br> <input type="radio" class="optbox" name="ipv6" value="false" <%=nethelper.getIPv6Checked("false") %> > <%=intl._t("Disable IPv6")%><br> <input type="radio" class="optbox" name="ipv6" value="enable" <%=nethelper.getIPv6Checked("enable") %> > diff --git a/router/java/src/net/i2p/router/transport/TransportUtil.java b/router/java/src/net/i2p/router/transport/TransportUtil.java index 16ede3b344..bb4e022d6c 100644 --- a/router/java/src/net/i2p/router/transport/TransportUtil.java +++ b/router/java/src/net/i2p/router/transport/TransportUtil.java @@ -25,6 +25,8 @@ public abstract class TransportUtil { public static final String NTCP_IPV6_CONFIG = "i2np.ntcp.ipv6"; public static final String SSU_IPV6_CONFIG = "i2np.udp.ipv6"; public static final String PROP_IPV4_FIREWALLED = "i2np.ipv4.firewalled"; + /** @since 0.9.28 */ + public static final String PROP_IPV6_FIREWALLED = "i2np.ipv6.firewalled"; public enum IPv6Config { /** IPv6 disabled */ @@ -99,12 +101,10 @@ public abstract class TransportUtil { * This returns true if the force-firewalled setting is configured, false otherwise. * * @param transportStyle ignored - * @since 0.9.27 + * @since 0.9.27, implemented in 0.9.28 */ public static boolean isIPv6Firewalled(RouterContext ctx, String transportStyle) { - // TODO - //return ctx.getBooleanProperty(PROP_IPV6_FIREWALLED); - return false; + return ctx.getBooleanProperty(PROP_IPV6_FIREWALLED); } /** -- GitLab