3 # How often to test, seconds
5 # "One ping, must have reply in 1 sec"
6 ping_opts="-c1 -W1 -w1"
7 # If ping failed, how soon to retry
9 # Reinit after this many consecutive ping error
11 # Interface whose DHCP data to use
16 echo "`date '+%Y-%m-%d %H:%M:%S'` $*" >>"$0.log"
19 if test -f "$0.log"; then
20 tail -999 "$0.log" >"$0.log.new"
21 mv "$0.log.new" "$0.log"
24 test -f "/var/service/dhcp_$if/dhcp_$if.out" || exec env - sleep "$ping_time"
26 . "/var/service/dhcp_$if/dhcp_$if.out"
27 test x"$router" != x"" || exec env - sleep "$ping_time"
29 #msg "Pinging $router"
32 ping $ping_opts "$router" && exec env - sleep "$ping_time"
34 msg "Failed to ping $router, fail count:$failcnt"
35 test $failcnt -ge $max_fail && break
36 env - sleep "$retry_time"
39 test -d "/var/service/dhcp_$if" && {
40 msg "Restarting /var/service/dhcp_$if"
41 sv t "/var/service/dhcp_$if"
43 test -d "/var/service/supplicant_$if" && {
44 msg "Restarting /var/service/supplicant_$if"
45 sv t "/var/service/supplicant_$if"
47 exec env - sleep "$ping_time"