travelmate: add support for optional args in auto-login script

This can be helpful for example in hotels where you need to
enter a new user/password combination every week.

Signed-off-by: Johannes Rothe <mail@johannes-rothe.de>
This commit is contained in:
Johannes Rothe 2019-09-19 23:17:42 +02:00
parent b60c169b2c
commit a7f87f939d
3 changed files with 27 additions and 5 deletions

View File

@ -6,7 +6,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=travelmate
PKG_VERSION:=1.4.12
PKG_VERSION:=1.4.13
PKG_RELEASE:=2
PKG_LICENSE:=GPL-3.0-or-later
PKG_MAINTAINER:=Dirk Brenken <dev@brenken.org>

View File

@ -0,0 +1,21 @@
#!/bin/sh
cmd="$(command -v curl)"
url="http://example.com/"
success_string="Thank you!"
if [ ! -x "${cmd}" ]
then
exit 1
fi
response="$("${cmd}" $url -d "password=$2&pwd=$2&username=$1" \
--header "Content-Type:application/x-www-form-urlencoded" -s)"
if echo "${response}" | grep -q "${success_string}";
then
exit 0
else
exit 2
fi

View File

@ -13,7 +13,7 @@
#
LC_ALL=C
PATH="/usr/sbin:/usr/bin:/sbin:/bin"
trm_ver="1.4.12"
trm_ver="1.4.13"
trm_enabled=0
trm_debug=0
trm_iface="trm_wwan"
@ -185,7 +185,7 @@ f_net()
#
f_check()
{
local IFS ifname radio dev_status config sta_essid sta_bssid result uci_essid uci_bssid login_command wait_time mode="${1}" status="${2:-"false"}" cp_domain="${3:-"false"}"
local IFS ifname radio dev_status config sta_essid sta_bssid result uci_essid uci_bssid login_command login_command_args wait_time mode="${1}" status="${2:-"false"}" cp_domain="${3:-"false"}"
if [ "${mode}" != "initial" ] && [ "${status}" = "false" ]
then
@ -293,9 +293,10 @@ f_check()
login_command="$(uci_get "travelmate" "${uci_essid}${uci_bssid}" "command")"
if [ -x "${login_command}" ]
then
"${login_command}" >/dev/null 2>&1
login_command_args="$(uci_get "travelmate" "${uci_essid}${uci_bssid}" "command_args")"
"${login_command}" ${login_command_args} >/dev/null 2>&1
rc=${?}
f_log "info" "captive portal login '${login_command:0:40}' for '${cp_domain}' has been executed with rc '${rc}'"
f_log "info" "captive portal login '${login_command:0:40} ${login_command_args}' for '${cp_domain}' has been executed with rc '${rc}'"
if [ "${rc}" -eq 0 ]
then
result="$(f_net)"