Add a hack to fix the dhcpcd rc.d script to work with a single
interface specified in dhcpcd_flags in rc.conf(5). Fixes PR bin/43490
This commit is contained in:
parent
b06b1ca6c0
commit
e3bb11dade
|
@ -9,7 +9,27 @@ $_rc_subr_loaded . /etc/rc.subr
|
|||
name=dhcpcd
|
||||
rcvar=$name
|
||||
command=/sbin/$name
|
||||
pidfile=/var/run/$name.pid
|
||||
|
||||
load_rc_config $name
|
||||
|
||||
# If the last argument to dhcpcd is a valid interface and the prior argument
|
||||
# is not then dhcpcd will start on one interface only and create a pidfile
|
||||
# based on the interface name. See PR bin/43490.
|
||||
if [ -n "$flags" ]; then
|
||||
myflags=$flags
|
||||
else
|
||||
eval myflags=\$${name}_flags
|
||||
fi
|
||||
ifname="${myflags##* }"
|
||||
myflags="${myflags%% $ifname}"
|
||||
last_flag="${myflags##* }"
|
||||
if /sbin/ifconfig "$ifname" >/dev/null 2>&1 &&
|
||||
! /sbin/ifconfig "$last_flag" >/dev/null 2>&1
|
||||
then
|
||||
pidfile=/var/run/$name-"$ifname".pid
|
||||
else
|
||||
pidfile=/var/run/$name.pid
|
||||
fi
|
||||
unset myflags ifname last_flag
|
||||
|
||||
run_rc_command "$1"
|
||||
|
|
Loading…
Reference in New Issue