xref: /dragonfly/etc/rc.d/dhclient (revision 7485684f)
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#
6
7# PROVIDE: dhclient
8# REQUIRE: FILESYSTEMS
9# KEYWORD: nojail nostart
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: dhclient had better create a pidfile
23	if [ -x /bin/pgrep ]; then
24		pids=`/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	${dhclient_program} ${rc_flags} $ifn
37}
38
39dhclient_stop()
40{
41	${dhclient_program} -x $ifn
42}
43
44ifn="$2"
45
46load_rc_config $name
47load_rc_config network
48
49if ! dhcpif $ifn; then
50	return 1
51fi
52
53run_rc_command "$1"
54