mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 14:04:26 -04:00 
			
		
		
		
	This script was expecting only add/remove events which has not been the case since Kernel 4.12 (which added bind/unbind). Bind events were getting treated as remove events which would cause hotplugged 3g modems to not work. More info: https://lkml.org/lkml/2018/12/23/128 https://github.com/systemd/systemd/issues/8221 Signed-off-by: Arjun AK <arjunak234@gmail.com>
		
			
				
	
	
		
			36 lines
		
	
	
		
			753 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			753 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/bin/sh
 | |
| . /lib/functions.sh
 | |
| . /lib/netifd/netifd-proto.sh
 | |
| 
 | |
| find_3g_iface() {
 | |
| 	local cfg="$1"
 | |
| 	local tty="$2"
 | |
| 
 | |
| 	local proto
 | |
| 	config_get proto "$cfg" proto
 | |
| 	[ "$proto" = 3g ] || [ "$proto" = ncm ] || return 0
 | |
| 
 | |
| 	# bypass state vars here because 00-netstate could clobber .device
 | |
| 	local dev=$(uci_get network "$cfg" device)
 | |
| 
 | |
| 	if [ "${dev##*/}" = "${tty##*/}" ]; then
 | |
| 		if [ "$ACTION" = add ]; then
 | |
| 			proto_set_available "$cfg" 1
 | |
| 		fi
 | |
| 		if [ "$ACTION" = remove ]; then
 | |
| 			proto_set_available "$cfg" 0
 | |
| 		fi
 | |
| 	fi
 | |
| }
 | |
| 
 | |
| [ "$ACTION" = add ] || [ "$ACTION" = remove ] || exit 0
 | |
| 
 | |
| case "$DEVICENAME" in
 | |
| 	tty*)
 | |
| 		[ -e "/dev/$DEVICENAME" ] || [ "$ACTION" = remove ] || exit 0
 | |
| 		config_load network
 | |
| 		config_foreach find_3g_iface interface "/dev/$DEVICENAME"
 | |
| 	;;
 | |
| esac
 | |
| 
 |