]> CyberLeo.Net >> Repos - FreeBSD/releng/7.2.git/blob - etc/rc.d/ipfs
Create releng/7.2 from stable/7 in preparation for 7.2-RELEASE.
[FreeBSD/releng/7.2.git] / etc / rc.d / ipfs
1 #!/bin/sh
2 #
3 # $FreeBSD$
4 #
5
6 # PROVIDE: ipfs
7 # REQUIRE: ipnat
8 # BEFORE:  netif
9 # KEYWORD: nojail shutdown
10
11 . /etc/rc.subr
12
13 name="ipfs"
14 rcvar=`set_rcvar`
15 start_cmd="ipfs_start"
16 stop_cmd="ipfs_stop"
17 start_precmd="ipfs_prestart"
18
19 ipfs_prestart()
20 {
21         # Do not continue if either ipnat or ipfilter is not enabled or
22         # if the ipfilter module is not loaded.
23         #
24         if ! checkyesno ipfilter_enable -o ! checkyesno ipnat_enable ; then
25                 err 1  "${name} requires either ipfilter or ipnat enabled"
26         fi
27         if ! sysctl net.inet.ipf.fr_pass >/dev/null 2>&1; then
28                 err 1 "ipfilter module is not loaded"
29         fi
30         return 0
31 }
32
33 ipfs_start()
34 {
35         if [ -r /var/db/ipf/ipstate.ipf -a -r /var/db/ipf/ipnat.ipf ]; then
36                 ${ipfs_program} -R ${rc_flags}
37                 rm -f /var/db/ipf/ipstate.ipf /var/db/ipf/ipnat.ipf
38         fi
39 }
40
41 ipfs_stop()
42 {
43         if [ ! -d /var/db/ipf ]; then
44                 mkdir /var/db/ipf
45                 chmod 700 /var/db/ipf
46                 chown root:wheel /var/db/ipf
47         fi
48         ${ipfs_program} -W ${rc_flags}
49 }
50
51 load_rc_config $name
52 run_rc_command "$1"