xref: /dragonfly/etc/rc.d/dhclient (revision 8a7bdfea)
1#!/bin/sh
2#
3# $NetBSD: dhclient,v 1.8 2002/03/22 04:33:58 thorpej Exp $
4# $FreeBSD: src/etc/rc.d/dhclient,v 1.20.2.4 2007/03/10 14:07:01 yar Exp $
5# $DragonFly: src/etc/rc.d/dhclient,v 1.10 2007/07/10 22:36:01 swildner Exp $
6#
7
8# PROVIDE: dhclient
9# KEYWORD: nojail nostart
10#
11
12. /etc/rc.subr
13. /etc/network.subr
14
15name="dhclient"
16rcvar=
17start_cmd="dhclient_start"
18stop_cmd="dhclient_stop"
19
20dhclient_start()
21{
22	# prevent unnecessary restarts
23	# XXX: dhclient had better create a pidfile
24	if [ -x /bin/pgrep ]; then
25		pids=`/bin/pgrep -f "dhclient: $ifn(\$| .*)"`
26		if [ -n "$pids" ]; then
27			exit 0
28		fi
29	fi
30
31	# Override for $ifn specific flags (see rc.subr for $flags setting)
32	eval specific=\$dhclient_flags_$ifn
33	if [ -z "$flags" -a -n "$specific" ]; then
34		rc_flags=$specific
35	fi
36
37#	eval specific=\$background_dhclient_$ifn
38#	if [ -n "$specific" ]; then
39#		if checkyesno background_dhclient_$ifn; then
40#			rc_flags="${rc_flags} -b"
41#		fi
42#	elif checkyesno background_dhclient; then
43#		rc_flags="${rc_flags} -b"
44#	fi
45
46	${dhclient_program} ${rc_flags} $ifn
47}
48
49dhclient_stop()
50{
51	ifconfig $ifn down	# cause dhclient to die
52}
53
54ifn="$2"
55
56load_rc_config $name
57load_rc_config network
58
59if ! dhcpif $ifn; then
60	return 1
61fi
62
63run_rc_command "$1"
64