uqmi: do not block proto handler if modem is unable to registrate

QMI proto setup-handler will wait forever if it is unable to registrate to
the mobile network. To fix this stop polling network registration status
and notify netifd. Netifd will generate then a "ifup-failed" ACTION.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
openwrt-19.07
Florian Eckert 2018-04-12 13:20:49 +02:00 committed by Koen Vandeputte
parent dee93def39
commit dec1bfa0f4
1 changed files with 10 additions and 1 deletions

View File

@ -123,9 +123,18 @@ proto_qmi_setup() {
uqmi -s -d "$device" --sync > /dev/null 2>&1 uqmi -s -d "$device" --sync > /dev/null 2>&1
echo "Waiting for network registration" echo "Waiting for network registration"
local registration_timeout=0
while uqmi -s -d "$device" --get-serving-system | grep '"searching"' > /dev/null; do while uqmi -s -d "$device" --get-serving-system | grep '"searching"' > /dev/null; do
[ -e "$device" ] || return 1 [ -e "$device" ] || return 1
sleep 5; if [ "$registration_timeout" -lt "$timeout" ]; then
let registration_timeout++
sleep 1;
else
echo "Network registration failed"
proto_notify_error "$interface" NETWORK_REGISTRATION_FAILED
proto_block_restart "$interface"
return 1
fi
done done
[ -n "$modes" ] && uqmi -s -d "$device" --set-network-modes "$modes" > /dev/null 2>&1 [ -n "$modes" ] && uqmi -s -d "$device" --set-network-modes "$modes" > /dev/null 2>&1