1*9f20bfa6SDavid van Moolenbroek#!/bin/sh 2*9f20bfa6SDavid van Moolenbroek 3*9f20bfa6SDavid van Moolenbroek# PROVIDE: dhcpcd 4*9f20bfa6SDavid van Moolenbroek# REQUIRE: network mountcritlocal 5*9f20bfa6SDavid van Moolenbroek# BEFORE: NETWORKING 6*9f20bfa6SDavid van Moolenbroek 7*9f20bfa6SDavid van Moolenbroek$_rc_subr_loaded . /etc/rc.subr 8*9f20bfa6SDavid van Moolenbroek 9*9f20bfa6SDavid van Moolenbroekname=dhcpcd 10*9f20bfa6SDavid van Moolenbroekrcvar=$name 11*9f20bfa6SDavid van Moolenbroekcommand=/sbin/$name 12*9f20bfa6SDavid van Moolenbroekextra_commands="reload" 13*9f20bfa6SDavid van Moolenbroek 14*9f20bfa6SDavid van Moolenbroekload_rc_config $name 15*9f20bfa6SDavid van Moolenbroek 16*9f20bfa6SDavid van Moolenbroek# If the last argument to dhcpcd is a valid interface and the prior argument 17*9f20bfa6SDavid van Moolenbroek# is not then dhcpcd will start on one interface only and create a pidfile 18*9f20bfa6SDavid van Moolenbroek# based on the interface name. See PR bin/43490. 19*9f20bfa6SDavid van Moolenbroekif [ -n "$flags" ]; then 20*9f20bfa6SDavid van Moolenbroek myflags=$flags 21*9f20bfa6SDavid van Moolenbroekelse 22*9f20bfa6SDavid van Moolenbroek eval myflags=\$${name}_flags 23*9f20bfa6SDavid van Moolenbroekfi 24*9f20bfa6SDavid van Moolenbroekifname="${myflags##* }" 25*9f20bfa6SDavid van Moolenbroekmyflags="${myflags%% $ifname}" 26*9f20bfa6SDavid van Moolenbroeklast_flag="${myflags##* }" 27*9f20bfa6SDavid van Moolenbroekif /sbin/ifconfig "$ifname" >/dev/null 2>&1 && 28*9f20bfa6SDavid van Moolenbroek ! /sbin/ifconfig "$last_flag" >/dev/null 2>&1 29*9f20bfa6SDavid van Moolenbroekthen 30*9f20bfa6SDavid van Moolenbroek pidfile=/var/run/$name-"$ifname".pid 31*9f20bfa6SDavid van Moolenbroekelse 32*9f20bfa6SDavid van Moolenbroek pidfile=/var/run/$name.pid 33*9f20bfa6SDavid van Moolenbroekfi 34*9f20bfa6SDavid van Moolenbroekunset myflags ifname last_flag 35*9f20bfa6SDavid van Moolenbroek 36*9f20bfa6SDavid van Moolenbroekrun_rc_command "$1" 37