From 8335e6e76c6fe3480123310a20078c12676039a6 Mon Sep 17 00:00:00 2001 From: Dirk Brenken Date: Wed, 26 Jun 2019 22:30:36 +0200 Subject: [PATCH] travelmate: update 1.4.8 * optimize the main scan/iwinfo call (performance & system load): - remove a needless f_trim function call - remove a redundant awk call - reduce the scan buffer size and make it configurable (trm_scanbuffer, default 1024 bytes) * cosmetics Signed-off-by: Dirk Brenken --- net/travelmate/Makefile | 2 +- net/travelmate/files/travelmate.sh | 24 +++++++++++++----------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/net/travelmate/Makefile b/net/travelmate/Makefile index e1682e17e..1ba32dfc6 100644 --- a/net/travelmate/Makefile +++ b/net/travelmate/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=travelmate -PKG_VERSION:=1.4.7 +PKG_VERSION:=1.4.8 PKG_RELEASE:=1 PKG_LICENSE:=GPL-3.0+ PKG_MAINTAINER:=Dirk Brenken diff --git a/net/travelmate/files/travelmate.sh b/net/travelmate/files/travelmate.sh index 94d4211db..ed68c7bb4 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.4.7" +trm_ver="1.4.8" trm_sysver="unknown" trm_enabled=0 trm_debug=0 @@ -19,6 +19,7 @@ trm_captive=1 trm_proactive=1 trm_netcheck=0 trm_captiveurl="http://captive.apple.com" +trm_scanbuffer=1024 trm_minquality=35 trm_maxretry=5 trm_maxwait=30 @@ -394,7 +395,7 @@ f_log() # f_main() { - local IFS cnt dev config scan scan_list scan_essid scan_bssid scan_quality faulty_list + local IFS cnt dev config spec scan_list scan_essid scan_bssid scan_quality faulty_list local station_id sta sta_essid sta_bssid sta_radio sta_iface active_essid active_bssid active_radio f_check "initial" @@ -417,7 +418,7 @@ f_main() f_check "dev" fi json_get_var faulty_list "faulty_stations" - f_log "debug" "f_main ::: iwinfo: ${trm_iwinfo:-"-"}, dev_list: ${trm_devlist:-"-"}, sta_list: ${trm_stalist:0:800}, faulty_list: ${faulty_list:-"-"}" + f_log "debug" "f_main ::: iwinfo: ${trm_iwinfo:-"-"}, dev_list: ${trm_devlist:-"-"}, sta_list: ${trm_stalist:0:${trm_scanbuffer}}, faulty_list: ${faulty_list:-"-"}" # radio loop # for dev in ${trm_devlist} @@ -450,10 +451,11 @@ f_main() f_log "debug" "f_main ::: sta_radio: ${sta_radio}, sta_essid: \"${sta_essid}\", sta_bssid: ${sta_bssid:-"-"}" if [ -z "${scan_list}" ] then - scan_list="$(f_trim "$("${trm_iwinfo}" "${dev}" scan 2>/dev/null | \ - awk 'BEGIN{FS="[ ]"}/Address:/{var1=$NF}/ESSID:/{var2="";for(i=12;i<=NF;i++)if(var2==""){var2=$i}else{var2=var2" "$i};gsub(/,/,".",var2)}/Quality:/{split($NF,var0,"/");printf "%i,%s,%s\n",(var0[1]*100/var0[2]),var1,var2}' | \ - sort -rn | awk 'BEGIN{ORS=","}{print $0}' | awk '{print substr($0,1,4096)}')")" - f_log "debug" "f_main ::: scan_list: ${scan_list:0:800}" + scan_list="$("${trm_iwinfo}" "${dev}" scan 2>/dev/null | \ + awk 'BEGIN{FS="[ ]"}/Address:/{var1=$NF}/ESSID:/{var2="";for(i=12;i<=NF;i++)if(var2==""){var2=$i}else{var2=var2" "$i}; + gsub(/,/,".",var2)}/Quality:/{split($NF,var0,"/");printf "%i,%s,%s\n",(var0[1]*100/var0[2]),var1,var2}' | \ + sort -rn | awk -v buf="${trm_scanbuffer}" 'BEGIN{ORS=","}{print substr($0,1,buf)}')" + f_log "debug" "f_main ::: scan_buffer: ${trm_scanbuffer}, scan_list: ${scan_list}" if [ -z "${scan_list}" ] then f_log "debug" "f_main ::: no scan results on '${dev}' - continue" @@ -463,17 +465,17 @@ f_main() # scan loop # IFS="," - for scan in ${scan_list} + for spec in ${scan_list} do if [ -z "${scan_quality}" ] then - scan_quality="${scan}" + scan_quality="${spec}" elif [ -z "${scan_bssid}" ] then - scan_bssid="${scan}" + scan_bssid="${spec}" elif [ -z "${scan_essid}" ] then - scan_essid="${scan}" + scan_essid="${spec}" fi if [ -n "${scan_quality}" ] && [ -n "${scan_bssid}" ] && [ -n "${scan_essid}" ] then