diff --git a/libqmi/Makefile b/libqmi/Makefile index ee60b49e9..d149bef84 100644 --- a/libqmi/Makefile +++ b/libqmi/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=libqmi #PKG_SOURCE_VERSION:=1.34.0 -PKG_SOURCE_VERSION:=1.35.3-dev +PKG_SOURCE_VERSION:=1.35.4-dev PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git diff --git a/mptcp/files/usr/share/omr/post-tracking.d/001-post-tracking b/mptcp/files/usr/share/omr/post-tracking.d/001-post-tracking index 4276ea700..f1877904b 100755 --- a/mptcp/files/usr/share/omr/post-tracking.d/001-post-tracking +++ b/mptcp/files/usr/share/omr/post-tracking.d/001-post-tracking @@ -743,20 +743,21 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || ([ "$OMR_TRACKER_INTERFACE" != "omrvpn # ifup $OMR_TRACKER_INTERFACE # sleep 30 #if [ -n "$OMR_TRACKER_INTERFACE" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.proto)" = "modemmanager" ] && [ "$interface_up" = "false" ] && [ "$interface_available" = "false" ] && [ "$interface_pending" = "false" ] && [ "$interface_autostart" = "true" ]; then - if [ -n "$OMR_TRACKER_INTERFACE" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.proto)" = "modemmanager" ] && [ "$interface_autostart" = "true" ]; then + if [ -n "$OMR_TRACKER_INTERFACE" ] && [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.proto)" = "modemmanager" ]; then modemfind="0" for modem in $(timeout 3 mmcli -L | awk -F/ '{ print $6}' | awk '{print $1}'); do modeminfo="$(timeout 2 mmcli -m $modem -K)" device="$(uci -q get network.$OMR_TRACKER_INTERFACE.device)" if [ -n "$(echo $modeminfo | grep $device)" ]; then modemfind="1" - if [ -n "$(echo $modeminfo | grep 'modem.generic.state ' | grep failed)" ]; then + mm_state="$(timeout 2 mmcli -m $modem -K | awk '/modem.generic.state / {print $3}' | tr -d '\n')" + if [ "$mm_state" = "failed" ]; then if [ -n "$(echo $modeminfo | grep 'modem.generic.state-failed-reason' | grep 'unknown-capabilities')" ]; then _log "Interface $OMR_TRACKER_INTERFACE in failed state in ModemManager, reset modem..." /usr/bin/mmcli -m ${modem} -r 2>&1 >/dev/null sleep 30 fi - elif [ -n "$(echo $modeminfo | grep 'modem.generic.state ' | grep connected)" ] || [ -n "$(echo $modeminfo | grep 'modem.generic.state ' | grep enabled)" ]; then + elif [ "$mm_state" = "connected" ] || [ "$mm_state" = "enabled" ]; then # [ -n "$(echo $modeminfo | grep 'modem.3gpp.registration-state ' | grep home)" ]; then _log "No answer from $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE), restart interface" _log "Set $OMR_TRACKER_INTERFACE down" @@ -765,6 +766,19 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || ([ "$OMR_TRACKER_INTERFACE" != "omrvpn _log "Set $OMR_TRACKER_INTERFACE up" ifup $OMR_TRACKER_INTERFACE sleep 30 + elif [ "$mm_state" = "disabled" ]; then + # [ -n "$(echo $modeminfo | grep 'modem.3gpp.registration-state ' | grep home)" ]; then + _log "Interface $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) disabled, set it up" + ifup $OMR_TRACKER_INTERFACE + sleep 30 + elif [ "$mm_state" = "locked" ]; then + # Sometimes PIN is not correctly sent to modem + if [ -z "$(uci -q get network.$OMR_TRACKER_INTERFACE.pin_retry)" ]; then + _log "Interface $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) locked, set PIN" + mmcli -i $(timeout 2 mmcli -m $modem -K | awk '/modem.generic.sim / {print $3}') --pin=$(uci -q get network.$OMR_TRACKER_INTERFACE.pincode) + sleep 30 + uci -q set network.$OMR_TRACKER_INTERFACE.pin_retry=1 + fi fi fi done @@ -1043,6 +1057,7 @@ fi if [ "$OMR_TRACKER_PREV_STATUS" != "" ] && [ "$OMR_TRACKER_PREV_STATUS" != "$OMR_TRACKER_STATUS" ] && [ -n "$OMR_TRACKER_INTERFACE" ]; then _log "$OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) switched up" + uci -q delete network.$OMR_TRACKER_INTERFACE.pin_retry mail_alert="$(uci -q get omr-tracker.$OMR_TRACKER_INTERFACE.mail_alert)" [ -z "$mail_alert" ] && mail_alert="$(uci -q get omr-tracker.defaults.mail_alert)" [ "$mail_alert" = "1" ] && [ -n "$(uci -q get mail.default.to)" ] && { diff --git a/omr-tracker/files/bin/omr-tracker-server b/omr-tracker/files/bin/omr-tracker-server index f518aff37..fafb3e3db 100755 --- a/omr-tracker/files/bin/omr-tracker-server +++ b/omr-tracker/files/bin/omr-tracker-server @@ -134,7 +134,6 @@ _check_master() { local count=0 local countips=0 local changes="0" - local oneserverup="0" config_get master $1 master config_get ip $1 ip config_get port $1 port "65500" @@ -143,6 +142,7 @@ _check_master() { [ "$master" = "1" ] && [ -n "$ip" ] && [ "$disabled" != "1" ] && { check_ip() { local ipd=$1 + server_ping=false #[ -n "$serverip" ] && [ "$server_ping" = true ] && return ipresolve="$(resolveip -4 $ipd | head -n 1)" if [ -n "$ipresolve" ]; then @@ -312,7 +312,6 @@ _check_backup() { local count=0 local countips=0 local changes="0" - local oneserverup="0" config_get backup $1 backup config_get ip $1 ip config_get port $1 port @@ -321,7 +320,8 @@ _check_backup() { [ "$backup" = "1" ] && [ -n "$ip" ] && [ "$disabled" != "1" ] && { check_ip() { local ipd=$1 - [ -n "$serverip" ] && [ "$server_ping" = true ] && return + server_ping=false + #[ -n "$serverip" ] && [ "$server_ping" = true ] && return ipresolve="$(resolveip -4 $ipd | head -n 1)" if [ -n "$ipresolve" ]; then serverip="$ipresolve" @@ -498,9 +498,10 @@ retry=${OMR_TRACKER_TRIES:-4} waittest=${OMR_TRACKER_WAIT_TEST:-0} while true; do server_ping=false + oneserverup="0" config_load openmptcprouter config_foreach _check_master server - [ "$server_ping" = false ] && { + [ "$oneserverup" = "0" ] && { config_load openmptcprouter config_foreach _check_backup server }