defaultroute revision 197697
1101253Stjr#!/bin/sh 2101253Stjr# 3101253Stjr# Wait for the default route to be up 4101253Stjr# 5227753Stheraven# $FreeBSD: head/etc/rc.d/defaultroute 197697 2009-10-02 02:24:25Z hrs $ 6227753Stheraven# 7227753Stheraven 8227753Stheraven# PROVIDE: defaultroute 9227753Stheraven# REQUIRE: devd faith netif stf 10101253Stjr# KEYWORD: nojail 11101253Stjr 12101253Stjr. /etc/rc.subr 13101253Stjr. /etc/network.subr 14101253Stjr 15101253Stjrname="defaultroute" 16101253Stjrstart_cmd="defaultroute_start" 17101253Stjrstop_cmd=":" 18101253Stjr 19101253Stjrdefaultroute_start() 20101253Stjr{ 21101253Stjr local output carrier nocarrier nl 22101253Stjr 23101253Stjr afexists inet || return 0 24101253Stjr 25101253Stjr # Return without waiting if we don't have dhcp interfaces or 26101253Stjr # if none of the dhcp interfaces is plugged in. 27101253Stjr dhcp_interfaces=`list_net_interfaces dhcp` 28101253Stjr [ -z "${dhcp_interfaces}" ] && return 29101253Stjr carrier=false 30101253Stjr for _if in ${dhcp_interfaces}; do 31101253Stjr output=`/sbin/ifconfig ${_if}` 32101253Stjr nocarrier=`expr "${output}" : '.*[[:blank:]]status: \(no carrier\)'` 33101253Stjr [ -z "${nocarrier}" ] && carrier=true 34101253Stjr done 35101253Stjr if ! ${carrier}; then 36101253Stjr return 37101253Stjr fi 38227753Stheraven 39101253Stjr # Wait for a default route 40101253Stjr delay=${defaultroute_delay} 41101253Stjr while [ ${delay} -gt 0 ]; do 42101253Stjr defif=`get_default_if -inet` 43101253Stjr if [ -n "${defif}" ]; then 44101253Stjr if [ ${delay} -ne ${defaultroute_delay} ]; then 45101253Stjr echo -n "($defif)" 46227753Stheraven nl=1 47227753Stheraven fi 48227753Stheraven break 49227753Stheraven fi 50227753Stheraven if [ ${delay} -eq ${defaultroute_delay} ]; then 51101253Stjr echo -n "Waiting ${delay}s for the default route interface: " 52227753Stheraven else 53227753Stheraven echo -n . 54227753Stheraven fi 55227753Stheraven nl=1 56227753Stheraven sleep 1 57101253Stjr delay=$(($delay - 1)) 58227753Stheraven done 59101253Stjr 60228269Sjilles [ -n "$nl" ] && echo 61228269Sjilles} 62228269Sjilles 63228269Sjillesload_rc_config $name 64228269Sjillesrun_rc_command "$1" 65228269Sjilles