mirror of
				https://github.com/Ysurac/openmptcprouter-feeds.git
				synced 2025-03-09 15:40:03 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			49 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#!/bin/sh
 | 
						|
# vim: set noexpandtab tabstop=4 shiftwidth=4 softtabstop=4 :
 | 
						|
 | 
						|
name=$0
 | 
						|
basename="$(basename $0)"
 | 
						|
 | 
						|
_log() {
 | 
						|
	logger -p daemon.info -t "${basename}" "$@"
 | 
						|
}
 | 
						|
 | 
						|
_ping_server() {
 | 
						|
	local host=$1
 | 
						|
	ret=$(ping \
 | 
						|
	    -w "$OMR_TRACKER_TIMEOUT" \
 | 
						|
	    -c 1 \
 | 
						|
	    -q \
 | 
						|
	    "${host}" 2>/dev/null
 | 
						|
	) && echo "$ret" | grep -sq " 0% packet loss" && {
 | 
						|
		server_ping=true
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
_ping_tunnel() {
 | 
						|
	local name=$1
 | 
						|
	config_get gateway $1 gateway
 | 
						|
	config_get ifname $1 ifname
 | 
						|
	config_get disabled $1 disabled
 | 
						|
	[ "$(echo $ifname | grep oip)" != "" ] && [ -n "$gateway" ] && [ "$disabled" != "1" ] && {
 | 
						|
		_ping_server $gateway
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
. /lib/functions.sh
 | 
						|
 | 
						|
timeout=${OMR_TRACKER_TIMEOUT:-5}
 | 
						|
interval=${OMR_TRACKER_INTERVAL:-10}
 | 
						|
intervaltries=${OMR_TRACKER_INTERVAL_TRIES:-2}
 | 
						|
retry=${OMR_TRACKER_TRIES:-4}
 | 
						|
waittest=${OMR_TRACKER_WAIT_TEST:-0}
 | 
						|
 | 
						|
while true; do
 | 
						|
	server_ping=false
 | 
						|
	config_load network
 | 
						|
	config_foreach _ping_tunnel interface
 | 
						|
	if [ "$server_ping" = false ]; then
 | 
						|
		/etc/init.d/openmptcprouter-vps set_gre_tunnel 2>&1 >/dev/null
 | 
						|
	fi
 | 
						|
	sleep "${interval}"
 | 
						|
done
 |