From c7dc600f824f362c64b5162fb5a881fd13721861 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Sat, 30 Dec 2023 08:51:42 +0100 Subject: [PATCH] Fix status page info when backup VPS is used --- omr-tracker/files/bin/omr-tracker-server | 9 +++++++++ .../files/usr/libexec/rpcd/openmptcprouter | 4 +++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/omr-tracker/files/bin/omr-tracker-server b/omr-tracker/files/bin/omr-tracker-server index fcab8b2d4..7d39f48ea 100755 --- a/omr-tracker/files/bin/omr-tracker-server +++ b/omr-tracker/files/bin/omr-tracker-server @@ -37,6 +37,11 @@ _check_server() { done } +_disable_current() { + local serv=$1 + config_set $serv current "0" +} + _disable_redir() { local redir=$1 config_get server $redir server @@ -86,6 +91,8 @@ _check_master() { set shadowsocks-rust.sss${count}.server=$ip EOF if [ "$count" -eq "0" ]; then + config_load openmptcprouter + config_foreach _disable_current server uci -q batch <<-EOF >/dev/null set xray.omrout.s_vmess_address=$ip set xray.omrout.s_vless_address=$ip @@ -225,6 +232,8 @@ _check_backup() { set shadowsocks-rust.sss${count}.server=$ip EOF if [ "$count" -eq "0" ]; then + config_load openmptcprouter + config_foreach _disable_current server uci -q batch <<-EOF >/dev/null set xray.omrout.s_vmess_address=$ip set xray.omrout.s_vless_address=$ip diff --git a/openmptcprouter-api/files/usr/libexec/rpcd/openmptcprouter b/openmptcprouter-api/files/usr/libexec/rpcd/openmptcprouter index 3dfda3661..2301d0c3a 100755 --- a/openmptcprouter-api/files/usr/libexec/rpcd/openmptcprouter +++ b/openmptcprouter-api/files/usr/libexec/rpcd/openmptcprouter @@ -870,9 +870,10 @@ function interfaces_status() ucic:foreach("openmptcprouter", "server", function(s) local serverips = uci:get("openmptcprouter",s[".name"],"ip") or { "" } local master = uci:get("openmptcprouter",s[".name"],"master") or "1" + local current = uci:get("openmptcprouter",s[".name"],"current") or "0" for key, value in pairs(serverips) do serverip = value - if serverip ~= "" and (master == "1" or mArray.openmptcprouter["wan_addr"] == serverip or mArray.openmptcprouter["wan_addr6"] == serverip) and mArray.openmptcprouter["vps_admin"] == false then + if serverip ~= "" and (current == "1" or mArray.openmptcprouter["wan_addr"] == serverip or mArray.openmptcprouter["wan_addr6"] == serverip) and mArray.openmptcprouter["vps_admin"] == false then mArray.openmptcprouter["vps_omr_version"] = uci:get("openmptcprouter", s[".name"], "omr_version") or "" mArray.openmptcprouter["vps_kernel"] = uci:get("openmptcprouter",s[".name"],"kernel") or "" mArray.openmptcprouter["vps_machine"] = uci:get("openmptcprouter",s[".name"],"machine") or "" @@ -980,6 +981,7 @@ function interfaces_status() else mArray.openmptcprouter["vps_admin"] = false mArray.openmptcprouter["vps_admin_error_msg"] = "No token yet available" + uci:set("openmptcprouter",s[".name"],"token_error","1") end if mArray.openmptcprouter["vps_admin"] == false then if mArray.openmptcprouter["service_addr_ip"] ~= "" then