pf revision 1.5
11.1Sitojun#!/bin/sh
21.1Sitojun#
31.5Speter# $NetBSD: pf,v 1.5 2005/08/10 13:52:05 peter Exp $
41.1Sitojun#
51.1Sitojun
61.1Sitojun# PROVIDE: pf
71.5Speter# REQUIRE: root beforenetlkm mountcritlocal tty
81.5Speter# BEFORE: network
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.1Sitojun	/sbin/pfctl -q -e 
421.4Speter	if [ -f ${pf_rules} ]; then
431.4Speter		/sbin/pfctl -q -f ${pf_rules}
441.1Sitojun	else
451.4Speter		warn "${pf_rules} not found; no pf rules loaded."
461.1Sitojun	fi
471.1Sitojun}
481.1Sitojun
491.1Sitojunpf_stop()
501.1Sitojun{
511.1Sitojun	echo "Disabling pf firewall."
521.3Speter	/sbin/pfctl -q -Fa -d
531.1Sitojun}
541.1Sitojun
551.1Sitojunpf_reload()
561.1Sitojun{
571.1Sitojun	echo "Reloading pf rules."
581.4Speter	if [ -f ${pf_rules} ]; then
591.4Speter		/sbin/pfctl -q -f ${pf_rules}
601.1Sitojun	else
611.4Speter		warn "${pf_rules} not found; no pf rules loaded."
621.1Sitojun	fi
631.1Sitojun}
641.1Sitojun
651.1Sitojunpf_status()
661.1Sitojun{
671.1Sitojun	/sbin/pfctl -s info
681.1Sitojun}
691.1Sitojun
701.1Sitojunload_rc_config $name
711.1Sitojunrun_rc_command "$1"
72