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

Add multi IPs server support in VPS contact script

This commit is contained in:
Ycarus (Yannick Chabanois) 2021-01-21 19:00:28 +01:00
parent 5bdb3ada85
commit 75972e556e

View file

@ -17,29 +17,32 @@ _parse_result() {
_login() { _login() {
local username password auth local username password auth
server="$(uci -q get openmptcprouter.${servername}.ip)" #server="$(uci -q get openmptcprouter.${servername}.ip)"
[ -z "$server" ] && server="$(uci -q get shadowsocks-libev.sss0.server)" #[ -z "$server" ] && server="$(uci -q get shadowsocks-libev.sss0.server)"
username="$(uci -q get openmptcprouter.${servername}.username)" username="$(uci -q get openmptcprouter.${servername}.username)"
password="$(uci -q get openmptcprouter.${servername}.password)" password="$(uci -q get openmptcprouter.${servername}.password)"
serverport="$(uci -q get openmptcprouter.${servername}.port)" serverport="$(uci -q get openmptcprouter.${servername}.port)"
if [ -z "$token" ]; then if [ -z "$token" ]; then
#auth=`curl --max-time 10 -s -k -H "Content-Type: application/json" -X POST -d '{"username":"'$username'","password":"'$password'"}' https://$server:$serverport/login` login_on_server() {
resolve="$(resolveip $server)" server=$1
valid_ip6=$(valid_subnet6 $server) #auth=`curl --max-time 10 -s -k -H "Content-Type: application/json" -X POST -d '{"username":"'$username'","password":"'$password'"}' https://$server:$serverport/login`
if [ "$resolve" != "$server" ] || [ "$valid_ip6" != "ok" ]; then resolve="$(resolveip $server)"
auth=`curl --max-time 10 -s -k -H "accept: application/json" -H "Content-Type: application/x-www-form-urlencoded" -X POST -d 'username='$username'&password='$password https://$server:$serverport/token` valid_ip6=$(valid_subnet6 $server)
else if [ "$resolve" != "$server" ] || [ "$valid_ip6" != "ok" ]; then
auth=`curl --max-time 10 -s -k -H "accept: application/json" -H "Content-Type: application/x-www-form-urlencoded" -X POST -d 'username='$username'&password='$password https://[$server]:$serverport/token` auth=`curl --max-time 10 -s -k -H "accept: application/json" -H "Content-Type: application/x-www-form-urlencoded" -X POST -d 'username='$username'&password='$password https://$server:$serverport/token`
fi else
[ -z "$auth" ] && return auth=`curl --max-time 10 -s -k -H "accept: application/json" -H "Content-Type: application/x-www-form-urlencoded" -X POST -d 'username='$username'&password='$password https://[$server]:$serverport/token`
token="$(echo "$auth" | jsonfilter -q -e '@.access_token')" fi
uci -q set openmptcprouter.${servername}.token="$token" [ -z "$auth" ] && return
token="$(echo "$auth" | jsonfilter -q -e '@.access_token')"
uci -q set openmptcprouter.${servername}.token="$token"
}
config_list_foreach ${servername} ip login_on_server
fi fi
} }
_ping_server() { _ping_server() {
server="$(uci -q get openmptcprouter.${servername}.ip)" server="$1"
[ -z "$server" ] && server="$(uci -q get shadowsocks-libev.sss0.server)"
ret=$(ping -c 3 -w 3 -Q 184 $server 2>&1) && echo "$ret" | grep -sq "bytes from" && return ret=$(ping -c 3 -w 3 -Q 184 $server 2>&1) && echo "$ret" | grep -sq "bytes from" && return
false false
} }
@ -1586,30 +1589,36 @@ _config_service() {
_login _login
[ -z "$token" ] && { [ -z "$token" ] && {
reason="" reason=""
_ping_server test_ping() {
status=$? _ping_server $1
if $(exit $status); then status=$?
reason="can ping server ${servername}" if $(exit $status); then
else reason="can ping server ${servername} on $1"
reason="can't ping server ${servername}" else
fi reason="can't ping server ${servername} on $1"
fi
}
config_list_foreach "${servername}" ip test_ping
port="$(uci -q get openmptcprouter.${servername}.port)" port="$(uci -q get openmptcprouter.${servername}.port)"
server="$(uci -q get openmptcprouter.${servername}.ip)" api_test() {
resolve="$(resolveip $server)" server="$1"
valid_ip6=$(valid_subnet6 $server) resolve="$(resolveip $server)"
if [ "$resolve" != "$server" ] || [ "$valid_ip6" != "ok" ]; then valid_ip6=$(valid_subnet6 $server)
if [ "$(curl -k -m 3 https://${server}:${port}/)" = "" ]; then if [ "$resolve" != "$server" ] || [ "$valid_ip6" != "ok" ]; then
reason="$reason, no server API answer" if [ "$(curl -k -m 3 https://${server}:${port}/)" = "" ]; then
reason="$reason, no server API answer on $1"
else
reason="$reason, server API answer on $1"
fi
else else
reason="$reason, server API answer" if [ "$(curl -k -m 3 https://[${server}]:${port}/)" = "" ]; then
reason="$reason, no server API answer on $1"
else
reason="$reason, server API answer on $1"
fi
fi fi
else }
if [ "$(curl -k -m 3 https://[${server}]:${port}/)" = "" ]; then config_list_foreach "${servername}" ip api_test
reason="$reason, no server API answer"
else
reason="$reason, server API answer"
fi
fi
if [ "$(uci -q get openmptcprouter.${servername}.username)" != "openmptcprouter" ]; then if [ "$(uci -q get openmptcprouter.${servername}.username)" != "openmptcprouter" ]; then
reason="$reason, custom username" reason="$reason, custom username"
fi fi