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:
parent
5bdb3ada85
commit
75972e556e
1 changed files with 45 additions and 36 deletions
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue