* fix stop action in "active" mode
* fix race condition in "active" mode
Signed-off-by: Dirk Brenken <dev@brenken.org>
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>
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'
START=85
USE_PROCD=1
+trm_init="/etc/init.d/travelmate"
trm_script="/usr/bin/travelmate.sh"
boot()
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
}
#
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
}
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