1127342Smlaier#!/bin/sh
2127342Smlaier#
3127342Smlaier# $FreeBSD: stable/11/etc/rc.d/pf 335058 2018-06-13 13:15:04Z kp $
4127342Smlaier#
5127342Smlaier
6127342Smlaier# PROVIDE: pf
7195026Sdougb# REQUIRE: FILESYSTEMS netif pflog pfsync
8150836Syar# BEFORE:  routing
9136224Smtm# KEYWORD: nojail
10127342Smlaier
11127342Smlaier. /etc/rc.subr
12127342Smlaier
13127342Smlaiername="pf"
14298514Slmedesc="Packet filter"
15230099Sdougbrcvar="pf_enable"
16127342Smlaierload_rc_config $name
17127342Smlaierstart_cmd="pf_start"
18127342Smlaierstop_cmd="pf_stop"
19136942Spjdcheck_cmd="pf_check"
20127342Smlaierreload_cmd="pf_reload"
21127342Smlaierresync_cmd="pf_resync"
22127342Smlaierstatus_cmd="pf_status"
23222007Shrsextra_commands="check reload resync"
24150839Syarrequired_files="$pf_rules"
25165683Syarrequired_modules="pf"
26127342Smlaier
27127342Smlaierpf_start()
28127342Smlaier{
29197947Sdougb	check_startmsgs && echo -n 'Enabling pf'
30159243Sobrien	$pf_program -F all > /dev/null 2>&1
31150839Syar	$pf_program -f "$pf_rules" $pf_flags
32150839Syar	if ! $pf_program -s info | grep -q "Enabled" ; then
33216499Skevlo		$pf_program -eq
34130954Smlaier	fi
35197947Sdougb	check_startmsgs && echo '.'
36127342Smlaier}
37127342Smlaier
38127342Smlaierpf_stop()
39127342Smlaier{
40150839Syar	if $pf_program -s info | grep -q "Enabled" ; then
41197947Sdougb		echo -n 'Disabling pf'
42216499Skevlo		$pf_program -dq
43197947Sdougb		echo '.'
44127342Smlaier	fi
45127342Smlaier}
46127342Smlaier
47136942Spjdpf_check()
48136942Spjd{
49136942Spjd	echo "Checking pf rules."
50331286Skp	$pf_program -n -f "$pf_rules" $pf_flags
51136942Spjd}
52136942Spjd
53127342Smlaierpf_reload()
54127342Smlaier{
55127342Smlaier	echo "Reloading pf rules."
56332590Skp	pf_resync
57127342Smlaier}
58127342Smlaier
59127342Smlaierpf_resync()
60127342Smlaier{
61332590Skp	$pf_program -n -f "$pf_rules" $pf_flags || return 1
62150839Syar	$pf_program -f "$pf_rules" $pf_flags
63127342Smlaier}
64127342Smlaier
65127342Smlaierpf_status()
66127342Smlaier{
67297315Skp	if ! [ -c /dev/pf ] ; then
68297315Skp		echo "pf.ko is not loaded"
69335058Skp		return 1
70297315Skp	else
71297315Skp		$pf_program -s info
72335058Skp		$pf_program -s Running >/dev/null
73297315Skp	fi
74127342Smlaier}
75127342Smlaier
76127342Smlaierrun_rc_command "$1"
77