xref: /dragonfly/etc/rc.d/dhclient (revision 335b9e93)
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.11 2008/08/30 21:21:40 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	${dhclient_program} ${rc_flags} $ifn
38}
39
40dhclient_stop()
41{
42	${dhclient_program} -x $ifn
43}
44
45ifn="$2"
46
47load_rc_config $name
48load_rc_config network
49
50if ! dhcpif $ifn; then
51	return 1
52fi
53
54run_rc_command "$1"
55