mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 05:54:26 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			45 lines
		
	
	
		
			1004 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1004 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/bin/sh
 | |
| #
 | |
| # This script is called by dsl_cpe_control whenever there is a DSL event,
 | |
| # we only actually care about the DSL_INTERFACE_STATUS events as these
 | |
| # tell us the line has either come up or gone down.
 | |
| #
 | |
| # The rest of the code is basically the same at the atm hotplug code
 | |
| #
 | |
| 
 | |
| [ "$DSL_NOTIFICATION_TYPE" = "DSL_INTERFACE_STATUS" ] || exit 0
 | |
| 
 | |
| . /lib/functions.sh
 | |
| 
 | |
| include /lib/network
 | |
| scan_interfaces
 | |
| 
 | |
| local found=0
 | |
| local ifc
 | |
| for ifc in $interfaces; do
 | |
| 	local up
 | |
| 	config_get_bool up "$ifc" up 0
 | |
| 
 | |
| 	local auto
 | |
| 	config_get_bool auto "$ifc" auto 1
 | |
| 
 | |
| 	local proto
 | |
| 	config_get proto "$ifc" proto
 | |
| 
 | |
| 	if [ "$DSL_INTERFACE_STATUS" = "UP" ]; then
 | |
| 		if [ "$proto" = "pppoa" ] && [ "$up" != 1 ] && [ "$auto" = 1 ]; then
 | |
| 			found=1
 | |
| 			( sleep 1; ifup "$ifc" ) &
 | |
| 		fi
 | |
| 	else
 | |
| 		if [ "$proto" = "pppoa" ] && [ "$up" = 1 ] && [ "$auto" = 1 ]; then
 | |
| 			found=1
 | |
| 			( sleep 1; ifdown "$ifc" ) &
 | |
| 		fi
 | |
| 	fi
 | |
| done
 | |
| 
 | |
| if [ "$found" != 1 ]; then
 | |
| 	logger "Found no matching interface for DSL notification ($DSL_INTERFACE_STATUS)"
 | |
| fi
 |