]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - etc/rc.d/ipnat
This commit was generated by cvs2svn to compensate for changes in r162735,
[FreeBSD/FreeBSD.git] / etc / rc.d / ipnat
1 #!/bin/sh
2 #
3 # $NetBSD: ipnat,v 1.6 2000/09/19 13:04:38 lukem Exp $
4 # $FreeBSD$
5 #
6
7 # PROVIDE: ipnat
8 # REQUIRE: ipfilter
9 # BEFORE:  DAEMON netif
10 # KEYWORD: nojail
11
12 . /etc/rc.subr
13
14 name="ipnat"
15 rcvar=`set_rcvar`
16 load_rc_config $name
17 start_precmd="ipnat_precmd"
18 start_cmd="ipnat_start"
19 stop_cmd="${ipnat_program} -F -C"
20 reload_cmd="${ipnat_program} -F -C -f ${ipnat_rules}"
21 extra_commands="reload"
22
23 ipnat_precmd()
24 {
25         # Make sure ipfilter is loaded before continuing
26         if ! ${SYSCTL} net.inet.ipf.fr_pass >/dev/null 2>&1; then
27                 if kldload ipl; then
28                         info 'IP-filter module loaded.'
29                 else
30                         err 1 'IP-filter module failed to load.'
31                 fi
32         fi
33         return 0
34 }
35
36 ipnat_start()
37 {
38         if [ ! -f ${ipnat_rules} ]; then
39                 warn 'NO IPNAT RULES'
40                 return 0
41         fi
42         echo "Installing NAT rules."
43         ${ipnat_program} -CF -f ${ipnat_rules} ${ipnat_flags}
44 }
45
46 run_rc_command "$1"