]> git.ipfire.org Git - people/stevee/network.git/blobdiff - functions.firewall-zones
firewall: ipv6: Discard all packets with rounting header of type zero.
[people/stevee/network.git] / functions.firewall-zones
index 70251988fa04e1ecca4d76e847401cbab1cc51e3..69129e38700f069cdada4c11c323414bfba1abaf 100644 (file)
@@ -18,9 +18,6 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
 #                                                                             #
 ###############################################################################
-#
-
-FIREWALL_ZONE_SETTINGS="MASQUERADE POLICY"
 
 function firewall_zone_create() {
        local zone=${1}
@@ -52,17 +49,6 @@ function firewall_zone_exists() {
        [ -r "${file}" ] && return ${EXIT_TRUE} || return ${EXIT_FALSE}
 }
 
-function firewall_zone_defaults() {
-       local zone=${1}
-       assert isset zone
-
-       # Default policy.
-       POLICY="DROP"
-
-       # Don't masquerade by default (IPv4 only).
-       MASQUERADE="false"
-}
-
 function firewall_zone_read() {
        local zone=${1}
        assert isset zone
@@ -70,10 +56,16 @@ function firewall_zone_read() {
        local file=$(firewall_zone_config ${zone})
        assert isset file
 
-       # Load default settings.
-       firewall_zone_defaults ${zone}
-
        config_read ${file} ${FIREWALL_ZONE_SETTINGS}
+
+       local arg default
+       for arg in ${FIREWALL_ZONE_SETTINGS}; do
+               isset ${arg} && continue
+
+               default="FIREWALL_ZONE_SETTINGS_${arg}"
+               assign "${arg}" "${!default}"
+       done
+
        return ${EXIT_OK}
 }
 
@@ -102,6 +94,7 @@ function firewall_zone_print() {
 
 function firewall_zone_edit() {
        local zone=${1}
+       assert isset zone
        shift
 
        assert firewall_zone_exists ${zone}
@@ -112,8 +105,8 @@ function firewall_zone_edit() {
 
                while [ $# -gt 0 ]; do
                        case "${1}" in
-                               --masquerade=*)
-                                       MASQUERADE=$(cli_get_val ${1})
+                               --masquerade4=*)
+                                       MASQUERADE4=$(cli_get_val ${1})
                                        ;;
                                --policy=*)
                                        POLICY=$(cli_get_val ${1})
@@ -125,6 +118,13 @@ function firewall_zone_edit() {
                        shift
                done
 
+               # Sanetize saved value.
+               if enabled MASQUERADE4; then
+                       MASQUERADE4="true"
+               else
+                       MASQUERADE4="false"
+               fi
+
                # Write updated settings.
                firewall_zone_write ${zone}
        )