]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - etc/rc.d/defaultroute
Implement a "quiet" mode for rc.d/netif, which only outputs
[FreeBSD/FreeBSD.git] / etc / rc.d / defaultroute
1 #!/bin/sh
2 #
3 # Wait for the default route to be up
4 #
5 # $FreeBSD$
6 #
7
8 # PROVIDE: defaultroute
9 # REQUIRE: devd netif network_ipv6
10 # KEYWORD: nojail
11
12 . /etc/rc.subr
13 . /etc/network.subr
14
15 name="defaultroute"
16 start_cmd="defaultroute_start"
17 stop_cmd=":"
18
19 defaultroute_start()
20 {
21         # Return without waiting if we don't have dhcp interfaces.
22         # Once we can test that the link is actually up, we should
23         # remove this test and always wait.
24         dhcp_interfaces=`list_net_interfaces dhcp`
25         [ -z "`list_net_interfaces dhcp`" ] && return
26
27         # Wait for a default route
28         delay=${if_up_delay}
29         while [ ${delay} -gt 0 ]; do
30                 defif=`get_default_if -inet`
31                 if [ -n "${defif}" ]; then
32                         if [ ${delay} -ne ${if_up_delay} ]; then
33                                 echo "($defif)"
34                         fi
35                         break
36                 fi
37                 if [ ${delay} -eq ${if_up_delay} ]; then
38                         echo -n "Waiting ${delay}s for an interface to come up: "
39                 else
40                         echo -n .
41                 fi
42                 sleep 1
43                 delay=`expr $delay - 1`
44         done
45 }
46
47 load_rc_config $name
48 run_rc_command "$1"