ipfs revision 124616
198576Sobrien#!/bin/sh
298576Sobrien#
398576Sobrien# $NetBSD: ipfs,v 1.3 2002/02/11 13:55:42 lukem Exp $
4113959Smtm# $FreeBSD: head/etc/rc.d/ipfs 124616 2004-01-17 10:16:38Z mtm $
598576Sobrien#
698576Sobrien
798576Sobrien# PROVIDE: ipfs
8113959Smtm# REQUIRE: ipnat
9113959Smtm# BEFORE:  netif
10124616Smtm# KEYWORD: FreeBSD shutdown
1198576Sobrien
1298576Sobrien. /etc/rc.subr
1398576Sobrien
1498576Sobrienname="ipfs"
15113959Smtmrcvar=`set_rcvar`
1698576Sobrienstart_cmd="ipfs_start"
1798576Sobrienstop_cmd="ipfs_stop"
18113959Smtmcase ${OSTYPE} in
19113959SmtmFreeBSD)
20113959Smtm	start_precmd="ipfs_prestart"
21113959Smtm	;;
22113959SmtmNetBSD)
23113959Smtm	ipfs_program="/usr/sbin/ipfs"
24113959Smtm	;;
25113959Smtmesac
2698576Sobrien
27113959Smtmipfs_prestart()
28113959Smtm{
29113959Smtm	# Do not continue if either ipnat or ipfilter is not enabled or
30113959Smtm	# if the ipfilter module is not loaded.
31113959Smtm	#
32113959Smtm	if ! checkyesno ipfilter_enable -o ! checkyesno ipnat_enable ; then
33113959Smtm		err 1  "${name} requires either ipfilter or ipnat enabled"
34113959Smtm	fi
35113959Smtm	if ! sysctl net.inet.ipf.fr_pass >/dev/null 2>&1; then
36113959Smtm		err 1 "ipfilter module is not loaded"
37113959Smtm	fi
38113959Smtm	return 0
39113959Smtm}
40113959Smtm
4198576Sobrienipfs_start()
4298576Sobrien{
4398576Sobrien	if [ -r /var/db/ipf/ipstate.ipf -a -r /var/db/ipf/ipnat.ipf ]; then
44113959Smtm		${ipfs_program} -R ${rc_flags}
4598576Sobrien		rm -f /var/db/ipf/ipstate.ipf /var/db/ipf/ipnat.ipf
4698576Sobrien	fi
4798576Sobrien}
4898576Sobrien
4998576Sobrienipfs_stop()
5098576Sobrien{
5198576Sobrien	if [ ! -d /var/db/ipf ]; then
5298576Sobrien		mkdir /var/db/ipf
5398576Sobrien		chmod 700 /var/db/ipf
5498576Sobrien		chown root:wheel /var/db/ipf
5598576Sobrien	fi
56113959Smtm	${ipfs_program} -W ${rc_flags}
5798576Sobrien}
5898576Sobrien
5998576Sobrienload_rc_config $name
6098576Sobrienrun_rc_command "$1"
61