defaultroute revision 197139
1100280Sgordon#!/bin/sh 225184Sjkh# 3179566Sbrooks# Wait for the default route to be up 466830Sobrien# 550472Speter# $FreeBSD: head/etc/rc.d/defaultroute 197139 2009-09-12 22:13:41Z hrs $ 666830Sobrien# 725184Sjkh 8179566Sbrooks# PROVIDE: defaultroute 9197139Shrs# REQUIRE: devd netif 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{ 21197139Shrs local output carrier nocarrier nl 22179079Sbrooks 23188009Smtm # Return without waiting if we don't have dhcp interfaces or 24188009Smtm # if none of the dhcp interfaces is plugged in. 25188009Smtm dhcp_interfaces=`list_net_interfaces dhcp` 26188009Smtm [ -z "${dhcp_interfaces}" ] && return 27188009Smtm carrier=false 28188009Smtm for _if in ${dhcp_interfaces}; do 29188009Smtm output=`/sbin/ifconfig ${_if}` 30188009Smtm nocarrier=`expr "${output}" : '.*[[:blank:]]status: \(no carrier\)'` 31188009Smtm [ -z "${nocarrier}" ] && carrier=true 32188009Smtm done 33188009Smtm if ! ${carrier}; then 34188009Smtm return 35188009Smtm fi 36188009Smtm 37179079Sbrooks # Wait for a default route 38188710Smtm delay=${defaultroute_delay} 39179079Sbrooks while [ ${delay} -gt 0 ]; do 40179079Sbrooks defif=`get_default_if -inet` 41179079Sbrooks if [ -n "${defif}" ]; then 42188710Smtm if [ ${delay} -ne ${defaultroute_delay} ]; then 43186237Sbrooks echo -n "($defif)" 44197139Shrs nl=1 45179079Sbrooks fi 46179079Sbrooks break 47179079Sbrooks fi 48188710Smtm if [ ${delay} -eq ${defaultroute_delay} ]; then 49188478Smtm echo -n "Waiting ${delay}s for the default route interface: " 50179079Sbrooks else 51179079Sbrooks echo -n . 52179079Sbrooks fi 53197139Shrs nl=1 54179079Sbrooks sleep 1 55197139Shrs delay=$(($delay - 1)) 56179079Sbrooks done 57186237Sbrooks 58197139Shrs [ -n "$nl" ] && echo 59117019Smtm} 60117019Smtm 61100280Sgordonload_rc_config $name 62100280Sgordonrun_rc_command "$1" 63