11.1Sitojun#!/bin/sh
21.1Sitojun#
31.14Smartin# $NetBSD: pf,v 1.14 2020/09/08 12:52:18 martin Exp $
41.1Sitojun#
51.1Sitojun
61.1Sitojun# PROVIDE: pf
71.14Smartin# REQUIRE: root bootconf CRITLOCALMOUNTED tty network dhcpcd
81.6Speter# BEFORE: NETWORKING
91.1Sitojun
101.2Smycroft$_rc_subr_loaded . /etc/rc.subr
111.1Sitojun
121.1Sitojunname="pf"
131.1Sitojunrcvar=$name
141.5Speterstart_precmd="pf_prestart"
151.1Sitojunstart_cmd="pf_start"
161.1Sitojunstop_cmd="pf_stop"
171.1Sitojunreload_cmd="pf_reload"
181.1Sitojunstatus_cmd="pf_status"
191.1Sitojunextra_commands="reload status"
201.1Sitojun
211.5Speterpf_prestart()
221.5Speter{
231.5Speter	if [ ! -f ${pf_rules} ]; then
241.5Speter		warn "${pf_rules} not readable; pf start aborted."
251.5Speter
261.7Sapb		stop_boot
271.5Speter		return 1
281.5Speter	fi
291.5Speter	return 0
301.5Speter}
311.5Speter
321.1Sitojunpf_start()
331.1Sitojun{
341.1Sitojun	echo "Enabling pf firewall."
351.6Speter
361.6Speter	# The pf_boot script has enabled pf already.
371.6Speter	if [ "$autoboot" != yes ]; then
381.12Sskrll		/sbin/pfctl -q ${pf_flags} -e
391.6Speter	fi
401.6Speter
411.4Speter	if [ -f ${pf_rules} ]; then
421.10Sdarcy		/sbin/pfctl -q ${pf_flags} -f ${pf_rules}
431.1Sitojun	else
441.4Speter		warn "${pf_rules} not found; no pf rules loaded."
451.1Sitojun	fi
461.1Sitojun}
471.1Sitojun
481.1Sitojunpf_stop()
491.1Sitojun{
501.1Sitojun	echo "Disabling pf firewall."
511.10Sdarcy	/sbin/pfctl -q ${pf_flags} -Fa -d
521.1Sitojun}
531.1Sitojun
541.1Sitojunpf_reload()
551.1Sitojun{
561.1Sitojun	echo "Reloading pf rules."
571.4Speter	if [ -f ${pf_rules} ]; then
581.10Sdarcy		/sbin/pfctl -q ${pf_flags} -f ${pf_rules}
591.1Sitojun	else
601.4Speter		warn "${pf_rules} not found; no pf rules loaded."
611.1Sitojun	fi
621.1Sitojun}
631.1Sitojun
641.1Sitojunpf_status()
651.1Sitojun{
661.10Sdarcy	/sbin/pfctl ${pf_flags} -s info
671.1Sitojun}
681.1Sitojun
691.1Sitojunload_rc_config $name
701.1Sitojunrun_rc_command "$1"
71