Bring RCNG in from 5.x and adjust config files and scripts accordingly.
[dragonfly.git] / etc / rc.d / ipfs
1 #!/bin/sh
2 #
3 # $NetBSD: ipfs,v 1.3 2002/02/11 13:55:42 lukem Exp $
4 # $FreeBSD: src/etc/rc.d/ipfs,v 1.2 2003/04/24 08:20:47 mtm Exp $
5 # $DragonFly: src/etc/rc.d/ipfs,v 1.1 2003/07/24 06:35:37 dillon Exp $
6 #
7
8 # PROVIDE: ipfs
9 # REQUIRE: ipnat
10 # BEFORE:  netif
11 # KEYWORD: DragonFly FreeBSD NetBSD shutdown
12
13 . /etc/rc.subr
14
15 name="ipfs"
16 rcvar=`set_rcvar`
17 start_cmd="ipfs_start"
18 stop_cmd="ipfs_stop"
19 case ${OSTYPE} in
20 DragonFly)
21         start_precmd="ipfs_prestart"
22         ;;
23 FreeBSD)
24         start_precmd="ipfs_prestart"
25         ;;
26 NetBSD)
27         ipfs_program="/usr/sbin/ipfs"
28         ;;
29 esac
30
31 ipfs_prestart()
32 {
33         # Do not continue if either ipnat or ipfilter is not enabled or
34         # if the ipfilter module is not loaded.
35         #
36         if ! checkyesno ipfilter_enable -o ! checkyesno ipnat_enable ; then
37                 err 1  "${name} requires either ipfilter or ipnat enabled"
38         fi
39         if ! sysctl net.inet.ipf.fr_pass >/dev/null 2>&1; then
40                 err 1 "ipfilter module is not loaded"
41         fi
42         return 0
43 }
44
45 ipfs_start()
46 {
47         if [ -r /var/db/ipf/ipstate.ipf -a -r /var/db/ipf/ipnat.ipf ]; then
48                 ${ipfs_program} -R ${rc_flags}
49                 rm -f /var/db/ipf/ipstate.ipf /var/db/ipf/ipnat.ipf
50         fi
51 }
52
53 ipfs_stop()
54 {
55         if [ ! -d /var/db/ipf ]; then
56                 mkdir /var/db/ipf
57                 chmod 700 /var/db/ipf
58                 chown root:wheel /var/db/ipf
59         fi
60         ${ipfs_program} -W ${rc_flags}
61 }
62
63 load_rc_config $name
64 run_rc_command "$1"