diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm index 8e6b1b8e0..f9d6fcf5c 100644 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm @@ -440,12 +440,18 @@ local statuslogo = ucic:get("openmptcprouter","settings","statuslogo") or "openm statusMessageClass = "error"; statusMessage = ""; break; + case 'WARNING': + stat = 'Warning'; + cssc = 'rgb(144, 240, 144)'; + statusIcon = "<%=resource%>/openmptcprouter/images/statusWarning.png"; + statusMessageClass = "warning"; + statusMessage = "Some connectivity tests failed"; default: stat = 'Unknown'; cssc = 'rgb(144, 240, 144)'; statusIcon = "<%=resource%>/openmptcprouter/images/statusWarning.png"; statusMessageClass = "warning"; - statusMessage = ""; + statusMessage = "Unknown status"; } // Populate info var wanip = mArray.wans[i].wanip; diff --git a/luci-app-openmptcprouter/root/etc/init.d/openmptcprouter b/luci-app-openmptcprouter/root/etc/init.d/openmptcprouter index f16199082..5150fb25d 100755 --- a/luci-app-openmptcprouter/root/etc/init.d/openmptcprouter +++ b/luci-app-openmptcprouter/root/etc/init.d/openmptcprouter @@ -80,6 +80,8 @@ omr_set_settings() { config_get disable_ipv6 settings disable_ipv6 "0" if [ "$disable_ipv6" = "1" ]; then uci -q set network.$1.ipv6=0 + else + uci -q set network.$1.ipv6=1 fi [ -z "$addlatency" ] && addlatency=0 diff --git a/omr-tracker/files/bin/omr-tracker-server b/omr-tracker/files/bin/omr-tracker-server index 13ed85a59..474f2f7b8 100755 --- a/omr-tracker/files/bin/omr-tracker-server +++ b/omr-tracker/files/bin/omr-tracker-server @@ -221,6 +221,10 @@ _check_master() { add_list openvpn.omr.remote="$ip" EOF fi + uci -q batch <<-EOF >/dev/null + set openmptcprouter.${name}.current='1' + commit openmptcprouter + EOF if [ "$count" -eq "0" ]; then config_load openmptcprouter config_foreach _disable_current server @@ -248,8 +252,6 @@ _check_master() { del openvpn.omr.remote add_list openvpn.omr.remote="$ip" commit openvpn - set openmptcprouter.${name}.current='1' - commit openmptcprouter EOF /etc/init.d/openmptcprouter-vps get_openvpn_key "$name" >/dev/null 2>/dev/null #/etc/init.d/openmptcprouter-vps restart >/dev/null 2>/dev/null @@ -421,6 +423,10 @@ _check_backup() { set shadowsocks-libev.sss${count}.disabled=0 EOF fi + uci -q batch <<-EOF >/dev/null + set openmptcprouter.${name}.current='1' + commit openmptcprouter + EOF if [ "$count" -eq "0" ]; then config_load openmptcprouter @@ -449,8 +455,6 @@ _check_backup() { del openvpn.omr.remote add_list openvpn.omr.remote="$ip" commit openvpn - set openmptcprouter.${name}.current='1' - commit openmptcprouter EOF /etc/init.d/openmptcprouter-vps get_openvpn_key "$name" >/dev/null 2>/dev/null #/etc/init.d/openmptcprouter-vps restart >/dev/null 2>/dev/null diff --git a/openmptcprouter-api/files/usr/libexec/rpcd/openmptcprouter b/openmptcprouter-api/files/usr/libexec/rpcd/openmptcprouter index 703e7558d..669328767 100755 --- a/openmptcprouter-api/files/usr/libexec/rpcd/openmptcprouter +++ b/openmptcprouter-api/files/usr/libexec/rpcd/openmptcprouter @@ -1504,44 +1504,53 @@ function interfaces_status() local current = uci:get("openmptcprouter",s[".name"],"current") or "0" if current == "1" then for key, value in pairs(serverips) do - local serverip = mArray.openmptcprouter["service_addr"] - if serverip == "127.0.0.1" then - serverip = mArray.openmptcprouter["wan_addr"] - end - if gateway ~= "" then - serverip = sys.exec('resolveip -4 ' .. value .. ' | head -n 1') - elseif gateway6 ~= "" then - serverip = sys.exec('resolveip -6 ' .. value .. ' | head -n 1') - end - if serverip == "" then - serverip = value - end - if serverip ~= "" then - local server_ping_test = sys.exec("ping -B -w 1 -c 1 -I " .. ifname .. " " .. serverip) - local server_ping_result = ut.trim(sys.exec("echo '" .. server_ping_test .. "' | grep '100% packet loss'")) - local server_ping_nobind = ut.trim(sys.exec("echo '" .. server_ping_test .. "' | grep 'Address not available'")) - if server_ping_result ~= "" then - server_ping = "DOWN" - if connectivity == "OK" then - connectivity = "WARNING" - end - elseif server_ping_nobind ~= "" then - server_ping_test = sys.exec("ping -w 1 -c 1 -I " .. ifname .. " " .. serverip) - server_ping_result = ut.trim(sys.exec("echo '" .. server_ping_test .. "' | grep '100% packet loss'")) - if server_ping_result ~= "" then + server_ping = value + if server_ping ~= "UP" then + local serverip = mArray.openmptcprouter["service_addr"] + if serverip == "127.0.0.1" then + serverip = mArray.openmptcprouter["wan_addr"] + end + if gateway ~= "" then + serverip = sys.exec('resolveip -4 ' .. value .. ' | head -n 1') + elseif gateway6 ~= "" then + serverip = sys.exec('resolveip -6 ' .. value .. ' | head -n 1') + end + if serverip == "" then + serverip = value + end + if serverip ~= "" then + local server_ping_test = sys.exec("ping -B -w 1 -c 1 -I " .. ifname .. " " .. serverip .. " 2>&1") + local server_ping_result = ut.trim(sys.exec("echo '" .. server_ping_test .. "' | grep '100% packet loss'")) + local server_ping_nobind = ut.trim(sys.exec("echo '" .. server_ping_test .. "' | grep 'Address not available'")) + local server_ping_error = ut.trim(sys.exec("echo '" .. server_ping_test .. "' | grep -i 'error'")) + if server_ping_error ~= "" then server_ping = "DOWN" if connectivity == "OK" then connectivity = "WARNING" end + elseif server_ping_result ~= "" then + server_ping = "DOWN" + if connectivity == "OK" then + connectivity = "WARNING" + end + elseif server_ping_nobind ~= "" then + server_ping_test = sys.exec("ping -w 1 -c 1 -I " .. ifname .. " " .. serverip) + server_ping_result = ut.trim(sys.exec("echo '" .. server_ping_test .. "' | grep '100% packet loss'")) + if server_ping_result ~= "" then + server_ping = "DOWN" + if connectivity == "OK" then + connectivity = "WARNING" + end + else + mArray.openmptcprouter["vps_status"] = "UP" + server_ping = "UP" + latency = ut.trim(sys.exec("echo '" .. server_ping_test .. "' | cut -d '/' -s -f5 | cut -d '.' -f1")) + end else mArray.openmptcprouter["vps_status"] = "UP" server_ping = "UP" latency = ut.trim(sys.exec("echo '" .. server_ping_test .. "' | cut -d '/' -s -f5 | cut -d '.' -f1")) end - else - mArray.openmptcprouter["vps_status"] = "UP" - server_ping = "UP" - latency = ut.trim(sys.exec("echo '" .. server_ping_test .. "' | cut -d '/' -s -f5 | cut -d '.' -f1")) end end end