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 7e4c7c5f74be947ad2969dc75fe4e219719a2302..8a53fde1c2882c77ea858dc144c2515c51f93a90 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 76b1369888d1801787eeb2805758af654199d91e..8222a057230d26b65f5e47368df07aeba4d5bca3 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 7b81518e34fc264f88b425b5d648b844fcbf9f9a..4551668637608408ebacf477dcc74a45f874e4b8 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 16ede3b34447095476c3ae04417bf1dfd8749a4a..bb4e022d6c301d0236f7e358bd8aca7a85499a88 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); } /**