NetBSD/etc/rc.d/ipnat
lukem 1ecb0d140f Use 'load_rc_config_var CMD VAR' to set VAR for "foreign" rc.conf(5)
variables that may be set in /etc/rc.conf.d/CMD instead of /etc/rc.conf.
Fixes PR 20768 from Pavel Cahyna.
2004-10-12 14:51:03 +00:00

41 lines
882 B
Bash
Executable File

#!/bin/sh
#
# $NetBSD: ipnat,v 1.13 2004/10/12 14:51:03 lukem Exp $
#
# PROVIDE: ipnat
# REQUIRE: ipfilter mountcritremote
# BEFORE: SERVERS
$_rc_subr_loaded . /etc/rc.subr
name="ipnat"
rcvar=$name
config="/etc/ipnat.conf"
start_cmd="ipnat_start"
stop_cmd="/usr/sbin/ipnat -F -C"
reload_cmd="/usr/sbin/ipnat -C -f ${config}"
restart_cmd="/usr/sbin/ipnat -F -C -f ${config}"
extra_commands="reload"
ipnat_start()
{
if [ ! -f ${config} ]; then
return 0
fi
if [ "$(/sbin/sysctl -n net.inet.ip.forwarding)" = "0" ]; then
logger -s -p daemon.warning -t ipnat \
"WARNING: net.inet.ip.forwarding is 0"
fi
if ! checkyesno ipfilter || [ ! -f /etc/ipf.conf ]; then
echo "Enabling ipfilter for NAT."
/sbin/ipf -E -Fa
fi
echo -n "Installing NAT rules ... "
/usr/sbin/ipnat -F -f ${config}
}
load_rc_config $name
load_rc_config_var ipfilter ipfilter
run_rc_command "$1"