mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-02-13 11:01:50 +00:00
Fix when server have 2 or mores IPs
This commit is contained in:
parent
7348518bb0
commit
af573324d9
1 changed files with 66 additions and 23 deletions
|
@ -96,24 +96,36 @@ _check_server_intf() {
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_get_server_name() {
|
||||||
|
local serverid=$1
|
||||||
|
local serverip=$2
|
||||||
|
config_get serveripc $serverid server
|
||||||
|
if [ "$serveripc" = "$serverip" ]; then
|
||||||
|
servername=$serverid
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
_disable_current() {
|
_disable_current() {
|
||||||
local serv=$1
|
local serv=$1
|
||||||
config_set $serv current "0"
|
uci -q set openmptcprouter.${server}.current=0
|
||||||
}
|
}
|
||||||
|
|
||||||
_disable_redir() {
|
_disable_redir() {
|
||||||
local redir=$1
|
local redir=$1
|
||||||
config_get server $redir server
|
local serverdisable=$2
|
||||||
if [ "$server" = "sss${count}" ]; then
|
local shadowsocks="$3"
|
||||||
config_set $redir disabled "1"
|
config_get serverss $redir server
|
||||||
|
if [ "$serverss" = "$serverdisable" ]; then
|
||||||
|
uci -q set ${shadowsocks}.${redir}.disabled=1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
_enable_redir() {
|
_enable_redir() {
|
||||||
local redir=$1
|
local redir=$1
|
||||||
config_get server $redir server
|
local shadowsocks="$2"
|
||||||
if [ "$server" = "sss${count}" ]; then
|
config_get serverss $redir server
|
||||||
config_set $redir disabled "0"
|
if [ "$serverss" = "sss${count}" ]; then
|
||||||
|
uci -q set ${shadowsocks}.${redir}.disabled=0
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -122,6 +134,7 @@ _check_master() {
|
||||||
local count=0
|
local count=0
|
||||||
local countips=0
|
local countips=0
|
||||||
local changes="0"
|
local changes="0"
|
||||||
|
local oneserverup="0"
|
||||||
config_get master $1 master
|
config_get master $1 master
|
||||||
config_get ip $1 ip
|
config_get ip $1 ip
|
||||||
config_get port $1 port "65500"
|
config_get port $1 port "65500"
|
||||||
|
@ -130,7 +143,7 @@ _check_master() {
|
||||||
[ "$master" = "1" ] && [ -n "$ip" ] && [ "$disabled" != "1" ] && {
|
[ "$master" = "1" ] && [ -n "$ip" ] && [ "$disabled" != "1" ] && {
|
||||||
check_ip() {
|
check_ip() {
|
||||||
local ipd=$1
|
local ipd=$1
|
||||||
[ -n "$serverip" ] && [ "$server_ping" = true ] && return
|
#[ -n "$serverip" ] && [ "$server_ping" = true ] && return
|
||||||
ipresolve="$(resolveip -4 $ipd | head -n 1)"
|
ipresolve="$(resolveip -4 $ipd | head -n 1)"
|
||||||
if [ -n "$ipresolve" ]; then
|
if [ -n "$ipresolve" ]; then
|
||||||
serverip="$ipresolve"
|
serverip="$ipresolve"
|
||||||
|
@ -142,8 +155,11 @@ _check_master() {
|
||||||
#_ping_server $serverip
|
#_ping_server $serverip
|
||||||
#_check_server $serverip $port
|
#_check_server $serverip $port
|
||||||
_check_server_intf $serverip $port
|
_check_server_intf $serverip $port
|
||||||
[ "$server_ping" = true ] && return
|
[ "$server_ping" = true ] && {
|
||||||
|
oneserverup=1
|
||||||
|
}
|
||||||
countips=$((countips+1))
|
countips=$((countips+1))
|
||||||
|
set_ip
|
||||||
}
|
}
|
||||||
set_ip() {
|
set_ip() {
|
||||||
ip="$serverip"
|
ip="$serverip"
|
||||||
|
@ -199,9 +215,9 @@ _check_master() {
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
config_load shadowsocks-libev
|
config_load shadowsocks-libev
|
||||||
config_foreach _enable_redir ss_redir
|
config_foreach _enable_redir ss_redir "shadowsocks-libev"
|
||||||
config_load shadowsocks-rust
|
config_load shadowsocks-rust
|
||||||
config_foreach _enable_redir ss_redir
|
config_foreach _enable_redir ss_redir "shadowsocks-rust"
|
||||||
OMR_TRACKER_STATUS_MSG="Answer to ping and to API check"
|
OMR_TRACKER_STATUS_MSG="Answer to ping and to API check"
|
||||||
mail_alert="$(uci -q get omr-tracker.server.mail_alert)"
|
mail_alert="$(uci -q get omr-tracker.server.mail_alert)"
|
||||||
#[ -z "$mail_alert" ] && mail_alert="$(uci -q get omr-tracker.defaults.mail_alert)"
|
#[ -z "$mail_alert" ] && mail_alert="$(uci -q get omr-tracker.defaults.mail_alert)"
|
||||||
|
@ -222,16 +238,18 @@ _check_master() {
|
||||||
[ -n "$script_alert_up" ] && eval $script_alert_up
|
[ -n "$script_alert_up" ] && eval $script_alert_up
|
||||||
count=$((count+1))
|
count=$((count+1))
|
||||||
else
|
else
|
||||||
logger -t "OMR-Tracker-Server" "Master server ${name} down ($ip)"
|
[ -z "$(logread | tail -n 10 | grep "Master server ${name} down" | grep $ip)" ] && logger -t "OMR-Tracker-Server" "Master server ${name} down ($ip)"
|
||||||
OMR_TRACKER_STATUS_MSG="No answer to ping and API check"
|
OMR_TRACKER_STATUS_MSG="No answer to ping and API check"
|
||||||
uci -q batch <<-EOF >/dev/null
|
servername=""
|
||||||
set openmptcprouter.${name}.current='0'
|
|
||||||
commit openmptcprouter
|
|
||||||
EOF
|
|
||||||
config_load shadowsocks-libev
|
config_load shadowsocks-libev
|
||||||
config_foreach _disable_redir ss_redir
|
config_foreach _get_server_name server $ip
|
||||||
|
[ -n "$servername" ] && config_foreach _disable_redir ss_redir $servername "shadowsocks-libev"
|
||||||
|
servername=""
|
||||||
config_load shadowsocks-rust
|
config_load shadowsocks-rust
|
||||||
config_foreach _disable_redir ss_redir
|
config_foreach _get_server_name server $ip
|
||||||
|
[ -n "$servername" ] && config_foreach _disable_redir ss_redir $servername "shadowsocks-rust"
|
||||||
|
|
||||||
|
OMR_TRACKER_STATUS_MSG="No answer to ping and to API check"
|
||||||
mail_alert="$(uci -q get omr-tracker.server.mail_alert)"
|
mail_alert="$(uci -q get omr-tracker.server.mail_alert)"
|
||||||
#[ -z "$mail_alert" ] && mail_alert="$(uci -q get omr-tracker.defaults.mail_alert)"
|
#[ -z "$mail_alert" ] && mail_alert="$(uci -q get omr-tracker.defaults.mail_alert)"
|
||||||
[ "$mail_alert" = "1" ] && [ -n "$(uci -q get mail.default.to)" ] && {
|
[ "$mail_alert" = "1" ] && [ -n "$(uci -q get mail.default.to)" ] && {
|
||||||
|
@ -253,13 +271,21 @@ _check_master() {
|
||||||
}
|
}
|
||||||
config_load openmptcprouter
|
config_load openmptcprouter
|
||||||
config_list_foreach $1 ip check_ip
|
config_list_foreach $1 ip check_ip
|
||||||
set_ip
|
#set_ip
|
||||||
#if [ "$server_ping" = true ] && [ "$countips" = "1" ]; then
|
#if [ "$server_ping" = true ] && [ "$countips" = "1" ]; then
|
||||||
# uci -q batch <<-EOF >/dev/null
|
# uci -q batch <<-EOF >/dev/null
|
||||||
# set shadowsocks-libev.sss${count}.server=$ip
|
# set shadowsocks-libev.sss${count}.server=$ip
|
||||||
# EOF
|
# EOF
|
||||||
# config_foreach _enable_redir ss_redir
|
# config_foreach _enable_redir ss_redir
|
||||||
#fi
|
#fi
|
||||||
|
if [ "$oneserverup" != "0" ]; then
|
||||||
|
uci -q batch <<-EOF >/dev/null
|
||||||
|
set openmptcprouter.${name}.current='0'
|
||||||
|
commit openmptcprouter
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
[ -n "$(uci changes shadowsocks-libev)" ] && changes="1"
|
||||||
|
[ -n "$(uci changes shadowsocks-rust)" ] && changes="1"
|
||||||
uci -q commit shadowsocks-libev
|
uci -q commit shadowsocks-libev
|
||||||
uci -q commit shadowsocks-rust
|
uci -q commit shadowsocks-rust
|
||||||
[ "$changes" = "1" ] && {
|
[ "$changes" = "1" ] && {
|
||||||
|
@ -275,6 +301,7 @@ _check_backup() {
|
||||||
local count=0
|
local count=0
|
||||||
local countips=0
|
local countips=0
|
||||||
local changes="0"
|
local changes="0"
|
||||||
|
local oneserverup="0"
|
||||||
config_get backup $1 backup
|
config_get backup $1 backup
|
||||||
config_get ip $1 ip
|
config_get ip $1 ip
|
||||||
config_get port $1 port
|
config_get port $1 port
|
||||||
|
@ -352,10 +379,12 @@ _check_backup() {
|
||||||
fi
|
fi
|
||||||
sleep $waittest
|
sleep $waittest
|
||||||
fi
|
fi
|
||||||
|
|
||||||
config_load shadowsocks-libev
|
config_load shadowsocks-libev
|
||||||
config_foreach _enable_redir ss_redir
|
config_foreach _enable_redir ss_redir "shadowsocks-libev"
|
||||||
config_load shadowsocks-rust
|
config_load shadowsocks-rust
|
||||||
config_foreach _enable_redir ss_redir
|
config_foreach _enable_redir ss_redir "shadowsocks-rust"
|
||||||
|
|
||||||
OMR_TRACKER_STATUS_MSG="Answer to ping and to API check"
|
OMR_TRACKER_STATUS_MSG="Answer to ping and to API check"
|
||||||
mail_alert="$(uci -q get omr-tracker.server.mail_alert)"
|
mail_alert="$(uci -q get omr-tracker.server.mail_alert)"
|
||||||
#[ -z "$mail_alert" ] && mail_alert="$(uci -q get omr-tracker.defaults.mail_alert)"
|
#[ -z "$mail_alert" ] && mail_alert="$(uci -q get omr-tracker.defaults.mail_alert)"
|
||||||
|
@ -375,14 +404,19 @@ _check_backup() {
|
||||||
[ -n "$script_alert_up" ] && eval $script_alert_up
|
[ -n "$script_alert_up" ] && eval $script_alert_up
|
||||||
count=$((count+1))
|
count=$((count+1))
|
||||||
else
|
else
|
||||||
|
[ -z "$(logread | tail -n 10 | grep "Backup server ${name} down" | grep $ip)" ] && logger -t "OMR-Tracker-Server" "Backup server ${name} down ($ip)"
|
||||||
uci -q batch <<-EOF >/dev/null
|
uci -q batch <<-EOF >/dev/null
|
||||||
set openmptcprouter.${name}.current='0'
|
set openmptcprouter.${name}.current='0'
|
||||||
commit openmptcprouter
|
commit openmptcprouter
|
||||||
EOF
|
EOF
|
||||||
config_load shadowsocks-libev
|
config_load shadowsocks-libev
|
||||||
config_foreach _disable_redir ss_redir
|
config_foreach _get_server_name server $ip
|
||||||
|
[ -n "$servername" ] && config_foreach _disable_redir ss_redir $servername "shadowsocks-libev"
|
||||||
|
servername=""
|
||||||
config_load shadowsocks-rust
|
config_load shadowsocks-rust
|
||||||
config_foreach _disable_redir ss_redir
|
config_foreach _get_server_name server $ip
|
||||||
|
[ -n "$servername" ] && config_foreach _disable_redir ss_redir $servername "shadowsocks-rust"
|
||||||
|
|
||||||
OMR_TRACKER_STATUS_MSG="No answer to ping and to API check"
|
OMR_TRACKER_STATUS_MSG="No answer to ping and to API check"
|
||||||
mail_alert="$(uci -q get omr-tracker.server.mail_alert)"
|
mail_alert="$(uci -q get omr-tracker.server.mail_alert)"
|
||||||
#[ -z "$mail_alert" ] && mail_alert="$(uci -q get omr-tracker.defaults.mail_alert)"
|
#[ -z "$mail_alert" ] && mail_alert="$(uci -q get omr-tracker.defaults.mail_alert)"
|
||||||
|
@ -412,6 +446,15 @@ _check_backup() {
|
||||||
# EOF
|
# EOF
|
||||||
# config_foreach _enable_redir ss_redir
|
# config_foreach _enable_redir ss_redir
|
||||||
#fi
|
#fi
|
||||||
|
if [ "$oneserverup" != "0" ]; then
|
||||||
|
uci -q batch <<-EOF >/dev/null
|
||||||
|
set openmptcprouter.${name}.current='0'
|
||||||
|
commit openmptcprouter
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
[ -n "$(uci changes shadowsocks-libev)" ] && changes="1"
|
||||||
|
[ -n "$(uci changes shadowsocks-rust)" ] && changes="1"
|
||||||
uci -q commit shadowsocks-libev
|
uci -q commit shadowsocks-libev
|
||||||
uci -q commit shadowsocks-rust
|
uci -q commit shadowsocks-rust
|
||||||
[ "$changes" = "1" ] && {
|
[ "$changes" = "1" ] && {
|
||||||
|
|
Loading…
Reference in a new issue