1127897Sfjoe#!/bin/sh
2127897Sfjoe#
3127897Sfjoe# $FreeBSD$
4127897Sfjoe#
5127897Sfjoe
6127897Sfjoe# PROVIDE: natd
7136224Smtm# KEYWORD: nostart nojail
8127897Sfjoe
9127897Sfjoe. /etc/rc.subr
10127897Sfjoe. /etc/network.subr
11127897Sfjoe
12127897Sfjoename="natd"
13230099Sdougbrcvar="natd_enable"
14127897Sfjoecommand="/sbin/${name}"
15160671Syarpidfile="/var/run/${name}.pid"
16136791Sandrestart_precmd="natd_precmd"
17165683Syarrequired_modules="ipdivert"
18127897Sfjoe
19136791Sandrenatd_precmd()
20136791Sandre{
21160671Syar	if [ -n "${natd_interface}" ]; then
22160671Syar		dhcp_list="`list_net_interfaces dhcp`"
23160671Syar		for ifn in ${dhcp_list}; do
24160671Syar			case "${natd_interface}" in
25160671Syar			${ifn})
26160671Syar				rc_flags="$rc_flags -dynamic"
27160671Syar				;;
28160671Syar			esac
29160671Syar		done
30136791Sandre
31160671Syar		if echo "${natd_interface}" | \
32160671Syar		    grep -q -E '^[0-9]+(\.[0-9]+){0,3}$'; then
33160671Syar			rc_flags="$rc_flags -a ${natd_interface}"
34127897Sfjoe		else
35160671Syar			rc_flags="$rc_flags -n ${natd_interface}"
36127897Sfjoe		fi
37127897Sfjoe	fi
38160671Syar
39160671Syar	return 0
40127897Sfjoe}
41127897Sfjoe
42127897Sfjoeload_rc_config $name
43127897Sfjoerun_rc_command "$1"
44