|
@@ -0,0 +1,42 @@
|
|
|
+#!/bin/bash
|
|
|
+
|
|
|
+. /lib/functions/network.sh
|
|
|
+
|
|
|
+## if wan is wireless
|
|
|
+unset _COUNT
|
|
|
+while network_get_physdev _IFNAME wan && [[ ! $_IFNAME =~ 'wlan' ]]; do
|
|
|
+ let _COUNT++
|
|
|
+ if [[ $_COUNT -ge 30 ]]; then
|
|
|
+ echo 'wan is not wifi'
|
|
|
+ exit
|
|
|
+ fi
|
|
|
+ echo "waiting for wan conf.. $((30-$_COUNT))"
|
|
|
+ sleep 1
|
|
|
+done
|
|
|
+
|
|
|
+checkWan() {
|
|
|
+ if [[ "$(iw $_IFNAME link)" =~ 'Connected ' ]]; then
|
|
|
+ if [[ "$(route | grep $_IFNAME)" =~ '0.0.0.0' ]]; then
|
|
|
+ return 1
|
|
|
+ fi
|
|
|
+ fi
|
|
|
+ return 0
|
|
|
+}
|
|
|
+
|
|
|
+## if wan is connected and is default gw
|
|
|
+unset _COUNT
|
|
|
+while checkWan; do
|
|
|
+ let _COUNT++
|
|
|
+ if [[ $_COUNT -ge 60 ]]; then
|
|
|
+ echo 'wan wifi is dead, disabling'
|
|
|
+ uci set wireless.@wifi-iface[-1].disabled=1
|
|
|
+ uci commit wireless
|
|
|
+ wifi
|
|
|
+ exit
|
|
|
+ fi
|
|
|
+ echo "waiting for wan wifi.. $((60-$_COUNT))"
|
|
|
+ sleep 1
|
|
|
+done
|
|
|
+
|
|
|
+echo 'wan wifi is connected'
|
|
|
+exit
|