aboutsummaryrefslogtreecommitdiff
path: root/shorewall6_script
diff options
context:
space:
mode:
Diffstat (limited to 'shorewall6_script')
-rw-r--r--shorewall6_script52
1 files changed, 52 insertions, 0 deletions
diff --git a/shorewall6_script b/shorewall6_script
new file mode 100644
index 0000000..b6d59c7
--- /dev/null
+++ b/shorewall6_script
@@ -0,0 +1,52 @@
+#!/bin/sh
+#
+# Copyright (C) 2015 Tuomo Soini <tis@foobar.fi>
+#
+# License: GPLv2
+#
+
+#
+# event handling script for use with shorewall6 multi-isp setup
+# To be able to utilize this script you must have shorewall6 >= 4.4.23.3
+#
+
+STATE=${1}
+NAME=${2}
+CHECKIP=${3}
+DEVICE=${4}
+WARN_EMAIL=${5}
+REPLIED=${6}
+WAITING=${7}
+TIMEOUT=${8}
+REPLY_LATE=${9}
+CONS_RCVD=${10}
+CONS_WAIT=${11}
+CONS_MISS=${12}
+AVG_RTT=${13}
+SRCIP=${14}
+PREVSTATE=${15}
+TIMESTAMP=${16}
+
+DATE=$(date --date=@${TIMESTAMP})
+
+if [ ${STATE} = up ]; then
+ state=0
+ action=enable
+else
+ state=1
+ action=disable
+fi
+
+VARDIR=$(shorewall6 show vardir)
+VARDIR=${VARDIR:-/var/lib/shorewall6}
+
+echo ${state} > ${VARDIR}/${DEVICE}.status
+
+if [ -x ${VARDIR}/firewall ]; then
+ ${VARDIR}/firewall ${action} ${DEVICE}
+else
+ shorewall6 -q restart
+fi
+
+exit 0
+#