mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-03-09 15:40:03 +00:00
Better server ping check in OpenMPTCProuter local API
This commit is contained in:
parent
52e3e73d48
commit
33905981ea
1 changed files with 41 additions and 32 deletions
|
@ -1504,44 +1504,53 @@ function interfaces_status()
|
||||||
local current = uci:get("openmptcprouter",s[".name"],"current") or "0"
|
local current = uci:get("openmptcprouter",s[".name"],"current") or "0"
|
||||||
if current == "1" then
|
if current == "1" then
|
||||||
for key, value in pairs(serverips) do
|
for key, value in pairs(serverips) do
|
||||||
local serverip = mArray.openmptcprouter["service_addr"]
|
server_ping = value
|
||||||
if serverip == "127.0.0.1" then
|
if server_ping ~= "UP" then
|
||||||
serverip = mArray.openmptcprouter["wan_addr"]
|
local serverip = mArray.openmptcprouter["service_addr"]
|
||||||
end
|
if serverip == "127.0.0.1" then
|
||||||
if gateway ~= "" then
|
serverip = mArray.openmptcprouter["wan_addr"]
|
||||||
serverip = sys.exec('resolveip -4 ' .. value .. ' | head -n 1')
|
end
|
||||||
elseif gateway6 ~= "" then
|
if gateway ~= "" then
|
||||||
serverip = sys.exec('resolveip -6 ' .. value .. ' | head -n 1')
|
serverip = sys.exec('resolveip -4 ' .. value .. ' | head -n 1')
|
||||||
end
|
elseif gateway6 ~= "" then
|
||||||
if serverip == "" then
|
serverip = sys.exec('resolveip -6 ' .. value .. ' | head -n 1')
|
||||||
serverip = value
|
end
|
||||||
end
|
if serverip == "" then
|
||||||
if serverip ~= "" then
|
serverip = value
|
||||||
local server_ping_test = sys.exec("ping -B -w 1 -c 1 -I " .. ifname .. " " .. serverip)
|
end
|
||||||
local server_ping_result = ut.trim(sys.exec("echo '" .. server_ping_test .. "' | grep '100% packet loss'"))
|
if serverip ~= "" then
|
||||||
local server_ping_nobind = ut.trim(sys.exec("echo '" .. server_ping_test .. "' | grep 'Address not available'"))
|
local server_ping_test = sys.exec("ping -B -w 1 -c 1 -I " .. ifname .. " " .. serverip .. " 2>&1")
|
||||||
if server_ping_result ~= "" then
|
local server_ping_result = ut.trim(sys.exec("echo '" .. server_ping_test .. "' | grep '100% packet loss'"))
|
||||||
server_ping = "DOWN"
|
local server_ping_nobind = ut.trim(sys.exec("echo '" .. server_ping_test .. "' | grep 'Address not available'"))
|
||||||
--if connectivity == "OK" then
|
local server_ping_error = ut.trim(sys.exec("echo '" .. server_ping_test .. "' | grep -i 'error'"))
|
||||||
-- connectivity = "WARNING"
|
if server_ping_error ~= "" then
|
||||||
--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"
|
server_ping = "DOWN"
|
||||||
--if connectivity == "OK" then
|
if connectivity == "OK" then
|
||||||
-- connectivity = "WARNING"
|
connectivity = "WARNING"
|
||||||
--end
|
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
|
else
|
||||||
mArray.openmptcprouter["vps_status"] = "UP"
|
mArray.openmptcprouter["vps_status"] = "UP"
|
||||||
server_ping = "UP"
|
server_ping = "UP"
|
||||||
latency = ut.trim(sys.exec("echo '" .. server_ping_test .. "' | cut -d '/' -s -f5 | cut -d '.' -f1"))
|
latency = ut.trim(sys.exec("echo '" .. server_ping_test .. "' | cut -d '/' -s -f5 | cut -d '.' -f1"))
|
||||||
end
|
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
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue