Skip to content

Commit

Permalink
luci-mod-freifunk: switch to luci.ip route functions
Browse files Browse the repository at this point in the history
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
  • Loading branch information
jow- committed Jan 22, 2015
1 parent 625a89a commit 7dc9f86
Showing 1 changed file with 20 additions and 33 deletions.
53 changes: 20 additions & 33 deletions modules/luci-mod-freifunk/luasrc/view/freifunk/public_status.htm
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -48,27 +49,6 @@
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
end

if defroutev6 then
defroutev6.dest = defroutev6.dest:string()
defroutev6.nexthop = defroutev6.nexthop:string()
end

if luci.http.formvalue("status") == "1" then
local rv = { }
for dev in pairs(netdevs) do
Expand All @@ -86,22 +66,29 @@
rv[#rv+1] = j
end

if defroutev6 then
def6 = {
gateway = defroutev6.nexthop,
dest = defroutev6.dest,
dev = defroutev6.device,
metr = defroutev6.metric

-- 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 defroutev4 then
def4 = {
gateway = defroutev4.gateway,
dest = defroutev4.dest,
dev = defroutev4.device,
metr = defroutev4.metric
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

rv[#rv+1] = {
Expand Down

0 comments on commit 7dc9f86

Please sign in to comment.