aboutsummaryrefslogtreecommitdiff
path: root/libexec/rc/rc.d/pfsync
diff options
context:
space:
mode:
Diffstat (limited to 'libexec/rc/rc.d/pfsync')
-rwxr-xr-xlibexec/rc/rc.d/pfsync52
1 files changed, 52 insertions, 0 deletions
diff --git a/libexec/rc/rc.d/pfsync b/libexec/rc/rc.d/pfsync
new file mode 100755
index 000000000000..e2ba9c17cd45
--- /dev/null
+++ b/libexec/rc/rc.d/pfsync
@@ -0,0 +1,52 @@
+#!/bin/sh
+#
+#
+
+# PROVIDE: pfsync
+# REQUIRE: FILESYSTEMS netif
+# KEYWORD: nojailvnet
+
+. /etc/rc.subr
+
+name="pfsync"
+desc="Packet filter state table sychronisation interface"
+rcvar="pfsync_enable"
+start_precmd="pfsync_prestart"
+start_cmd="pfsync_start"
+stop_cmd="pfsync_stop"
+required_modules="pf pfsync"
+
+pfsync_prestart()
+{
+ case "$pfsync_syncdev" in
+ '')
+ warn "pfsync_syncdev is not set."
+ return 1
+ ;;
+ esac
+ return 0
+}
+
+pfsync_start()
+{
+ local _syncpeer
+
+ echo "Enabling pfsync."
+ if [ -n "${pfsync_syncpeer}" ]; then
+ _syncpeer="syncpeer ${pfsync_syncpeer}"
+ fi
+ ifconfig pfsync0 $_syncpeer syncdev $pfsync_syncdev $pfsync_ifconfig up
+}
+
+pfsync_stop()
+{
+ echo "Disabling pfsync."
+ ifconfig pfsync0 -syncdev -syncpeer down
+}
+
+load_rc_config $name
+
+# doesn't make sense to run in a svcj: config setting
+pfsync_svcj="NO"
+
+run_rc_command "$1"