travelmate: update 0.5.0 4200/head
authorDirk Brenken <dev@brenken.org>
Sun, 26 Mar 2017 05:41:04 +0000 (07:41 +0200)
committerDirk Brenken <dev@brenken.org>
Sun, 26 Mar 2017 05:41:04 +0000 (07:41 +0200)
* fix stop action in "active" mode
* fix race condition in "active" mode

Signed-off-by: Dirk Brenken <dev@brenken.org>
net/travelmate/Makefile
net/travelmate/files/travelmate.conf
net/travelmate/files/travelmate.init
net/travelmate/files/travelmate.sh

index 8df09db7d3479f32059bf8859d201e992159e921..9b3048080ebb40fe77695f496a28a7870c12005b 100644 (file)
@@ -6,7 +6,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=travelmate
-PKG_VERSION:=0.4.2
+PKG_VERSION:=0.5.0
 PKG_RELEASE:=1
 PKG_LICENSE:=GPL-3.0+
 PKG_MAINTAINER:=Dirk Brenken <dev@brenken.org>
index d02fffba9a070bac5264fe729224ca861058e287..53c62218d4e76e897eaa9ecbd3e3fcf057ee3df5 100644 (file)
@@ -4,6 +4,7 @@
 config travelmate 'global'
        option trm_enabled '0'
        option trm_debug '0'
+       option trm_iface 'wan wwan'
        option trm_active '0'
        option trm_maxwait '30'
        option trm_maxretry '3'
index 90b8071e81e97d5fdcc63b4b5f861d4b0232c7ed..f17aa1a9e8e6d7dcb0a474c16318f66487b11396 100755 (executable)
@@ -3,6 +3,7 @@
 START=85
 USE_PROCD=1
 
+trm_init="/etc/init.d/travelmate"
 trm_script="/usr/bin/travelmate.sh"
 
 boot()
@@ -23,18 +24,18 @@ start_service()
     fi
 }
 
+stop_service()
+{
+    killall -q -TERM "travelmate.sh"
+}
+
 service_triggers()
 {
     local iface="$(uci -q get travelmate.global.trm_iface)"
 
-    if [ -z "${iface}" ]
-    then
-        procd_add_raw_trigger "interface.*.down" 1000 /etc/init.d/travelmate start
-    else
-        for name in ${iface}
-        do
-            procd_add_interface_trigger "interface.*.down" "${name}" /etc/init.d/travelmate start
-        done
-    fi
-    procd_add_config_trigger "config.change" "travelmate" /etc/init.d/travelmate start
+    for name in ${iface}
+    do
+        procd_add_interface_trigger "interface.*.down" "${name}" "${trm_init}" start
+    done
+    procd_add_config_trigger "config.change" "travelmate" "${trm_init}" start
 }
index 78bc5df8b8f097d7391aa9ea34c7cd5df149aa47..3e277def7545762430df96931e3e4daba5ea7bcf 100755 (executable)
@@ -10,7 +10,7 @@
 #
 LC_ALL=C
 PATH="/usr/sbin:/usr/bin:/sbin:/bin"
-trm_ver="0.4.2"
+trm_ver="0.5.0"
 trm_sysver="$(ubus -S call system board | jsonfilter -e '@.release.description')"
 trm_enabled=1
 trm_debug=0
@@ -233,6 +233,9 @@ f_main()
 }
 
 f_envload
-f_main
-f_active
+if [ ${trm_active} -eq 0 ] || ([ ${trm_active} -eq 1 ] && [ $(pgrep -f "/usr/bin/travelmate.sh" | wc -l) -eq 3 ])
+then
+    f_main
+    f_active
+fi
 exit 0