defaultroute revision 186237
1100280Sgordon#!/bin/sh
225184Sjkh#
3179566Sbrooks# Wait for the default route to be up
466830Sobrien#
550472Speter# $FreeBSD: head/etc/rc.d/defaultroute 186237 2008-12-17 17:35:14Z brooks $
666830Sobrien#
725184Sjkh
8179566Sbrooks# PROVIDE: defaultroute
9179566Sbrooks# REQUIRE: devd netif network_ipv6
10136224Smtm# KEYWORD: nojail
1125184Sjkh
12100280Sgordon. /etc/rc.subr
13179079Sbrooks. /etc/network.subr
1425184Sjkh
15179566Sbrooksname="defaultroute"
16179566Sbrooksstart_cmd="defaultroute_start"
17179566Sbrooksstop_cmd=":"
1885831Sdes
19179566Sbrooksdefaultroute_start()
20100280Sgordon{
21179079Sbrooks	# Return without waiting if we don't have dhcp interfaces.
22179079Sbrooks	# Once we can test that the link is actually up, we should
23179079Sbrooks	# remove this test and always wait.
24179079Sbrooks	dhcp_interfaces=`list_net_interfaces dhcp`
25179079Sbrooks	[ -z "`list_net_interfaces dhcp`" ] && return
26179079Sbrooks
27179079Sbrooks	# Wait for a default route
28179079Sbrooks	delay=${if_up_delay}
29179079Sbrooks	while [ ${delay} -gt 0 ]; do
30179079Sbrooks		defif=`get_default_if -inet`
31179079Sbrooks		if [ -n "${defif}" ]; then
32179079Sbrooks			if [ ${delay} -ne ${if_up_delay} ]; then
33186237Sbrooks				echo -n "($defif)"
34179079Sbrooks			fi
35179079Sbrooks			break
36179079Sbrooks		fi
37179079Sbrooks		if [ ${delay} -eq ${if_up_delay} ]; then
38179079Sbrooks			echo -n "Waiting ${delay}s for an interface to come up: "
39179079Sbrooks		else
40179079Sbrooks			echo -n .
41179079Sbrooks		fi
42179079Sbrooks		sleep 1
43179079Sbrooks		delay=`expr $delay - 1`
44179079Sbrooks	done
45186237Sbrooks
46186237Sbrooks	echo
47117019Smtm}
48117019Smtm
49100280Sgordonload_rc_config $name
50100280Sgordonrun_rc_command "$1"
51