xref: /freebsd/libexec/rc/rc.d/natd (revision f99f0ee14e3af81c23150a6a340259ca8a33d01a)
10696600cSBjoern A. Zeeb#!/bin/sh
20696600cSBjoern A. Zeeb#
30696600cSBjoern A. Zeeb#
40696600cSBjoern A. Zeeb
50696600cSBjoern A. Zeeb# PROVIDE: natd
60696600cSBjoern A. Zeeb# KEYWORD: nostart nojailvnet
70696600cSBjoern A. Zeeb
80696600cSBjoern A. Zeeb. /etc/rc.subr
90696600cSBjoern A. Zeeb. /etc/network.subr
100696600cSBjoern A. Zeeb
110696600cSBjoern A. Zeebname="natd"
120696600cSBjoern A. Zeebdesc="Network Address Translation daemon"
130696600cSBjoern A. Zeebrcvar="natd_enable"
140696600cSBjoern A. Zeebcommand="/sbin/${name}"
150696600cSBjoern A. Zeebpidfile="/var/run/${name}.pid"
160696600cSBjoern A. Zeebstart_precmd="natd_precmd"
170696600cSBjoern A. Zeebrequired_modules="ipdivert"
180696600cSBjoern A. Zeeb
190696600cSBjoern A. Zeebnatd_precmd()
200696600cSBjoern A. Zeeb{
210696600cSBjoern A. Zeeb	if [ -n "${natd_interface}" ]; then
220696600cSBjoern A. Zeeb		dhcp_list="`list_net_interfaces dhcp`"
230696600cSBjoern A. Zeeb		for ifn in ${dhcp_list}; do
240696600cSBjoern A. Zeeb			case "${natd_interface}" in
250696600cSBjoern A. Zeeb			${ifn})
260696600cSBjoern A. Zeeb				rc_flags="$rc_flags -dynamic"
270696600cSBjoern A. Zeeb				;;
280696600cSBjoern A. Zeeb			esac
290696600cSBjoern A. Zeeb		done
300696600cSBjoern A. Zeeb
310696600cSBjoern A. Zeeb		if echo "${natd_interface}" | \
320696600cSBjoern A. Zeeb		    grep -q -E '^[0-9]+(\.[0-9]+){0,3}$'; then
330696600cSBjoern A. Zeeb			rc_flags="$rc_flags -a ${natd_interface}"
340696600cSBjoern A. Zeeb		else
350696600cSBjoern A. Zeeb			rc_flags="$rc_flags -n ${natd_interface}"
360696600cSBjoern A. Zeeb		fi
370696600cSBjoern A. Zeeb	fi
380696600cSBjoern A. Zeeb
390696600cSBjoern A. Zeeb	return 0
400696600cSBjoern A. Zeeb}
410696600cSBjoern A. Zeeb
420696600cSBjoern A. Zeebload_rc_config $name
43*f99f0ee1SAlexander Leidinger
44*f99f0ee1SAlexander Leidinger# precmd is not compatible with svcj
45*f99f0ee1SAlexander Leidingernatd_svcj="NO"
46*f99f0ee1SAlexander Leidinger
470696600cSBjoern A. Zeebrun_rc_command "$1"
48