Merge remote-tracking branch 'origin/vendor/LIBRESSL'
[dragonfly.git] / etc / rc.d / dhcpcd
1 #!/bin/sh
2
3 # PROVIDE: dhcpcd
4 # REQUIRE: mountcritlocal
5 # KEYWORD: nojail
6
7 . /etc/rc.subr
8 . /etc/network.subr
9
10 name="dhcpcd"
11 rcvar=
12 command="/sbin/$name"
13 extra_commands="reload"
14
15 load_rc_config $name
16 load_rc_config network
17
18 ifn="$2"
19 if [ -z "$ifn" ]; then
20         rcvar=`set_rcvar`  # running in master mode
21 else
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
32 fi
33
34 # Work out what pidfile dhcpcd will use based on flags
35 if [ -n "$flags" ]; then
36         _flags=$flags
37 elif [ -n "$_if_args" ]; then
38         _flags=$_if_args
39 else
40         eval _flags=\$${name}_flags
41 fi
42 pidfile=$($command -P $_flags $command_args 2>/dev/null)
43 : ${pidfile:=/var/run/$name.pid}
44 unset _flags _if_args
45
46 run_rc_command "$@"