# along with this program. If not, see <http://www.gnu.org/licenses/>. #
# #
###############################################################################
-#
-
-FIREWALL_ZONE_SETTINGS="MASQUERADE POLICY"
function firewall_zone_create() {
local zone=${1}
[ -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
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}
}
function firewall_zone_edit() {
local zone=${1}
+ assert isset zone
shift
assert firewall_zone_exists ${zone}
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})
shift
done
+ # Sanetize saved value.
+ if enabled MASQUERADE4; then
+ MASQUERADE4="true"
+ else
+ MASQUERADE4="false"
+ fi
+
# Write updated settings.
firewall_zone_write ${zone}
)