defaultroute revision 188710
1100280Sgordon#!/bin/sh 225184Sjkh# 3179566Sbrooks# Wait for the default route to be up 466830Sobrien# 550472Speter# $FreeBSD: head/etc/rc.d/defaultroute 188710 2009-02-17 11:55:50Z mtm $ 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{ 21188009Smtm local output carrier nocarrier 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)" 44179079Sbrooks fi 45179079Sbrooks break 46179079Sbrooks fi 47188710Smtm if [ ${delay} -eq ${defaultroute_delay} ]; then 48188478Smtm echo -n "Waiting ${delay}s for the default route interface: " 49179079Sbrooks else 50179079Sbrooks echo -n . 51179079Sbrooks fi 52179079Sbrooks sleep 1 53179079Sbrooks delay=`expr $delay - 1` 54179079Sbrooks done 55186237Sbrooks 56186237Sbrooks echo 57117019Smtm} 58117019Smtm 59100280Sgordonload_rc_config $name 60100280Sgordonrun_rc_command "$1" 61