mirror of
				https://github.com/Ysurac/openmptcprouter-feeds.git
				synced 2025-03-09 15:40:03 +00:00 
			
		
		
		
	Add wait after test error in omr-tracker
This commit is contained in:
		
							parent
							
								
									f5b2e0f0e1
								
							
						
					
					
						commit
						1dbe35a996
					
				
					 7 changed files with 65 additions and 35 deletions
				
			
		| 
						 | 
				
			
			@ -24,6 +24,7 @@ export OMR_TRACKER_DEVICE_GATEWAY
 | 
			
		|||
dscp=56   # set DSCP CS7 (56) in outgoing packets
 | 
			
		||||
initial_hosts="$OMR_TRACKER_HOSTS"
 | 
			
		||||
initial_timeout="$OMR_TRACKER_TIMEOUT"
 | 
			
		||||
wait_test=${OMR_TRACKER_WAIT_TEST:-0}
 | 
			
		||||
 | 
			
		||||
# set constants for rto updating
 | 
			
		||||
# we've changed the default values of the RFC to K=3 and beta=0.25 instead of K=4 and beta=0.125
 | 
			
		||||
| 
						 | 
				
			
			@ -315,6 +316,7 @@ while true; do
 | 
			
		|||
	#[ "$OMR_TRACKER_STATUS" = "ERROR" ] && _restart
 | 
			
		||||
	#[ "$OMR_TRACKER_STATUS" != "$OMR_TRACKER_PREV_STATUS" ] && _post_tracking
 | 
			
		||||
	_post_tracking
 | 
			
		||||
	[ "$OMR_TRACKER_STATUS" = "ERROR" ] && sleep $wait_test
 | 
			
		||||
	OMR_TRACKER_PREV_STATUS="$OMR_TRACKER_STATUS"
 | 
			
		||||
	_restart
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -42,7 +42,8 @@ _check_master() {
 | 
			
		|||
	config_get master $1 master
 | 
			
		||||
	config_get ip $1 ip
 | 
			
		||||
	config_get port $1 port "65500"
 | 
			
		||||
	[ "$master" = "1" ] && [ -n "$ip" ] && {
 | 
			
		||||
	config_get disabled $1 disabled
 | 
			
		||||
	[ "$master" = "1" ] && [ -n "$ip" ] && [ "$disabled" != "1" ] && {
 | 
			
		||||
		#_ping_server $ip
 | 
			
		||||
		_check_server $ip $port
 | 
			
		||||
		[ "$server_ping" = true ] && [ "$(uci -q get shadowsocks-libev.sss0.server | tr -d '\n')" != "$ip" ] && {
 | 
			
		||||
| 
						 | 
				
			
			@ -81,37 +82,39 @@ _check_backup() {
 | 
			
		|||
	config_get backup $1 backup
 | 
			
		||||
	config_get ip $1 ip
 | 
			
		||||
	config_get port $1 port
 | 
			
		||||
	[ "$backup" = "1" ] && [ -n "$ip" ] && {
 | 
			
		||||
	config_get disabled $1 disabled
 | 
			
		||||
	[ "$backup" = "1" ] && [ -n "$ip" ] && [ "$disabled" != "1" ] && {
 | 
			
		||||
		#_ping_server $ip
 | 
			
		||||
		_check_server $ip $port
 | 
			
		||||
	}
 | 
			
		||||
	[ "$server_ping" = true ] && [ "$(uci -q get shadowsocks-libev.sss0.server | tr -d '\n')" = "$ip" ] && break
 | 
			
		||||
	[ "$server_ping" = true ] && [ "$(uci -q get shadowsocks-libev.sss0.server | tr -d '\n')" != "$ip" ] && {
 | 
			
		||||
		logger -t "OMR-Tracker-Server" "User backup server $1 ($ip)"
 | 
			
		||||
		uci -q batch <<-EOF >/dev/null
 | 
			
		||||
			set shadowsocks-libev.sss0.server=$ip
 | 
			
		||||
			commit shadowsocks-libev
 | 
			
		||||
			set v2ray.omrout.s_vmess_address=$ip
 | 
			
		||||
			set v2ray.omrout.s_vless_address=$ip
 | 
			
		||||
			commit v2ray
 | 
			
		||||
			set glorytun.vpn.host=$ip
 | 
			
		||||
			commit glorytun
 | 
			
		||||
			set dsvpn.vpn.host=$ip
 | 
			
		||||
			commit dsvpn
 | 
			
		||||
			set mlvpn.general.host=$ip
 | 
			
		||||
			commit mlvpn
 | 
			
		||||
			del openvpn.omr.remote
 | 
			
		||||
			add_list openvpn.omr.remote=$ip
 | 
			
		||||
			commit openvpn
 | 
			
		||||
		EOF
 | 
			
		||||
		/etc/init.d/shadowsocks-libev restart >/dev/null 2>/dev/null
 | 
			
		||||
		/etc/init.d/v2ray restart >/dev/null 2>/dev/null
 | 
			
		||||
		/etc/init.d/glorytun restart >/dev/null 2>/dev/null
 | 
			
		||||
		/etc/init.d/glorytun-udp restart >/dev/null 2>/dev/null
 | 
			
		||||
		/etc/init.d/mlvpn restart >/dev/null 2>/dev/null
 | 
			
		||||
		/etc/init.d/openvpn restart >/dev/null 2>/dev/null
 | 
			
		||||
		/etc/init.d/dsvpn restart >/dev/null 2>/dev/null
 | 
			
		||||
		break
 | 
			
		||||
		[ "$server_ping" = true ] && [ "$(uci -q get shadowsocks-libev.sss0.server | tr -d '\n')" = "$ip" ] && break
 | 
			
		||||
		[ "$server_ping" = true ] && [ "$(uci -q get shadowsocks-libev.sss0.server | tr -d '\n')" != "$ip" ] && {
 | 
			
		||||
			logger -t "OMR-Tracker-Server" "User backup server $1 ($ip)"
 | 
			
		||||
			uci -q batch <<-EOF >/dev/null
 | 
			
		||||
				set shadowsocks-libev.sss0.server=$ip
 | 
			
		||||
				commit shadowsocks-libev
 | 
			
		||||
				set v2ray.omrout.s_vmess_address=$ip
 | 
			
		||||
				set v2ray.omrout.s_vless_address=$ip
 | 
			
		||||
				commit v2ray
 | 
			
		||||
				set glorytun.vpn.host=$ip
 | 
			
		||||
				commit glorytun
 | 
			
		||||
				set dsvpn.vpn.host=$ip
 | 
			
		||||
				commit dsvpn
 | 
			
		||||
				set mlvpn.general.host=$ip
 | 
			
		||||
				commit mlvpn
 | 
			
		||||
				del openvpn.omr.remote
 | 
			
		||||
				add_list openvpn.omr.remote=$ip
 | 
			
		||||
				commit openvpn
 | 
			
		||||
			EOF
 | 
			
		||||
			/etc/init.d/shadowsocks-libev restart >/dev/null 2>/dev/null
 | 
			
		||||
			/etc/init.d/v2ray restart >/dev/null 2>/dev/null
 | 
			
		||||
			/etc/init.d/glorytun restart >/dev/null 2>/dev/null
 | 
			
		||||
			/etc/init.d/glorytun-udp restart >/dev/null 2>/dev/null
 | 
			
		||||
			/etc/init.d/mlvpn restart >/dev/null 2>/dev/null
 | 
			
		||||
			/etc/init.d/openvpn restart >/dev/null 2>/dev/null
 | 
			
		||||
			/etc/init.d/dsvpn restart >/dev/null 2>/dev/null
 | 
			
		||||
			sleep $waittest
 | 
			
		||||
			break
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -121,6 +124,7 @@ 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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -44,6 +44,7 @@ interval=${OMR_TRACKER_INTERVAL:-10}
 | 
			
		|||
retry=${OMR_TRACKER_TRIES:-4}
 | 
			
		||||
proxy=${OMR_TRACKER_PROXY:-127.0.0.1:1111}
 | 
			
		||||
hosts=${OMR_TRACKER_HOSTS:-1.1.1.1 1.0.0.1}
 | 
			
		||||
wait_test=${OMR_TRACKER_WAIT_TEST:-0}
 | 
			
		||||
 | 
			
		||||
nodns=0
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -88,6 +89,7 @@ while true; do
 | 
			
		|||
				if [ "$server_ping" = false ]; then
 | 
			
		||||
					_log "Server ($server) seems down, no answer to ping"
 | 
			
		||||
				fi
 | 
			
		||||
				sleep $wait_test
 | 
			
		||||
			fi
 | 
			
		||||
		}
 | 
			
		||||
	fi
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -44,6 +44,7 @@ interval=${OMR_TRACKER_INTERVAL:-10}
 | 
			
		|||
retry=${OMR_TRACKER_TRIES:-4}
 | 
			
		||||
proxy=${OMR_TRACKER_PROXY:-127.0.0.1:1111}
 | 
			
		||||
hosts=${OMR_TRACKER_HOSTS:-1.1.1.1 1.0.0.1}
 | 
			
		||||
wait_test=${OMR_TRACKER_WAIT_TEST:-0}
 | 
			
		||||
 | 
			
		||||
nodns=0
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -88,6 +89,7 @@ while true; do
 | 
			
		|||
				if [ "$server_ping" = false ]; then
 | 
			
		||||
					_log "Server ($server) seems down, no answer to ping"
 | 
			
		||||
				fi
 | 
			
		||||
				sleep $wait_test
 | 
			
		||||
			fi
 | 
			
		||||
		}
 | 
			
		||||
	fi
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,6 +16,7 @@ config defaults 'defaults'
 | 
			
		|||
        option interval '2'
 | 
			
		||||
        option interval_tries '1'
 | 
			
		||||
        option type 'ping'
 | 
			
		||||
        option wait_test '0'
 | 
			
		||||
        option options ''
 | 
			
		||||
 | 
			
		||||
config proxy 'proxy'
 | 
			
		||||
| 
						 | 
				
			
			@ -30,6 +31,7 @@ config proxy 'proxy'
 | 
			
		|||
	list hosts '176.103.130.130'
 | 
			
		||||
	option timeout '10'
 | 
			
		||||
	option tries '3'
 | 
			
		||||
	option wait_test '0'
 | 
			
		||||
	option interval_tries '1'
 | 
			
		||||
	option interval '5'
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -37,4 +39,5 @@ config server 'server'
 | 
			
		|||
	option enabled '1'
 | 
			
		||||
	option tries '3'
 | 
			
		||||
	option timeout '10'
 | 
			
		||||
	option wait_test '0'
 | 
			
		||||
	option interval '5'
 | 
			
		||||
| 
						 | 
				
			
			@ -13,7 +13,7 @@
 | 
			
		|||
 | 
			
		||||
_validate_section() {
 | 
			
		||||
	local tmp_hosts=$hosts tmp_timeout=$timeout tmp_tries=$tries
 | 
			
		||||
	local tmp_interval=$interval tmp_interval_tries=$interval_tries tmp_options=$options tmp_type=$type tmp_enabled=$enabled
 | 
			
		||||
	local tmp_interval=$interval tmp_interval_tries=$interval_tries tmp_options=$options tmp_type=$type tmp_enabled=$enabled tmp_wait_test=$wait_test
 | 
			
		||||
 | 
			
		||||
	uci_validate_section omr-tracker "$1" "$2" \
 | 
			
		||||
		'hosts:list(host)'  \
 | 
			
		||||
| 
						 | 
				
			
			@ -21,6 +21,7 @@ _validate_section() {
 | 
			
		|||
		'tries:uinteger'    \
 | 
			
		||||
		'interval:uinteger' \
 | 
			
		||||
		'interval_tries:uinteger' \
 | 
			
		||||
		'wait_test:uinteger' \
 | 
			
		||||
		'type:string:undef'  \
 | 
			
		||||
		'enabled:bool:1'    \
 | 
			
		||||
		'options:string'
 | 
			
		||||
| 
						 | 
				
			
			@ -30,6 +31,7 @@ _validate_section() {
 | 
			
		|||
	[ -z "$tries"    ] && tries=$tmp_tries
 | 
			
		||||
	[ -z "$interval" ] && interval=$tmp_interval
 | 
			
		||||
	[ -z "$interval_tries" ] && interval_tries=$tmp_interval_tries
 | 
			
		||||
	[ -z "$wait_test" ] && wait_test=$tmp_wait_test
 | 
			
		||||
	[ -z "$options"  ] && options=$tmp_options
 | 
			
		||||
	[ "$type" = "undef" ] && type=${tmp_type:-ping}
 | 
			
		||||
	[ -z "$enabled"  ] && enabled=$tmp_enabled
 | 
			
		||||
| 
						 | 
				
			
			@ -40,7 +42,7 @@ _launch_tracker() {
 | 
			
		|||
		loopback|lan*|if0*) return;;
 | 
			
		||||
	esac
 | 
			
		||||
 | 
			
		||||
	local hosts timeout tries interval interval_tries options type enabled
 | 
			
		||||
	local hosts timeout tries interval interval_tries options type enabled wait_test
 | 
			
		||||
	_validate_section "defaults" "defaults"
 | 
			
		||||
	_validate_section "interface" "$1"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -71,6 +73,7 @@ _launch_tracker() {
 | 
			
		|||
	procd_append_param env "OMR_TRACKER_DEVICE=$ifname"
 | 
			
		||||
	procd_append_param env "OMR_TRACKER_DEVICE_GATEWAY=$gateway"
 | 
			
		||||
	procd_append_param env "OMR_TRACKER_TYPE=$type"
 | 
			
		||||
	procd_append_param env "OMR_TRACKER_WAIT_TEST=$wait_test"
 | 
			
		||||
	procd_set_param limits nofile="51200 51200"
 | 
			
		||||
	procd_set_param respawn 0 10 0
 | 
			
		||||
	procd_set_param stderr 1
 | 
			
		||||
| 
						 | 
				
			
			@ -78,7 +81,7 @@ _launch_tracker() {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
_launch_server_tracker() {
 | 
			
		||||
	local hosts timeout tries interval interval_tries options type enabled
 | 
			
		||||
	local hosts timeout tries interval interval_tries options type enabled wait_test
 | 
			
		||||
	_validate_section "defaults" "defaults"
 | 
			
		||||
	_validate_section "server" "server"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -92,6 +95,7 @@ _launch_server_tracker() {
 | 
			
		|||
	procd_append_param env "OMR_TRACKER_TRIES=$tries"
 | 
			
		||||
	procd_append_param env "OMR_TRACKER_INTERVAL=$interval"
 | 
			
		||||
	procd_append_param env "OMR_TRACKER_INTERVAL_TRIES=$interval_tries"
 | 
			
		||||
	procd_append_param env "OMR_TRACKER_WAIT_TEST=$wait_test"
 | 
			
		||||
	procd_set_param limits nofile="51200 51200"
 | 
			
		||||
	procd_set_param respawn 0 10 0
 | 
			
		||||
	procd_set_param stderr 1
 | 
			
		||||
| 
						 | 
				
			
			@ -139,7 +143,7 @@ _initialize_shadowsocks_tracker() {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
_launch_shadowsocks_tracker() {
 | 
			
		||||
	local hosts timeout tries interval local_port enabled server
 | 
			
		||||
	local hosts timeout tries interval local_port enabled server wait_test
 | 
			
		||||
	
 | 
			
		||||
	[ "$1" = "tracker" ] || return
 | 
			
		||||
	
 | 
			
		||||
| 
						 | 
				
			
			@ -161,6 +165,7 @@ _launch_shadowsocks_tracker() {
 | 
			
		|||
	procd_append_param env "OMR_TRACKER_TRIES=$tries"
 | 
			
		||||
	procd_append_param env "OMR_TRACKER_INTERVAL=$interval"
 | 
			
		||||
	procd_append_param env "OMR_TRACKER_PROXY=127.0.0.1:$local_port"
 | 
			
		||||
	procd_append_param env "OMR_TRACKER_WAIT_TEST=$wait_test"
 | 
			
		||||
	procd_set_param limits nofile="51200 51200"
 | 
			
		||||
	procd_set_param respawn 0 10 0
 | 
			
		||||
	procd_set_param stderr 1
 | 
			
		||||
| 
						 | 
				
			
			@ -168,7 +173,7 @@ _launch_shadowsocks_tracker() {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
_launch_v2ray_tracker() {
 | 
			
		||||
	local hosts timeout tries interval local_port enabled server
 | 
			
		||||
	local hosts timeout tries interval local_port enabled server wait_test
 | 
			
		||||
	
 | 
			
		||||
	_validate_section "proxy" "proxy"
 | 
			
		||||
	[ "$enabled" = "0" ] || [ -z "$hosts" ] && return
 | 
			
		||||
| 
						 | 
				
			
			@ -181,6 +186,7 @@ _launch_v2ray_tracker() {
 | 
			
		|||
	procd_append_param env "OMR_TRACKER_TRIES=$tries"
 | 
			
		||||
	procd_append_param env "OMR_TRACKER_INTERVAL=$interval"
 | 
			
		||||
	procd_append_param env "OMR_TRACKER_PROXY=127.0.0.1:1111"
 | 
			
		||||
	procd_append_param env "OMR_TRACKER_WAIT_TEST=$wait_test"
 | 
			
		||||
	procd_set_param limits nofile="51200 51200"
 | 
			
		||||
	procd_set_param respawn 0 10 0
 | 
			
		||||
	procd_set_param stderr 1
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -47,6 +47,7 @@ if [ "$(uci -q get omr-tracker.proxy.hosts | grep '23.96.52.53')" != "" ]; then
 | 
			
		|||
		add_list omr-tracker.proxy.hosts='104.16.1.1'
 | 
			
		||||
		add_list omr-tracker.proxy.hosts='198.27.92.1'
 | 
			
		||||
		add_list omr-tracker.proxy.hosts='151.101.129.164'
 | 
			
		||||
		commit omr-tracker
 | 
			
		||||
	EOF
 | 
			
		||||
fi
 | 
			
		||||
if [ "$(uci -q get omr-tracker.proxy.hosts | grep '103.224.182.242')" != "" ]; then
 | 
			
		||||
| 
						 | 
				
			
			@ -55,6 +56,16 @@ if [ "$(uci -q get omr-tracker.proxy.hosts | grep '103.224.182.242')" != "" ]; t
 | 
			
		|||
		del_list omr-tracker.proxy.hosts='198.191.250.176'
 | 
			
		||||
		add_list omr-tracker.proxy.hosts='74.82.42.42'
 | 
			
		||||
		add_list omr-tracker.proxy.hosts='176.103.130.130'
 | 
			
		||||
		commit omr-tracker
 | 
			
		||||
	EOF
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ "$(uci -q get omr-tracker.defaults.wait_test)" = "" ]; then
 | 
			
		||||
	uci -q batch <<-EOF >/dev/null
 | 
			
		||||
		set omr-tracker.defaults.wait_test=1
 | 
			
		||||
		set omr-tracker.proxy.wait_test=1
 | 
			
		||||
		set omr-tracker.server.wait_test=1
 | 
			
		||||
		commit omr-tracker
 | 
			
		||||
	EOF
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue