From 4c4ac1b583fac788b2f19d93ee3da05846fbfeb2 Mon Sep 17 00:00:00 2001 From: Dirk Brenken Date: Sat, 25 Jun 2022 09:34:59 +0200 Subject: [PATCH] travelmate: update 2.0.8-2 * make vpn handling more reliable Signed-off-by: Dirk Brenken (cherry picked from commit 06784b4e322c9f82f96185bd3ebe7cdba8558eb7) --- net/travelmate/Makefile | 2 +- net/travelmate/files/travelmate.sh | 5 ++--- net/travelmate/files/travelmate.vpn | 14 ++++++-------- 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/net/travelmate/Makefile b/net/travelmate/Makefile index 8b345f835..861be6544 100644 --- a/net/travelmate/Makefile +++ b/net/travelmate/Makefile @@ -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 diff --git a/net/travelmate/files/travelmate.sh b/net/travelmate/files/travelmate.sh index f1061c9f7..87e588cd8 100755 --- a/net/travelmate/files/travelmate.sh +++ b/net/travelmate/files/travelmate.sh @@ -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:-"-"}" diff --git a/net/travelmate/files/travelmate.vpn b/net/travelmate/files/travelmate.vpn index 09ce50354..bd05598bf 100755 --- a/net/travelmate/files/travelmate.vpn +++ b/net/travelmate/files/travelmate.vpn @@ -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