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

Add support for multiple server to openmptcprouter-vps script

This commit is contained in:
Ycarus 2018-12-12 21:28:57 +01:00
parent 9da2042b08
commit f57e650f4f

View file

@ -13,15 +13,15 @@ _parse_result() {
_login() { _login() {
local username password auth local username password auth
server="$(uci -q get openmptcprouter.vps.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.vps.username)" username="$(uci -q get openmptcprouter.${servername}.username)"
password="$(uci -q get openmptcprouter.vps.password)" password="$(uci -q get openmptcprouter.${servername}.password)"
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:65500/login` auth=`curl --max-time 10 -s -k -H "Content-Type: application/json" -X POST -d '{"username":"'$username'","password":"'$password'"}' https://$server:65500/login`
[ -z "$auth" ] && return [ -z "$auth" ] && return
token="$(echo "$auth" | jsonfilter -q -e '@.token')" token="$(echo "$auth" | jsonfilter -q -e '@.token')"
uci -q set openmptcprouter.vps.token="$token" uci -q set openmptcprouter.${servername}.token="$token"
fi fi
} }
@ -94,11 +94,11 @@ _set_openvpn_vps() {
} }
_set_ss_server_vps() { _set_ss_server_vps() {
local disabled port server key method local disabled port key method
config_get disabled $1 disabled config_get disabled $1 disabled
[ "$disabled" = "1" ] && return [ "$disabled" = "1" ] && return
config_get port $1 server_port config_get port $1 server_port
config_get server $1 server #config_get server $1 server
config_get key $1 key config_get key $1 key
key="$(echo $key | sed 's/+/-/g; s/\//_/g;')" key="$(echo $key | sed 's/+/-/g; s/\//_/g;')"
[ -z "$key" ] && return [ -z "$key" ] && return
@ -123,10 +123,9 @@ _get_vps_config() {
vps_machine="$(echo "$vps_config" | jsonfilter -q -e '@.vps.machine')" vps_machine="$(echo "$vps_config" | jsonfilter -q -e '@.vps.machine')"
vps_omr_version="$(echo "$vps_config" | jsonfilter -q -e '@.vps.omr_version')" vps_omr_version="$(echo "$vps_config" | jsonfilter -q -e '@.vps.omr_version')"
uci -q batch <<-EOF >/dev/null uci -q batch <<-EOF >/dev/null
set openmptcprouter.vps.kernel=$vps_kernel set openmptcprouter.${servername}.kernel=$vps_kernel
set openmptcprouter.vps.machine=$vps_machine set openmptcprouter.${servername}.machine=$vps_machine
set openmptcprouter.vps.omr_version=$vps_omr_version set openmptcprouter.${servername}.omr_version=$vps_omr_version
commit openmptcprouter
EOF EOF
glorytun_state=0 glorytun_state=0
@ -297,7 +296,7 @@ _set_config_from_vps() {
[ "$shorewall_redirect" = "enable" ] && redirect="1" [ "$shorewall_redirect" = "enable" ] && redirect="1"
[ "$shorewall_redirect" = "disable" ] && redirect="0" [ "$shorewall_redirect" = "disable" ] && redirect="0"
uci -q batch <<-EOF >/dev/null uci -q batch <<-EOF >/dev/null
set openmptcprouter.vps.redirect_ports=$redirect set openmptcprouter.${servername}.redirect_ports=$redirect
EOF EOF
# MPTCP settings # MPTCP settings
@ -327,47 +326,65 @@ _set_config_from_vps() {
# Get available server # Get available server
available_vpn="$(echo "$vps_config" | jsonfilter -q -e '@.vpn.available' | sed -e 's/\[ //' -e 's/ \]//' -e 's/,//g')" available_vpn="$(echo "$vps_config" | jsonfilter -q -e '@.vpn.available' | sed -e 's/\[ //' -e 's/ \]//' -e 's/,//g')"
uci -q batch <<-EOF >/dev/null uci -q batch <<-EOF >/dev/null
del openmptcprouter.vps.available_vpn del openmptcprouter.${servername}.available_vpn
EOF EOF
if [ -n "$available_vpn" ]; then if [ -n "$available_vpn" ]; then
for vpn in $available_vpn; do for vpn in $available_vpn; do
uci -q batch <<-EOF >/dev/null uci -q batch <<-EOF >/dev/null
add_list openmptcprouter.vps.available_vpn=$vpn add_list openmptcprouter.${servername}.available_vpn=$vpn
EOF EOF
done done
fi fi
uci -q batch <<-EOF >/dev/null uci -q batch <<-EOF >/dev/null
set openmptcprouter.vps.get_config=0 set openmptcprouter.${servername}.get_config=0
commit openmptcprouter
EOF EOF
} }
start_service() { _count_server() {
[ -z "$(uci -q get openmptcprouter.vps.username)" ] && return local servername=$1
[ -z "$(uci -q get openmptcprouter.vps.password)" ] && return [ -z "$(uci -q get openmptcprouter.${servername}.username)" ] && return
[ -z "$(uci -q get openmptcprouter.${servername}.password)" ] && return
serversnb=$((serversnb+1))
}
_config_service() {
servername=$1
[ -z "$(uci -q get openmptcprouter.${servername}.username)" ] && return
[ -z "$(uci -q get openmptcprouter.${servername}.password)" ] && return
token=""
vps_config=""
_login _login
[ -z "$token" ] && { [ -z "$token" ] && {
uci -q batch <<-EOF >/dev/null uci -q batch <<-EOF >/dev/null
set openmptcprouter.vps.admin_error=1 set openmptcprouter.${servername}.admin_error=1
commit openmptcprouter
EOF EOF
return return
} }
[ "$(uci -q get openmptcprouter.vps.get_config)" = "1" ] && _set_config_from_vps [ "$(uci -q get openmptcprouter.${servername}.get_config)" = "1" ] && {
_set_config_from_vps
}
_get_vps_config _get_vps_config
config_load shadowsocks-libev config_load shadowsocks-libev
config_foreach _set_ss_server_vps server config_foreach _set_ss_server_vps server
_set_glorytun_vps _set_glorytun_vps
_set_openvpn_vps _set_openvpn_vps
redirect_port="0" redirect_port="0"
if [ "$(uci -q get openmptcprouter.vps.redirect_ports)" = "1" ] || [ "$(uci -q get upnpd.config.enabled)" = "1" ]; then if [ "$(uci -q get openmptcprouter.${servername}.redirect_ports)" = "1" ] || [ "$(uci -q get upnpd.config.enabled)" = "1" ]; then
redirect_port="1" redirect_port="1"
fi fi
_set_redirect_ports_from_vps $redirect_port _set_redirect_ports_from_vps $redirect_port
_set_mptcp_vps _set_mptcp_vps
uci -q batch <<-EOF >/dev/null uci -q batch <<-EOF >/dev/null
set openmptcprouter.vps.admin_error=0 set openmptcprouter.${servername}.admin_error=0
EOF
}
start_service() {
serversnb=0
config_load openmptcprouter
config_foreach _count_server server
config_foreach _config_service server
uci -q batch <<-EOF >/dev/null
commit openmptcprouter commit openmptcprouter
EOF EOF
} }