198576Sobrien#!/bin/sh
298576Sobrien#
3113959Smtm# $FreeBSD: releng/10.2/etc/rc.d/ipfs 255450 2013-09-10 13:48:33Z cy $
498576Sobrien#
598576Sobrien
698576Sobrien# PROVIDE: ipfs
7113959Smtm# REQUIRE: ipnat
8136224Smtm# KEYWORD: nojail shutdown
998576Sobrien
1098576Sobrien. /etc/rc.subr
1198576Sobrien
1298576Sobrienname="ipfs"
13230099Sdougbrcvar="ipfs_enable"
1498576Sobrienstart_cmd="ipfs_start"
1598576Sobrienstop_cmd="ipfs_stop"
16124618Smtmstart_precmd="ipfs_prestart"
1798576Sobrien
18113959Smtmipfs_prestart()
19113959Smtm{
20113959Smtm	# Do not continue if either ipnat or ipfilter is not enabled or
21113959Smtm	# if the ipfilter module is not loaded.
22113959Smtm	#
23113959Smtm	if ! checkyesno ipfilter_enable -o ! checkyesno ipnat_enable ; then
24113959Smtm		err 1  "${name} requires either ipfilter or ipnat enabled"
25113959Smtm	fi
26255450Scy	if ! ${ipfilter_program:-/sbin/ipf} -V | grep -q 'Running: yes' >/dev/null 2>&1; then
27113959Smtm		err 1 "ipfilter module is not loaded"
28113959Smtm	fi
29113959Smtm	return 0
30113959Smtm}
31113959Smtm
3298576Sobrienipfs_start()
3398576Sobrien{
3498576Sobrien	if [ -r /var/db/ipf/ipstate.ipf -a -r /var/db/ipf/ipnat.ipf ]; then
35113959Smtm		${ipfs_program} -R ${rc_flags}
3698576Sobrien		rm -f /var/db/ipf/ipstate.ipf /var/db/ipf/ipnat.ipf
3798576Sobrien	fi
3898576Sobrien}
3998576Sobrien
4098576Sobrienipfs_stop()
4198576Sobrien{
4298576Sobrien	if [ ! -d /var/db/ipf ]; then
4398576Sobrien		mkdir /var/db/ipf
4498576Sobrien		chmod 700 /var/db/ipf
4598576Sobrien		chown root:wheel /var/db/ipf
4698576Sobrien	fi
47113959Smtm	${ipfs_program} -W ${rc_flags}
4898576Sobrien}
4998576Sobrien
5098576Sobrienload_rc_config $name
5198576Sobrienrun_rc_command "$1"
52