|
@@ -3,6 +3,8 @@ module("luci.controller.mwan3", package.seeall)
|
3
|
3
|
sys = require "luci.sys"
|
4
|
4
|
ut = require "luci.util"
|
5
|
5
|
|
|
6
|
+ip = "/usr/bin/ip -4 "
|
|
7
|
+
|
6
|
8
|
function index()
|
7
|
9
|
if not nixio.fs.access("/etc/config/mwan3") then
|
8
|
10
|
return
|
|
@@ -61,7 +63,7 @@ end
|
61
|
63
|
|
62
|
64
|
function getInterfaceStatus(ruleNumber, interfaceName)
|
63
|
65
|
if ut.trim(sys.exec("uci -p /var/state get mwan3." .. interfaceName .. ".enabled")) == "1" then
|
64
|
|
- if ut.trim(sys.exec("ip route list table " .. ruleNumber)) ~= "" then
|
|
66
|
+ if ut.trim(sys.exec(ip .. "route list table " .. ruleNumber)) ~= "" then
|
65
|
67
|
if ut.trim(sys.exec("uci -p /var/state get mwan3." .. interfaceName .. ".track_ip")) ~= "" then
|
66
|
68
|
return "online"
|
67
|
69
|
else
|
|
@@ -183,8 +185,8 @@ function diagnosticsData(interface, tool, task)
|
183
|
185
|
end
|
184
|
186
|
elseif tool == "rulechk" then
|
185
|
187
|
getInterfaceNumber()
|
186
|
|
- local rule1 = sys.exec("ip rule | grep $(echo $((" .. interfaceNumber .. " + 1000)))")
|
187
|
|
- local rule2 = sys.exec("ip rule | grep $(echo $((" .. interfaceNumber .. " + 2000)))")
|
|
188
|
+ local rule1 = sys.exec(ip .. "rule | grep $(echo $((" .. interfaceNumber .. " + 1000)))")
|
|
189
|
+ local rule2 = sys.exec(ip .. "rule | grep $(echo $((" .. interfaceNumber .. " + 2000)))")
|
188
|
190
|
if rule1 ~= "" and rule2 ~= "" then
|
189
|
191
|
results = "All required interface IP rules found:\n\n" .. rule1 .. rule2
|
190
|
192
|
elseif rule1 ~= "" or rule2 ~= "" then
|
|
@@ -194,7 +196,7 @@ function diagnosticsData(interface, tool, task)
|
194
|
196
|
end
|
195
|
197
|
elseif tool == "routechk" then
|
196
|
198
|
getInterfaceNumber()
|
197
|
|
- local routeTable = sys.exec("ip route list table " .. interfaceNumber)
|
|
199
|
+ local routeTable = sys.exec(ip .. "route list table " .. interfaceNumber)
|
198
|
200
|
if routeTable ~= "" then
|
199
|
201
|
results = "Interface routing table " .. interfaceNumber .. " was found:\n\n" .. routeTable
|
200
|
202
|
else
|
|
@@ -283,17 +285,17 @@ function troubleshootingData()
|
283
|
285
|
mArray.routeshow = { routeShow }
|
284
|
286
|
|
285
|
287
|
-- ip rule show
|
286
|
|
- local ipRuleShow = ut.trim(sys.exec("ip rule show"))
|
|
288
|
+ local ipRuleShow = ut.trim(sys.exec(ip .. "rule show"))
|
287
|
289
|
if ipRuleShow == "" then
|
288
|
290
|
ipRuleShow = "No data found"
|
289
|
291
|
end
|
290
|
292
|
mArray.iprule = { ipRuleShow }
|
291
|
293
|
|
292
|
294
|
-- ip route list table 1-250
|
293
|
|
- local routeList, routeString = ut.trim(sys.exec("ip rule | sed 's/://g' | awk '$1>=2001 && $1<=2250' | awk '{print $NF}'")), ""
|
|
295
|
+ local routeList, routeString = ut.trim(sys.exec(ip .. "rule | sed 's/://g' | awk '$1>=2001 && $1<=2250' | awk '{print $NF}'")), ""
|
294
|
296
|
if routeList ~= "" then
|
295
|
297
|
for line in routeList:gmatch("[^\r\n]+") do
|
296
|
|
- routeString = routeString .. line .. "\n" .. sys.exec("ip route list table " .. line)
|
|
298
|
+ routeString = routeString .. line .. "\n" .. sys.exec(ip .. "route list table " .. line)
|
297
|
299
|
end
|
298
|
300
|
routeString = ut.trim(routeString)
|
299
|
301
|
else
|