pf revision 195026
1261363Sgshapiro#!/bin/sh
290792Sgshapiro#
390792Sgshapiro# $FreeBSD: head/etc/rc.d/pf 195026 2009-06-26 01:04:50Z dougb $
490792Sgshapiro#
590792Sgshapiro
690792Sgshapiro# PROVIDE: pf
790792Sgshapiro# REQUIRE: FILESYSTEMS netif pflog pfsync
890792Sgshapiro# BEFORE:  routing
9266692Sgshapiro# KEYWORD: nojail
1090792Sgshapiro
11266692Sgshapiro. /etc/rc.subr
1290792Sgshapiro
1390792Sgshapironame="pf"
1490792Sgshapirorcvar=`set_rcvar`
1590792Sgshapiroload_rc_config $name
1690792Sgshapirostart_cmd="pf_start"
1790792Sgshapirostop_cmd="pf_stop"
1890792Sgshapirocheck_cmd="pf_check"
1990792Sgshapiroreload_cmd="pf_reload"
2090792Sgshapiroresync_cmd="pf_resync"
2190792Sgshapirostatus_cmd="pf_status"
2290792Sgshapiroextra_commands="check reload resync status"
2390792Sgshapirorequired_files="$pf_rules"
2490792Sgshapirorequired_modules="pf"
2590792Sgshapiro
26112810Sgshapiropf_start()
2790792Sgshapiro{
2890792Sgshapiro	[ -z "${rc_quiet}" ] && echo "Enabling pf."
2990792Sgshapiro	$pf_program -F all > /dev/null 2>&1
3090792Sgshapiro	$pf_program -f "$pf_rules" $pf_flags
3190792Sgshapiro	if ! $pf_program -s info | grep -q "Enabled" ; then
3290792Sgshapiro		$pf_program -e
3390792Sgshapiro	fi
3490792Sgshapiro}
3590792Sgshapiro
3690792Sgshapiropf_stop()
3790792Sgshapiro{
3890792Sgshapiro	if $pf_program -s info | grep -q "Enabled" ; then
3990792Sgshapiro		[ -z "${rc_quiet}" ] && echo "Disabling pf."
4090792Sgshapiro		$pf_program -d
4190792Sgshapiro	fi
4290792Sgshapiro}
4390792Sgshapiro
4490792Sgshapiropf_check()
4590792Sgshapiro{
4690792Sgshapiro	echo "Checking pf rules."
4790792Sgshapiro	$pf_program -n -f "$pf_rules"
4890792Sgshapiro}
4990792Sgshapiro
5090792Sgshapiropf_reload()
5190792Sgshapiro{
5290792Sgshapiro	echo "Reloading pf rules."
5390792Sgshapiro	$pf_program -n -f "$pf_rules" || return 1
5490792Sgshapiro	# Flush everything but existing state entries that way when
5590792Sgshapiro	# rules are read in, it doesn't break established connections.
5690792Sgshapiro	$pf_program -Fnat -Fqueue -Frules -FSources -Finfo -FTables -Fosfp > /dev/null 2>&1
5790792Sgshapiro	$pf_program -f "$pf_rules" $pf_flags
5890792Sgshapiro}
5990792Sgshapiro
6090792Sgshapiropf_resync()
6190792Sgshapiro{
6290792Sgshapiro	$pf_program -f "$pf_rules" $pf_flags
6390792Sgshapiro}
6490792Sgshapiro
6590792Sgshapiropf_status()
6690792Sgshapiro{
6790792Sgshapiro	$pf_program -s info
6890792Sgshapiro}
6990792Sgshapiro
7090792Sgshapirorun_rc_command "$1"
7190792Sgshapiro