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