aboutsummaryrefslogtreecommitdiff
path: root/net/firewalld.sh
diff options
context:
space:
mode:
Diffstat (limited to 'net/firewalld.sh')
-rw-r--r--net/firewalld.sh38
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
+}