xref: /dragonfly/etc/rc.d/dhcpcd (revision ef944814)
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