diff --git a/src/www/system_advanced_firewall.php b/src/www/system_advanced_firewall.php index 3f84a6c1d..b16549d8c 100644 --- a/src/www/system_advanced_firewall.php +++ b/src/www/system_advanced_firewall.php @@ -40,9 +40,11 @@ function default_table_entries_size() return $current; } - if ($_SERVER['REQUEST_METHOD'] === 'GET') { $pconfig = array(); + $pconfig['ipv6allow'] = isset($config['system']['ipv6allow']); + $pconfig['ipv6nat_enable'] = isset($config['diag']['ipv6nat']['enable']); + $pconfig['ipv6nat_ipaddr'] = isset($config['diag']['ipv6nat']['ipaddr']) ? $config['diag']['ipv6nat']['ipaddr']:"" ; $pconfig['disablefilter'] = !empty($config['system']['disablefilter']); $pconfig['scrubnodf'] = !empty($config['system']['scrubnodf']); $pconfig['scrubrnid'] = !empty($config['system']['scrubrnid']); @@ -75,6 +77,24 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { $input_errors = array(); /* input validation */ + if (!empty($pconfig['ipv6nat_enable']) && !is_ipaddr($_POST['ipv6nat_ipaddr'])) { + $input_errors[] = gettext("You must specify an IP address to NAT IPv6 packets."); + } + + if (!empty($pconfig['ipv6nat_enable'])) { + $config['diag']['ipv6nat'] = array(); + $config['diag']['ipv6nat']['enable'] = true; + $config['diag']['ipv6nat']['ipaddr'] = $_POST['ipv6nat_ipaddr']; + } elseif (isset($config['diag']['ipv6nat'])) { + unset($config['diag']['ipv6nat']); + } + + if (!empty($pconfig['ipv6allow'])) { + $config['system']['ipv6allow'] = true; + } elseif (isset($config['system']['ipv6allow'])) { + unset($config['system']['ipv6allow']); + } + if ((empty($pconfig['adaptivestart']) && !empty($pconfig['adaptiveend'])) || (!empty($pconfig['adaptivestart']) && empty($pconfig['adaptiveend']))) { $input_errors[] = gettext("The Firewall Adaptive values must be set together."); } @@ -230,6 +250,23 @@ include("head.inc");
+ + +