dhclient revision 174458
1#!/bin/sh
2#
3# $FreeBSD: head/etc/rc.d/dhclient 174458 2007-12-08 22:27:18Z dougb $
4#
5
6# PROVIDE: dhclient
7# KEYWORD: nojail nostart
8
9. /etc/rc.subr
10. /etc/network.subr
11
12name="dhclient"
13rcvar=
14start_cmd="dhclient_start"
15stop_cmd="dhclient_stop"
16
17dhclient_start()
18{
19	# prevent unnecessary restarts
20	# XXX: dhclient had better create a pidfile
21	if [ -x /bin/pgrep ]; then
22		pids=`/bin/pgrep -f "dhclient: $ifn(\$| .*)"`
23		if [ -n "$pids" ]; then
24			exit 0
25		fi
26	fi
27
28	# Override for $ifn specific flags (see rc.subr for $flags setting)
29	specific=`get_if_var $ifn dhclient_flags_IF`
30	if [ -z "$flags" -a -n "$specific" ]; then
31		rc_flags=$specific
32	fi
33
34	background_dhclient=`get_if_var $ifn background_dhclient_IF $background_dhclient`
35	if checkyesno background_dhclient; then
36		rc_flags="${rc_flags} -b"
37	fi
38
39	${dhclient_program} ${rc_flags} $ifn
40}
41
42dhclient_stop()
43{
44	ifconfig $ifn down	# cause dhclient to die
45}
46
47ifn="$2"
48
49load_rc_config $name
50load_rc_config network
51
52if ! dhcpif $ifn; then
53	return 1
54fi
55
56run_rc_command "$1"
57