1#!/bin/sh 2 3# PROVIDE: dhcpcd 4# REQUIRE: mountcritlocal 5# KEYWORD: nojail 6 7. /etc/rc.subr 8. /etc/network.subr 9 10name="dhcpcd" 11rcvar= 12command="/sbin/$name" 13extra_commands="reload" 14 15load_rc_config $name 16load_rc_config network 17 18ifn="$2" 19if [ -z "$ifn" ]; then 20 rcvar=`set_rcvar` # running in master mode 21else 22 _if_args="$(get_if_var $ifn dhcpcd_flags_IF)" 23 if dhcpif $ifn ipv4 && dhcpif $ifn ipv6; then 24 command_args="$ifn" 25 elif dhcpif $ifn ipv4; then 26 command_args="-4 $ifn" 27 elif dhcpif $ifn ipv6; then 28 command_args="-6 $ifn" 29 else 30 err 1 "$ifn is not enabled for DHCP (IPv4/IPv6)" 31 fi 32fi 33 34# Work out what pidfile dhcpcd will use based on flags 35if [ -n "$flags" ]; then 36 _flags=$flags 37elif [ -n "$_if_args" ]; then 38 _flags=$_if_args 39else 40 eval _flags=\$${name}_flags 41fi 42pidfile=$($command -P $_flags $command_args 2>/dev/null) 43: ${pidfile:=/var/run/$name.pid} 44unset _flags _if_args 45 46run_rc_command "$@" 47