summaryrefslogtreecommitdiffstats
path: root/helper/xml-iptables-safe
diff options
context:
space:
mode:
Diffstat (limited to 'helper/xml-iptables-safe')
-rwxr-xr-xhelper/xml-iptables-safe29
1 files changed, 29 insertions, 0 deletions
diff --git a/helper/xml-iptables-safe b/helper/xml-iptables-safe
new file mode 100755
index 0000000..22e4804
--- /dev/null
+++ b/helper/xml-iptables-safe
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+[ `id -u` = 0 ] || exit 1
+
+export PATH=/sbin:/usr/local/sbin/:/usr/sbin:$PATH
+
+TEMP1=`tempfile`
+TEMP2=`tempfile`
+chmod 600 $TEMP1 $TEMP2
+
+iptables-save > $TEMP1
+xml-iptables $1 > $TEMP2
+ret=$?
+
+if [ "$ret" = "0" ] ; then
+ . $TEMP2
+ ret=$?
+fi
+
+if [ "$ret" = "0" ] ; then
+ echo "Firewall installation succeeded." 2>&1
+else
+ echo "Firewall installation failed." 2>&1
+ iptables-restore < $TEMP1
+fi
+
+rm -f $TEMP1 $TEMP2
+
+exit $ret