diff options
Diffstat (limited to 'net/firewalld.sh')
-rw-r--r-- | net/firewalld.sh | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/net/firewalld.sh b/net/firewalld.sh new file mode 100644 index 00000000..b002967b --- /dev/null +++ b/net/firewalld.sh @@ -0,0 +1,38 @@ +# Copyright (c) 2012 Doug Goldstein <cardoe@cardoe.com> +# Released under the 2-clause BSD license. + +firewalld_depend() +{ + after interface + before dhcp + program start firewall-cmd + [ "$IFACE" != "lo" ] && need firewalld +} + +_config_vars="$_config_vars firewalld_zone" + +firewalld_post_start() +{ + local firewalld_zone= + eval firewalld_zone=\$firewalld_zone_${IFVAR} + + _exists || return 0 + + if [ "${IFACE}" != "lo" ]; then + firewall-cmd --zone="${firewalld_zone}" \ + --change-interface="${IFACE}" > /dev/null 2>&1 + fi + + return 0 +} + +firewalld_pre_stop() +{ + _exists || return 0 + + if [ "${IFACE}" != "lo" ]; then + firewall-cmd --remove-interface="${IFACE}" > /dev/null 2>&1 + fi + + return 0 +} |