]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - etc/rc.d/natd
Backout this commit since it breaks startup and some scripts in
[FreeBSD/FreeBSD.git] / etc / rc.d / natd
1 #!/bin/sh
2 #
3 # $FreeBSD$
4 #
5
6 # PROVIDE: natd
7 # KEYWORD: nostart nojail
8
9 . /etc/rc.subr
10 . /etc/network.subr
11
12 name="natd"
13 rcvar=`set_rcvar`
14 command="/sbin/${name}"
15 pidfile="/var/run/${name}.pid"
16 start_precmd="natd_precmd"
17
18 natd_precmd()
19 {
20         if ! ${SYSCTL} net.inet.divert > /dev/null 2>&1; then
21                 if ! kldload ipdivert; then
22                         warn unable to load IPDIVERT module.
23                         return 1
24                 fi
25         fi
26
27         if [ -n "${natd_interface}" ]; then
28                 dhcp_list="`list_net_interfaces dhcp`"
29                 for ifn in ${dhcp_list}; do
30                         case "${natd_interface}" in
31                         ${ifn})
32                                 rc_flags="$rc_flags -dynamic"
33                                 ;;
34                         esac
35                 done
36
37                 if echo "${natd_interface}" | \
38                     grep -q -E '^[0-9]+(\.[0-9]+){0,3}$'; then
39                         rc_flags="$rc_flags -a ${natd_interface}"
40                 else
41                         rc_flags="$rc_flags -n ${natd_interface}"
42                 fi
43         fi
44
45         return 0
46 }
47
48 load_rc_config $name
49 run_rc_command "$1"