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