modules/freifunk: Make display of ipv4 default route in public status work with freifunk-policyrouting enabled

This commit is contained in:
Manuel Munz 2011-10-10 16:04:27 +00:00
parent bb5986cf13
commit 61778a3239
2 changed files with 27 additions and 4 deletions

View file

@ -51,7 +51,7 @@ function index()
page.order = 20
page.i18n = "base"
page.setuser = false
page.setgroup = false
page.setgroup = false
entry({"freifunk", "status.json"}, call("jsonstatus"))
entry({"freifunk", "status", "zeroes"}, call("zeroes"), "Testdownload")
@ -292,7 +292,18 @@ function public_status_json()
dest = dr4.dest:string(),
dev = dr4.device,
metr = dr4.metric }
end
else
local dr = sys.exec("ip r s t olsr-default")
if dr then
local dest, gateway, dev, metr = dr:match("^(%w+) via (%d+.%d+.%d+.%d+) dev (%w+) +metric (%d+)")
def4 = {
dest = dest,
gateway = gateway,
dev = dev,
metr = metr
}
end
end
rv[#rv+1] = {
time = os.date("%a, %d %b %Y, %H:%M:%S"),

View file

@ -49,6 +49,18 @@ local has_iwinfo = pcall(require, "iwinfo")
local defroutev4 = sys.net.defaultroute()
local defroutev6 = sys.net.defaultroute6()
if defroutev4 then
defroutev4.dest = defroutev4.dest:string()
defroutev4.gateway = defroutev4.gateway:string()
else
local dr4 = sys.exec("ip r s t olsr-default")
if dr4 then
defroutev4 = { }
defroutev4.dest, defroutev4.gateway, defroutev4.device, defroutev4.metric = dr4:match("^(%w+) via (%d+.%d+.%d+.%d+) dev (%w+) +metric (%d+)$
end
end
-%>
<%+header%>
@ -283,9 +295,9 @@ local defroutev6 = sys.net.defaultroute6()
<% if defroutev4 then %>
<tr class="cbi-section-table-row cbi-rowstyle-1">
<td class="cbi-value-field" id="v4dst"><%=defroutev4.dest:string()%></td>
<td class="cbi-value-field" id="v4dst"><%=defroutev4.dest%></td>
<td class="cbi-value-field" id="v4dev"><%=defroutev4.device%></td>
<td class="cbi-value-field" id="v4gw"><%=defroutev4.gateway:string()%></td>
<td class="cbi-value-field" id="v4gw"><%=defroutev4.gateway%></td>
<td class="cbi-value-field" id="v4metr"><%=defroutev4.metric%></td>
</tr>