aboutsummaryrefslogtreecommitdiff
path: root/net/travelmate/files/travelmate.sh
diff options
context:
space:
mode:
authorDirk Brenken <dev@brenken.org>2019-02-26 21:11:51 +0100
committerDirk Brenken <dev@brenken.org>2019-02-27 15:08:28 +0100
commitfc4858f99e4992658facfcae757d3c145cebe2b6 (patch)
tree1d2dee84ebf6dd51391448a0c2d07f5fc6c6ad63 /net/travelmate/files/travelmate.sh
parentfeca82971aaba73dee1a12168bcfba17ef31dd8f (diff)
travelmate: release 1.4.0
* various small tweaks & fixes * widely tested, ready for forthcoming 19.x branching Signed-off-by: Dirk Brenken <dev@brenken.org>
Diffstat (limited to 'net/travelmate/files/travelmate.sh')
-rwxr-xr-xnet/travelmate/files/travelmate.sh40
1 files changed, 21 insertions, 19 deletions
diff --git a/net/travelmate/files/travelmate.sh b/net/travelmate/files/travelmate.sh
index c280dff51..f5e5a663b 100755
--- a/net/travelmate/files/travelmate.sh
+++ b/net/travelmate/files/travelmate.sh
@@ -10,7 +10,7 @@
#
LC_ALL=C
PATH="/usr/sbin:/usr/bin:/sbin:/bin"
-trm_ver="1.3.7"
+trm_ver="1.4.0"
trm_sysver="unknown"
trm_enabled=0
trm_debug=0
@@ -145,17 +145,12 @@ f_prep()
#
f_check()
{
- local IFS ifname radio dev_status config sta_essid sta_bssid result cp_domain wait=1 mode="${1}" status="${2:-"false"}"
+ local IFS ifname radio dev_status last_status config sta_essid sta_bssid result cp_domain wait=1 mode="${1}" status="${2:-"false"}"
trm_ifquality=0
- if [ "${mode}" = "initial" ]
+ if [ "${mode}" != "initial" ] && [ "${status}" = "false" ]
then
- trm_ifstatus="false"
- else
- if [ "${status}" = "false" ]
- then
- ubus call network reload
- fi
+ ubus call network reload
fi
while [ ${wait} -le ${trm_maxwait} ]
do
@@ -197,7 +192,7 @@ f_check()
if [ ${trm_ifquality} -ge ${trm_minquality} ]
then
trm_ifstatus="$(ubus -S call network.interface dump 2>/dev/null | jsonfilter -l1 -e "@.interface[@.device=\"${ifname}\"].up")"
- elif [ "${mode}" = "initial" ] && [ ${trm_ifquality} -lt ${trm_minquality} ]
+ elif [ "${mode}" = "initial" ] && [ ${trm_ifquality} -lt ${trm_minquality} ] && [ "${trm_ifstatus}" != "${status}" ]
then
trm_ifstatus="${status}"
sta_essid="$(printf "%s" "${dev_status}" | jsonfilter -l1 -e '@.*.interfaces[@.config.mode="sta"].*.ssid')"
@@ -208,16 +203,17 @@ f_check()
fi
if [ "${mode}" = "initial" ] || [ "${trm_ifstatus}" = "true" ]
then
- if ([ "${trm_ifstatus}" != "true" ] && [ "${trm_ifstatus}" != "${status}" ]) || \
+ json_get_var last_status "travelmate_status"
+ if ([ "${trm_ifstatus}" = "false" ] && [ "${trm_ifstatus}" != "${status}" ]) || \
([ "${trm_ifstatus}" = "true" ] && [ "${mode}" = "sta" ] && [ -n "${trm_active_sta}" ]) || \
- [ ${trm_ifquality} -lt ${trm_minquality} ]
+ [ -z "${last_status}" ] || [ "${last_status}" = "running / not connected" ] || [ ${trm_ifquality} -lt ${trm_minquality} ]
then
f_jsnup
fi
if [ "${mode}" = "initial" ] && [ ${trm_captive} -eq 1 ] && [ "${trm_ifstatus}" = "true" ]
then
result="$(${trm_fetch} --timeout=$(( ${trm_maxwait} / 3 )) "${trm_captiveurl}" -O /dev/null 2>&1 | \
- awk '/^Redirected/{printf "%s" "net cp \047"$NF"\047";exit}/^Download completed/{printf "%s" "net ok";exit}/^Failed|^Connection error/{printf "%s" "net nok";exit}')"
+ awk '/^Failed to redirect|^Redirected/{printf "%s" "net cp \047"$NF"\047";exit}/^Download completed/{printf "%s" "net ok";exit}/^Failed|^Connection error/{printf "%s" "net nok";exit}')"
if [ -n "${result}" ] && ([ -z "${trm_connection}" ] || [ "${result}" != "${trm_connection%/*}" ])
then
cp_domain="$(printf "%s" "${result}" | awk -F "['| ]" '/^net cp/{printf "%s" $4}')"
@@ -411,7 +407,7 @@ f_main()
then
uci_commit wireless
f_log "info" "connected to uplink '${sta_radio}/${sta_essid}/${sta_bssid:-"-"}' (${trm_sysver})"
- return 0
+ return
else
uci -q revert wireless
f_check "rev"
@@ -436,8 +432,8 @@ f_main()
done
cnt=$(( cnt + 1 ))
sleep $(( ${trm_maxwait} / 6 ))
+ unset scan_list
done
- unset scan_list
done
fi
}
@@ -469,14 +465,20 @@ while true
do
if [ -z "${trm_action}" ]
then
+ rc=0
while true
do
- f_check "initial"
- if [ "${trm_ifstatus}" = "true" ]
+ if [ ${rc} -eq 0 ]
+ then
+ f_check "initial"
+ fi
+ sleep ${trm_timeout} 0
+ rc=${?}
+ if [ ${rc} -ne 0 ]
then
- sleep ${trm_timeout} 0
+ f_check "initial"
fi
- if [ $? -eq 0 ] || [ "${trm_ifstatus}" = "false" ]
+ if [ ${rc} -eq 0 ] || ([ ${rc} -ne 0 ] && [ "${trm_ifstatus}" = "false" ])
then
break
fi