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