diff --git a/config/client_config/huawei_hilink_api.sh b/config/client_config/huawei_hilink_api.sh index c4402a6e..5c9fd809 100644 --- a/config/client_config/huawei_hilink_api.sh +++ b/config/client_config/huawei_hilink_api.sh @@ -232,6 +232,7 @@ function _login() { if ! _sendRequest "api/user/state-login"; then return 1; fi pwtype=$(echo "$response" | sed -rn 's/.*([0-9])<\/password_type>.*/\1/pi') if [ -z "$pwtype" ];then pwtype=4; fi # fallback is type 4 + ret=1 if [[ ! -z "$user" ]] && [[ ! -z "$pw" ]]; then # password encoding # type 3 : base64(pw) encoded @@ -251,12 +252,11 @@ function _login() { tokenlist=( $(cat $header_file | sed -rn 's/^__RequestVerificationToken:\s*([0-9a-z#]*).*$/\1/pi' | sed 's/#/ /g') ) _getToken sessID=$(cat $header_file | grep -ioP 'SessionID=([a-z0-9]*)') - if [ ! -z "$sessID" ] && [ ! -z "$token" ]; then - return 0 - fi + if [ ! -z "$sessID" ] && [ ! -z "$token" ]; then ret=0; fi fi + rm -f $header_file fi - return 1 + return $ret } # logout of hilink device diff --git a/config/client_config/info_huawei_hilink.sh b/config/client_config/info_huawei_hilink.sh index 345c1fe5..24145bef 100644 --- a/config/client_config/info_huawei_hilink.sh +++ b/config/client_config/info_huawei_hilink.sh @@ -14,35 +14,37 @@ # zbchristian 2021 function _setAPIParams() { - if [ ! -z "$hostip" ]; then host="$hostip"; fi - if [ ! -z "$username" ]; then user="$username"; fi - if [ ! -z "$password" ]; then pw="$password"; fi - if [ ! -z "$simpin" ]; then pin="$simpin"; fi + if [ ! -z "$hostip" ]; then host="$hostip"; fi + if [ ! -z "$username" ]; then user="$username"; fi + if [ ! -z "$password" ]; then pw="$password"; fi + if [ ! -z "$simpin" ]; then pin="$simpin"; fi } if [ -z "$1" ]; then echo "none"; exit; fi opt="${1,,}" shift +hostip="192.168.8.1" while [ -n "$1" ]; do case "$1" in - -u|--user) username="$2"; shift ;; - -P|--password) password="$2"; shift ;; - -p|--pin) simpin="$2"; shift ;; - -h|--host) hostip="$2"; shift ;; + -u|--user) username="$2"; shift ;; + -P|--password) password="$2"; shift ;; + -p|--pin) simpin="$2"; shift ;; + -h|--host) hostip="$2"; shift ;; esac shift done status="no valid option given" result="none" +hostip="192.168.8.1" if [ "$opt" = "connected" ]; then source /usr/local/sbin/huawei_hilink_api.sh - if ! _initHilinkAPI; then echo "none"; exit; fi _setAPIParams + if ! _initHilinkAPI; then echo "none"; exit; fi result=$(_getMobileDataStatus) _closeHilinkAPI else - info_file="/tmp/huawei_infos_$host.dat" + info_file="/tmp/huawei_infos_${hostip}_${id -u}.dat" if [ -f "$info_file" ]; then age=$(( $(date +%s) - $(stat $info_file -c %Y) )) if [[ $age -gt 5 ]]; then rm -f $info_file; fi @@ -52,11 +54,11 @@ else infos=$(cat $info_file) else source /usr/local/sbin/huawei_hilink_api.sh + _setAPIParams if ! _initHilinkAPI; then echo "none"; exit; fi - _setAPIParams infos=$(_getAllInformations) _closeHilinkAPI - if [ ! -z "$infos" ]; then echo "$infos" > /tmp/huawei_infos_$host.dat; fi + if [ ! -z "$infos" ]; then echo "$infos" > $info_file; fi fi case "$opt" in diff --git a/includes/get_clients.php b/includes/get_clients.php index 11a74e94..279fbef8 100644 --- a/includes/get_clients.php +++ b/includes/get_clients.php @@ -284,7 +284,7 @@ function setClientState($state) $ipadd = $ipadd[0].'1'; // ip address of the Hilink api $mode = ($state == "up") ? 1 : 0; $pin=$user=$pw=""; - getMobileLogin($pin,$pw,$user) + getMobileLogin($pin,$pw,$user); exec('sudo '.RASPI_CLIENT_SCRIPT_PATH.'/onoff_huawei_hilink.sh -c '.$mode.' -h '.$ipadd.' '.$pin.' '.$user.' '.$pw); break; case "ppp":