diff options
Diffstat (limited to 'libexec/rc/rc.d/natd')
-rwxr-xr-x | libexec/rc/rc.d/natd | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/libexec/rc/rc.d/natd b/libexec/rc/rc.d/natd new file mode 100755 index 000000000000..1c8c1cb50a96 --- /dev/null +++ b/libexec/rc/rc.d/natd @@ -0,0 +1,47 @@ +#!/bin/sh +# +# + +# PROVIDE: natd +# KEYWORD: nostart nojailvnet + +. /etc/rc.subr +. /etc/network.subr + +name="natd" +desc="Network Address Translation daemon" +rcvar="natd_enable" +command="/sbin/${name}" +pidfile="/var/run/${name}.pid" +start_precmd="natd_precmd" +required_modules="ipdivert" + +natd_precmd() +{ + 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 + +# precmd is not compatible with svcj +natd_svcj="NO" + +run_rc_command "$1" |