travelmate: update 2.0.8-2
authorDirk Brenken <dev@brenken.org>
Sat, 25 Jun 2022 07:34:59 +0000 (09:34 +0200)
committerDirk Brenken <dev@brenken.org>
Sat, 25 Jun 2022 07:44:41 +0000 (09:44 +0200)
* make vpn handling more reliable

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

index 8b345f83564a16b64adfb56f62100b1c49eb2605..861be6544f2fe2b4c5d404b897cd5a1cbf48c274 100644 (file)
@@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=travelmate
 PKG_VERSION:=2.0.8
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 PKG_LICENSE:=GPL-3.0-or-later
 PKG_MAINTAINER:=Dirk Brenken <dev@brenken.org>
 
index f1061c9f74fc98e2254f83cb3c010acf5f57aaa2..87e588cd8680d7ca74258456215edc21bfd2dcaa 100755 (executable)
@@ -185,9 +185,8 @@ f_vpn() {
        vpn="$(f_getval "vpn")"
        vpn_service="$(f_getval "vpnservice")"
        vpn_iface="$(f_getval "vpniface")"
-       [ -z "${vpn_action}" ] && { [ "${vpn}" = "1" ] && vpn_action="enable" || vpn_action="disable"; }
 
-       if [ -x "${trm_vpnpgm}" ] && [ -n "${vpn_service}" ] && [ -n "${vpn_iface}" ] && [ -f "${trm_ntpfile}" ]; then
+       if [ -x "${trm_vpnpgm}" ] && [ -n "${vpn}" ] && [ -n "${vpn_service}" ] && [ -n "${vpn_iface}" ] && [ -f "${trm_ntpfile}" ]; then
                if { [ "${vpn_action}" = "disable" ] && [ -f "${trm_vpnfile}" ]; } ||
                        { [ "${vpn}" = "1" ] && [ "${vpn_action}" = "enable" ] && [ ! -f "${trm_vpnfile}" ]; } ||
                        { [ "${vpn}" != "1" ] && [ "${vpn_action}" = "enable" ] && [ -f "${trm_vpnfile}" ]; }; then
@@ -792,7 +791,7 @@ f_main() {
                                                [ "${sta_essid}" = "${config_essid}" ] && [ "${sta_bssid}" = "${config_bssid}" ]; then
                                                f_ctrack "refresh"
                                                f_log "info" "uplink still in range '${config_radio}/${config_essid}/${config_bssid:-"-"}' with mac '${sta_mac:-"-"}'"
-                                               f_vpn
+                                               f_vpn "enable"
                                                return 0
                                        fi
                                        f_log "debug" "f_main-4 ::: sta_radio: ${sta_radio}, sta_essid: \"${sta_essid}\", sta_bssid: ${sta_bssid:-"-"}"
index 09ce503541bde0aef43a5be180ffe5db4b145694..bd05598bfbac4456d5e87961cc7478d7256a930c 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 # vpn handler called by travelmate
-# Copyright (c) 2020-2021 Dirk Brenken (dev@brenken.org)
+# Copyright (c) 2020-2022 Dirk Brenken (dev@brenken.org)
 # This is free software, licensed under the GNU General Public License v3.
 
 # set (s)hellcheck exceptions
@@ -37,20 +37,18 @@ f_net() {
 vpn_status="$(ubus -S call network.interface."${vpn_iface}" status 2>/dev/null | jsonfilter -q -l1 -e '@.up')"
 case "${vpn_service}" in
        "wireguard")
-               if [ "${vpn_action}" = "enable" ] && [ "${vpn_status:-"false"}" != "true" ]; then
+               if [ "${vpn}" = "1" ] && [ "${vpn_action}" = "enable" ] && [ "${vpn_status:-"false"}" != "true" ]; then
                        ubus call network.interface."${vpn_iface}" up
-               fi
-               if { [ "${vpn}" = "0" ] && [ "${vpn_action}" = "enable" ]; } || { [ "${vpn_action}" = "disable" ] && [ "${vpn_status}" = "true" ]; }; then
+               elif { [ "${vpn}" = "0" ] && [ "${vpn_action}" = "enable" ]; } || [ "${vpn_action}" = "disable" ]; then
                        ubus call network.interface."${vpn_iface}" down
                        "${trm_logger}" -p "info" -t "trm-vpn  [${$}]" "${vpn_service} client connection disabled" 2>/dev/null
                fi
                ;;
        "openvpn")
-               if [ "${vpn_action}" = "enable" ] && [ "${vpn_status:-"false"}" != "true" ]; then
+               if [ "${vpn}" = "1" ] && [ "${vpn_action}" = "enable" ] && [ "${vpn_status:-"false"}" != "true" ]; then
                        ubus call network.interface."${vpn_iface}" up
                        /etc/init.d/openvpn restart >/dev/null 2>&1
-               fi
-               if { [ "${vpn}" = "0" ] && [ "${vpn_action}" = "enable" ]; } || { [ "${vpn_action}" = "disable" ] && [ "${vpn_status}" = "true" ]; }; then
+               elif { [ "${vpn}" = "0" ] && [ "${vpn_action}" = "enable" ]; } || [ "${vpn_action}" = "disable" ]; then
                        ubus call network.interface."${vpn_iface}" down
                        /etc/init.d/openvpn stop >/dev/null 2>&1
                        "${trm_logger}" -p "info" -t "trm-vpn  [${$}]" "${vpn_service} client connection disabled" 2>/dev/null
@@ -78,7 +76,7 @@ if [ "${vpn}" = "1" ] && [ "${vpn_action}" = "enable" ] && [ "${vpn_status:-"fal
                cnt="$((cnt + 1))"
        done
 fi
-if [ "${vpn_action}" = "enable" ] && [ "${vpn_status}" = "true" ]; then
+if [ "${vpn}" = "1" ] && [ "${vpn_action}" = "enable" ] && [ "${vpn_status}" = "true" ]; then
        if [ -f "/etc/init.d/sysntpd" ]; then
                /etc/init.d/sysntpd restart >/dev/null 2>&1
        fi