Merge pull request #1787 from TDT-AG/pr/20180509-net-mwan3-fixes
luci-app-mwan3: fixes
This commit is contained in:
commit
1e39fef147
1 changed files with 12 additions and 6 deletions
|
@ -97,9 +97,9 @@ function diagnosticsData(interface, task)
|
||||||
return interfaceNumber
|
return interfaceNumber
|
||||||
end
|
end
|
||||||
|
|
||||||
function diag_command(cmd, addr)
|
function diag_command(cmd, device, addr)
|
||||||
if addr and addr:match("^[a-zA-Z0-9%-%.:_]+$") then
|
if addr and addr:match("^[a-zA-Z0-9%-%.:_]+$") then
|
||||||
local util = io.popen(cmd % ut.shellquote(addr))
|
local util = io.popen(cmd %{ut.shellquote(device), ut.shellquote(addr)})
|
||||||
if util then
|
if util then
|
||||||
while true do
|
while true do
|
||||||
local ln = util:read("*l")
|
local ln = util:read("*l")
|
||||||
|
@ -114,8 +114,14 @@ function diagnosticsData(interface, task)
|
||||||
end
|
end
|
||||||
|
|
||||||
function get_gateway(inteface)
|
function get_gateway(inteface)
|
||||||
local dump = require("luci.util").ubus("network.interface.%s" % interface, "status", {})
|
local gateway = nil
|
||||||
local gateway
|
local dump = nil
|
||||||
|
|
||||||
|
dump = require("luci.util").ubus("network.interface.%s_4" % interface, "status", {})
|
||||||
|
if not dump then
|
||||||
|
dump = require("luci.util").ubus("network.interface.%s" % interface, "status", {})
|
||||||
|
end
|
||||||
|
|
||||||
if dump and dump.route then
|
if dump and dump.route then
|
||||||
local _, route
|
local _, route
|
||||||
for _, route in ipairs(dump.route) do
|
for _, route in ipairs(dump.route) do
|
||||||
|
@ -139,7 +145,7 @@ function diagnosticsData(interface, task)
|
||||||
if task == "ping_gateway" then
|
if task == "ping_gateway" then
|
||||||
local gateway = get_gateway(interface)
|
local gateway = get_gateway(interface)
|
||||||
if gateway ~= nil then
|
if gateway ~= nil then
|
||||||
diag_command("ping -c 5 -W 1 %s 2>&1", gateway)
|
diag_command("ping -I %s -c 5 -W 1 %s 2>&1", device, gateway)
|
||||||
else
|
else
|
||||||
luci.http.prepare_content("text/plain")
|
luci.http.prepare_content("text/plain")
|
||||||
luci.http.write(string.format("No gateway for interface %s found.", interface))
|
luci.http.write(string.format("No gateway for interface %s found.", interface))
|
||||||
|
@ -148,7 +154,7 @@ function diagnosticsData(interface, task)
|
||||||
local trackips = uci:get("mwan3", interface, "track_ip")
|
local trackips = uci:get("mwan3", interface, "track_ip")
|
||||||
if #trackips > 0 then
|
if #trackips > 0 then
|
||||||
for i in pairs(trackips) do
|
for i in pairs(trackips) do
|
||||||
diag_command("ping -c 5 -W 1 %s 2>&1", trackips[i])
|
diag_command("ping -I %s -c 5 -W 1 %s 2>&1", device, trackips[i])
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
luci.http.write(string.format("No tracking Hosts for interface %s defined.", interface))
|
luci.http.write(string.format("No tracking Hosts for interface %s defined.", interface))
|
||||||
|
|
Loading…
Reference in a new issue