in keeping the scripts under rc.d in sync with us. So, begin removal of NetBSD specific stuff (which made our scripts more complicated than necessary), starting with the NetBSD KEYWORD.
66 lines
1.1 KiB
Bash
Executable File
66 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# $NetBSD: ipnat,v 1.6 2000/09/19 13:04:38 lukem Exp $
|
|
# $FreeBSD$
|
|
#
|
|
|
|
# PROVIDE: ipnat
|
|
# REQUIRE: ipfilter
|
|
# BEFORE: DAEMON netif
|
|
# KEYWORD: FreeBSD
|
|
|
|
. /etc/rc.subr
|
|
|
|
name="ipnat"
|
|
rcvar=`set_rcvar`
|
|
load_rc_config $name
|
|
|
|
case ${OSTYPE} in
|
|
NetBSD)
|
|
ipnat_flags=
|
|
ipnat_rules="/etc/ipnat.conf"
|
|
ipnat_program="/usr/sbin/ipnat"
|
|
;;
|
|
esac
|
|
|
|
start_precmd="ipnat_precmd"
|
|
start_cmd="ipnat_start"
|
|
stop_cmd="${ipnat_program} -F -C"
|
|
reload_cmd="${ipnat_program} -F -C -f ${ipnat_rules}"
|
|
extra_commands="reload"
|
|
|
|
ipnat_precmd()
|
|
{
|
|
case ${OSTYPE} in
|
|
NetBSD)
|
|
if ! checkyesno ipfilter || [ ! -f /etc/ipf.conf ]; then
|
|
echo "Enabling ipfilter for NAT."
|
|
/sbin/ipf -E -Fa
|
|
fi
|
|
return 0
|
|
;;
|
|
esac
|
|
|
|
# Make sure ipfilter is loaded before continuing
|
|
if ! ${SYSCTL} net.inet.ipf.fr_pass >/dev/null 2>&1; then
|
|
if kldload ipl; then
|
|
info 'IP-filter module loaded.'
|
|
else
|
|
err 1 'IP-filter module failed to load.'
|
|
fi
|
|
fi
|
|
return 0
|
|
}
|
|
|
|
ipnat_start()
|
|
{
|
|
if [ ! -f ${ipnat_rules} ]; then
|
|
warn 'NO IPNAT RULES'
|
|
return 0
|
|
fi
|
|
echo "Installing NAT rules."
|
|
${ipnat_program} -CF -f ${ipnat_rules} ${ipnat_flags}
|
|
}
|
|
|
|
run_rc_command "$1"
|