diff options
Diffstat (limited to 'etc/rc.d/natd')
-rw-r--r-- | etc/rc.d/natd | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/etc/rc.d/natd b/etc/rc.d/natd new file mode 100644 index 0000000..53a370d --- /dev/null +++ b/etc/rc.d/natd @@ -0,0 +1,42 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# PROVIDE: natd +# KEYWORD: FreeBSD nostart nojail + +. /etc/rc.subr +. /etc/network.subr + +name="natd" +rcvar=`set_rcvar` +command="/sbin/${name}" +start_cmd="natd_start" + +natd_start() +{ + dhcp_list="`list_net_interfaces dhcp`" + for ifn in ${dhcp_list}; do + case ${natd_interface} in + ${ifn}) + natd_flags="$natd_flags -dynamic" + ;; + *) + ;; + esac + done + if [ -n "${natd_interface}" ]; then + if echo ${natd_interface} | \ + grep -q -E '^[0-9]+(\.[0-9]+){0,3}$'; then + natd_flags="$natd_flags -a ${natd_interface}" + else + natd_flags="$natd_flags -n ${natd_interface}" + fi + fi + echo -n ' natd' + ${natd_program:-/sbin/natd} ${natd_flags} ${natd_ifarg} +} + +load_rc_config $name +run_rc_command "$1" |