pf revision 1.6
11.1Sitojun#!/bin/sh
21.1Sitojun#
31.6Speter# $NetBSD: pf,v 1.6 2005/08/23 12:12:56 peter Exp $
41.1Sitojun#
51.1Sitojun
61.1Sitojun# PROVIDE: pf
71.6Speter# REQUIRE: root beforenetlkm mountcritlocal tty network dhclient
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.5Speter		# If booting directly to multiuser, send SIGTERM to
271.5Speter		# the parent (/etc/rc) to abort the boot
281.5Speter		if [ "$autoboot" = yes ]; then
291.5Speter			echo "ERROR: ABORTING BOOT (sending SIGTERM to parent)!"
301.5Speter			kill -TERM $$
311.5Speter			exit 1
321.5Speter		fi
331.5Speter		return 1
341.5Speter	fi
351.5Speter	return 0
361.5Speter}
371.5Speter
381.1Sitojunpf_start()
391.1Sitojun{
401.1Sitojun	echo "Enabling pf firewall."
411.6Speter
421.6Speter	# The pf_boot script has enabled pf already.
431.6Speter	if [ "$autoboot" != yes ]; then
441.6Speter		/sbin/pfctl -q -e 
451.6Speter	fi
461.6Speter
471.4Speter	if [ -f ${pf_rules} ]; then
481.4Speter		/sbin/pfctl -q -f ${pf_rules}
491.1Sitojun	else
501.4Speter		warn "${pf_rules} not found; no pf rules loaded."
511.1Sitojun	fi
521.1Sitojun}
531.1Sitojun
541.1Sitojunpf_stop()
551.1Sitojun{
561.1Sitojun	echo "Disabling pf firewall."
571.3Speter	/sbin/pfctl -q -Fa -d
581.1Sitojun}
591.1Sitojun
601.1Sitojunpf_reload()
611.1Sitojun{
621.1Sitojun	echo "Reloading pf rules."
631.4Speter	if [ -f ${pf_rules} ]; then
641.4Speter		/sbin/pfctl -q -f ${pf_rules}
651.1Sitojun	else
661.4Speter		warn "${pf_rules} not found; no pf rules loaded."
671.1Sitojun	fi
681.1Sitojun}
691.1Sitojun
701.1Sitojunpf_status()
711.1Sitojun{
721.1Sitojun	/sbin/pfctl -s info
731.1Sitojun}
741.1Sitojun
751.1Sitojunload_rc_config $name
761.1Sitojunrun_rc_command "$1"
77