summaryrefslogtreecommitdiff
path: root/community/arptables/arptables.rc
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2011-11-29 23:14:46 +0000
committerroot <root@rshg054.dnsready.net>2011-11-29 23:14:46 +0000
commit946f0c9fe48dfb648a8a0be065e92f237ce210fd (patch)
tree13387ae15c5ab9a50acdaa6ab02a076319c19047 /community/arptables/arptables.rc
parent83c3c42a38bda36bdc56d594318958bc4cfd9b32 (diff)
Tue Nov 29 23:14:46 UTC 2011
Diffstat (limited to 'community/arptables/arptables.rc')
-rw-r--r--community/arptables/arptables.rc58
1 files changed, 58 insertions, 0 deletions
diff --git a/community/arptables/arptables.rc b/community/arptables/arptables.rc
new file mode 100644
index 000000000..dae90ac2a
--- /dev/null
+++ b/community/arptables/arptables.rc
@@ -0,0 +1,58 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+[[ -x /usr/sbin/arptables ]] || exit 1
+[[ -x /usr/sbin/arptables-save ]] || exit 1
+[[ -x /usr/sbin/arptables-restore ]] || exit 1
+
+do_start() {
+ stat_busy "Restore arptables rules"
+ if [[ -r /etc/arptables/arptables ]]; then
+ /usr/sbin/arptables-restore </etc/arptables/arptables
+ (( $? == 0 )) && stat_done && add_daemon arptables && return
+ fi
+ stat_fail
+}
+
+do_stop() {
+ stat_busy "Flushing arptables rules"
+ /usr/sbin/arptables-restore </dev/null
+ if (( $? == 0 )); then
+ stat_done
+ rm_daemon arptables
+ else
+ stat_fail
+ fi
+}
+
+do_save() {
+ stat_busy "Saving arptables rules"
+ /usr/sbin/arptables-save >/etc/arptables/arptables
+ (( $? == 0 )) && stat_done || stat_fail
+}
+
+case "$1" in
+ start)
+ do_start
+ ;;
+ stop)
+ do_stop
+ ;;
+ restart)
+ do_stop
+ do_start
+ ;;
+ save)
+ do_save
+ ;;
+ status)
+ /usr/sbin/arptables-save
+ ;;
+ *)
+ echo "Usage $0 {start|stop|restart|save|status}" >&2
+ exit 1
+esac
+
+# vim:set ts=2 sw=2 ft=sh et: