mirror of
https://git.freebsd.org/ports.git
synced 2025-05-16 17:21:49 -04:00
99 lines
1.8 KiB
Bash
99 lines
1.8 KiB
Bash
#!/bin/sh
|
|
|
|
# PROVIDE: dhcrelay
|
|
# REQUIRE: DAEMON
|
|
# KEYWORD: shutdown
|
|
#
|
|
# Add the following line to /etc/rc.conf to enable dhcrelay:
|
|
#
|
|
# dhcrelay_enable="YES"
|
|
|
|
# override these variables in /etc/rc.conf
|
|
dhcrelay_enable=${dhcrelay_enable:-"NO"}
|
|
dhcrelay6_enable=${dhcrelay6_enable:-"NO"}
|
|
# dhcrelay_flags="" # command option(s)
|
|
# dhcrelay_servers="" # v4 dhcrelay server(s)
|
|
# dhcrelay_ifaces="" # v4 ethernet interface(s)
|
|
# dhcrelay6_lowers="" # v6 "lower" network interface(s)
|
|
# dhcrelay6_uppers="" # v6 "upper" network interface(s)
|
|
|
|
|
|
case $0 in
|
|
/etc/rc*)
|
|
# during boot (shutdown) $0 is /etc/rc (/etc/rc.shutdown),
|
|
# so get the name of the script from $_file
|
|
name=$_file
|
|
;;
|
|
*)
|
|
name=$0
|
|
;;
|
|
esac
|
|
|
|
name=${name##*/isc-}
|
|
|
|
case ${name} in
|
|
*6)
|
|
ipversion=-6
|
|
;;
|
|
*)
|
|
ipversion=-4
|
|
;;
|
|
esac
|
|
|
|
dhcrelay_precmd ()
|
|
{
|
|
local ifaces _servers _ifaces
|
|
|
|
eval "_servers=\${${name}_servers}"
|
|
eval "_ifaces=\${${name}_ifaces}"
|
|
|
|
if [ -z "${_servers}" ]; then
|
|
err 1 "no ${name} server(s) configured."
|
|
fi
|
|
|
|
ifaces=
|
|
for iface in ${_ifaces}; do
|
|
ifaces="${ifaces} -i ${iface}"
|
|
done
|
|
|
|
rc_flags="${rc_flags} ${ipversion} ${ifaces} ${_servers}"
|
|
}
|
|
|
|
dhcrelay6_precmd ()
|
|
{
|
|
local lowers _lowers uppers _uppers
|
|
|
|
eval "_lowers=\${${name}_lowers}"
|
|
eval "_uppers=\${${name}_uppers}"
|
|
|
|
if [ -z "${_lowers}" ]; then
|
|
err 1 "no ${name} lower(s) configured."
|
|
fi
|
|
|
|
if [ -z "${_uppers}" ]; then
|
|
err 1 "no ${name} upper(s) configured."
|
|
fi
|
|
|
|
lowers=
|
|
for lower in ${_lowers}; do
|
|
lowers="${lowers} -l ${lower}"
|
|
done
|
|
|
|
uppers=
|
|
for upper in ${_uppers}; do
|
|
uppers="${uppers} -u ${upper}"
|
|
done
|
|
|
|
rc_flags="${rc_flags} ${ipversion} ${lowers} ${uppers}"
|
|
}
|
|
|
|
. /etc/rc.subr
|
|
|
|
rcvar=${name}_enable
|
|
|
|
command=%%PREFIX%%/sbin/dhcrelay
|
|
pidfile=/var/run/${name}.pid
|
|
start_precmd=${name}_precmd
|
|
|
|
load_rc_config ${name}
|
|
run_rc_command "$1"
|