X-Git-Url: http://git.archive.openwrt.org/?a=blobdiff_plain;f=modules%2Fluci-mod-freifunk%2Fluasrc%2Fview%2Ffreifunk%2Fpublic_status.htm;h=1dc1d8b0d18f2d8cdedbcc1fb0b97b67e55ef5d8;hb=c5287ef15fcc92e8c4a5f0b13051c6fd52aead07;hp=715ac756fd16fd152ae2e43e72ccaa190ea7250c;hpb=64d0031233a7e1b7e4df71953bc0fa72462e6bf5;p=project%2Fluci.git diff --git a/modules/luci-mod-freifunk/luasrc/view/freifunk/public_status.htm b/modules/luci-mod-freifunk/luasrc/view/freifunk/public_status.htm index 715ac756f..1dc1d8b0d 100644 --- a/modules/luci-mod-freifunk/luasrc/view/freifunk/public_status.htm +++ b/modules/luci-mod-freifunk/luasrc/view/freifunk/public_status.htm @@ -2,6 +2,7 @@ local utl = require "luci.util" local sys = require "luci.sys" local twa = require "luci.tools.webadmin" +local ip = require "luci.ip" -- System @@ -22,12 +23,12 @@ local load = string.format("%.2f, %.2f, %.2f", loads[1] / 65535.0, loads[2] / 65 local mem = string.format( "%.2f MB (%.2f %s, %.2f %s, %.2f %s)", - memory.total / 1024 / 1024, - (memory.total - memory.free) / 1024 / 1024, + meminfo.total / 1024 / 1024, + (meminfo.total - meminfo.free) / 1024 / 1024, tostring(i18n.translate("used")), - memory.free / 1024 / 1024, + meminfo.free / 1024 / 1024, tostring(i18n.translate("free")), - memory.buffered / 1024 / 1024, + meminfo.buffered / 1024 / 1024, tostring(i18n.translate("buffered")) ) @@ -48,27 +49,32 @@ for _, dev in ipairs(devices) do end local has_iwinfo = pcall(require, "iwinfo") --- Routes -local defroutev4 = sys.net.defaultroute() -local defroutev6 = sys.net.defaultroute6() - -if defroutev4 then - defroutev4.dest = defroutev4.dest:string() - defroutev4.gateway = defroutev4.gateway:string() -else - -- probably policy routing activated, try olsr-default table - 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 + +-- Find default routes + +local _, r, def4, def6 + +for _, r in ipairs(ip.routes({ type = 1, dest_exact = "0.0.0.0/0" })) do + def4 = { + gateway = r.gw:string(), + dest = r.dest:string(), + dev = r.dev, + metr = r.metric or 0 + } + break end -if defroutev6 then - defroutev6.dest = defroutev6.dest:string() - defroutev6.nexthop = defroutev6.nexthop:string() +for _, r in ipairs(ip.routes({ type = 1, dest_exact = "::/0" })) do + def6 = { + gateway = r.gw:string(), + dest = r.dest:string(), + dev = r.dev, + metr = r.metric or 0 + } + break end + if luci.http.formvalue("status") == "1" then local rv = { } for dev in pairs(netdevs) do @@ -86,23 +92,6 @@ if luci.http.formvalue("status") == "1" then rv[#rv+1] = j end - if defroutev6 then - def6 = { - gateway = defroutev6.nexthop, - dest = defroutev6.dest, - dev = defroutev6.device, - metr = defroutev6.metric - } - end - - if defroutev4 then - def4 = { - gateway = defroutev4.gateway, - dest = defroutev4.dest, - dev = defroutev4.device, - metr = defroutev4.metric - } - end rv[#rv+1] = { time = time, @@ -275,7 +264,7 @@ end netlist[#netlist+1] = net:ifname() netdevs[net:ifname()] = dev:name() - if net.iwdata.device then + if net.iwinfo.signal and net.iwinfo.bssid then local signal = net.iwinfo.signal or "N/A" local noise = net.iwinfo.noise or "N/A" local q = net.iwinfo.quality or "0" @@ -310,7 +299,7 @@ end if bitrate ~= "N/A" then bitrate = ( bitrate / 1000 ).."Mb/s" end - local interface = net.iwdata.ifname or "N/A" + local interface = net.iwinfo.ifname or "N/A" %> <%=signal_string%> @@ -336,7 +325,7 @@ end
-<% if not defroutev4 and not defroutev6 then %> +<% if not def4 and not def6 then %> <%:No default routes known.%> <%else%> @@ -347,23 +336,22 @@ end - <% if defroutev4 then %> - + <% if def4 then %> - - - - + + + + <% end - if defroutev6 then %> + if def6 then %> - - - - + + + + <% end %>
<%:Metric%>
<%=defroutev4.dest%><%=defroutev4.device%><%=defroutev4.gateway%><%=defroutev4.metric%><%=def4.dest%><%=def4.dev%><%=def4.gateway%><%=def4.metr%>
<%=defroutev6.dest%><%=defroutev6.device%><%=defroutev6.nexthop%><%=defroutev6.metric%><%=def6.dest%><%=def6.dev%><%=def6.gateway%><%=def6.metr%>