#!/bin/sh
#
# $FreeBSD: stable/6/etc/rc.d/natd 165385 2006-12-20 12:23:57Z yar $
#

# PROVIDE: natd
# KEYWORD: nostart nojail

. /etc/rc.subr
. /etc/network.subr

name="natd"
rcvar=`set_rcvar`
command="/sbin/${name}"
pidfile="/var/run/${name}.pid"
start_precmd="natd_precmd"

natd_precmd()
{
	if ! ${SYSCTL} net.inet.divert > /dev/null 2>&1; then
		if ! kldload ipdivert; then
			warn unable to load IPDIVERT module.
			return 1
		fi
	fi

	if [ -n "${natd_interface}" ]; then
		dhcp_list="`list_net_interfaces dhcp`"
		for ifn in ${dhcp_list}; do
			case "${natd_interface}" in
			${ifn})
				rc_flags="$rc_flags -dynamic"
				;;
			esac
		done

		if echo "${natd_interface}" | \
		    grep -q -E '^[0-9]+(\.[0-9]+){0,3}$'; then
			rc_flags="$rc_flags -a ${natd_interface}"
		else
			rc_flags="$rc_flags -n ${natd_interface}"
		fi
	fi

	return 0
}

load_rc_config $name
run_rc_command "$1"
