1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter-feeds.git synced 2025-02-12 18:41:51 +00:00

Add wait after test error in omr-tracker

This commit is contained in:
Ycarus (Yannick Chabanois) 2020-11-05 10:21:14 +01:00
parent 812d7b0dc8
commit 47a117defa
7 changed files with 65 additions and 35 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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'

View file

@ -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

View file

@ -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