1 1.1 roy #!/bin/sh 2 1.1 roy 3 1.1 roy # PROVIDE: dhcpcd 4 1.1 roy # REQUIRE: network mountcritlocal 5 1.1 roy # BEFORE: NETWORKING 6 1.1 roy 7 1.1 roy $_rc_subr_loaded . /etc/rc.subr 8 1.1 roy 9 1.1 roy name=dhcpcd 10 1.1 roy rcvar=$name 11 1.1 roy command=/sbin/$name 12 1.1.12.1 yamt extra_commands="reload" 13 1.1 roy 14 1.1 roy load_rc_config $name 15 1.1.12.1 yamt 16 1.1.12.1 yamt # If the last argument to dhcpcd is a valid interface and the prior argument 17 1.1.12.1 yamt # is not then dhcpcd will start on one interface only and create a pidfile 18 1.1.12.1 yamt # based on the interface name. See PR bin/43490. 19 1.1.12.1 yamt if [ -n "$flags" ]; then 20 1.1.12.1 yamt myflags=$flags 21 1.1.12.1 yamt else 22 1.1.12.1 yamt eval myflags=\$${name}_flags 23 1.1.12.1 yamt fi 24 1.1.12.1 yamt ifname="${myflags##* }" 25 1.1.12.1 yamt myflags="${myflags%% $ifname}" 26 1.1.12.1 yamt last_flag="${myflags##* }" 27 1.1.12.1 yamt if /sbin/ifconfig "$ifname" >/dev/null 2>&1 && 28 1.1.12.1 yamt ! /sbin/ifconfig "$last_flag" >/dev/null 2>&1 29 1.1.12.1 yamt then 30 1.1.12.1 yamt pidfile=/var/run/$name-"$ifname".pid 31 1.1.12.1 yamt else 32 1.1.12.1 yamt pidfile=/var/run/$name.pid 33 1.1.12.1 yamt fi 34 1.1.12.1 yamt unset myflags ifname last_flag 35 1.1.12.1 yamt 36 1.1 roy run_rc_command "$1" 37