pfsync revision 193198
190792Sgshapiro#!/bin/sh
2261363Sgshapiro#
390792Sgshapiro# $FreeBSD: head/etc/rc.d/pfsync 193198 2009-06-01 05:35:03Z dougb $
490792Sgshapiro#
590792Sgshapiro
690792Sgshapiro# PROVIDE: pfsync
790792Sgshapiro# REQUIRE: FILESYSTEMS
890792Sgshapiro# KEYWORD: nojail
990792Sgshapiro
1090792Sgshapiro. /etc/rc.subr
1190792Sgshapiro
1290792Sgshapironame="pfsync"
1390792Sgshapirorcvar=`set_rcvar`
1490792Sgshapirostart_precmd="pfsync_prestart"
1590792Sgshapirostart_cmd="pfsync_start"
1690792Sgshapirostop_cmd="pfsync_stop"
1790792Sgshapirorequired_modules="pf"
1890792Sgshapiro
1990792Sgshapiropfsync_prestart()
2090792Sgshapiro{
2190792Sgshapiro	# XXX Currently pfsync cannot be a module as it must register
2290792Sgshapiro	# a network protocol in a static kernel table.
2390792Sgshapiro	if ! kldstat -q -m pfsync; then
2490792Sgshapiro		warn "pfsync(4) must be statically compiled in the kernel."
25266692Sgshapiro		return 1
2690792Sgshapiro	fi
2790792Sgshapiro
2890792Sgshapiro	case "$pfsync_syncdev" in
2990792Sgshapiro	'')
3090792Sgshapiro		warn "pfsync_syncdev is not set."
3190792Sgshapiro		return 1
3290792Sgshapiro		;;
3390792Sgshapiro	esac
3490792Sgshapiro	return 0
3590792Sgshapiro}
3690792Sgshapiro
3790792Sgshapiropfsync_start()
3890792Sgshapiro{
3990792Sgshapiro	local _syncpeer
4090792Sgshapiro
4190792Sgshapiro	echo "Enabling pfsync."
4290792Sgshapiro	if [ -n "${pfsync_syncpeer}" ]; then
4390792Sgshapiro		_syncpeer="syncpeer ${pfsync_syncpeer}"
4490792Sgshapiro	fi
4590792Sgshapiro	ifconfig pfsync0 $_syncpeer syncdev $pfsync_syncdev $pfsync_ifconfig up
4690792Sgshapiro}
4790792Sgshapiro
4890792Sgshapiropfsync_stop()
4990792Sgshapiro{
5090792Sgshapiro	echo "Disabling pfsync."
5190792Sgshapiro	ifconfig pfsync0 -syncdev down
5290792Sgshapiro}
5390792Sgshapiro
5490792Sgshapiroload_rc_config $name
5590792Sgshapirorun_rc_command "$1"
5690792Sgshapiro