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>
This commit is contained in:
		 Florian Eckert
					Florian Eckert
				
			
				
					committed by
					
						 Koen Vandeputte
						Koen Vandeputte
					
				
			
			
				
	
			
			
			 Koen Vandeputte
						Koen Vandeputte
					
				
			
						parent
						
							dee93def39
						
					
				
				
					commit
					dec1bfa0f4
				
			| @@ -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 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user