projects
/
project
/
luci.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
223963e
)
libs/sys: optimize luci.sys.net.defaultroute6()
author
Jo-Philipp Wich
<jow@openwrt.org>
Fri, 10 Jul 2009 13:49:24 +0000
(13:49 +0000)
committer
Jo-Philipp Wich
<jow@openwrt.org>
Fri, 10 Jul 2009 13:49:24 +0000
(13:49 +0000)
libs/sys/luasrc/sys.lua
patch
|
blob
|
history
diff --git
a/libs/sys/luasrc/sys.lua
b/libs/sys/luasrc/sys.lua
index
d6cc634
..
68ddd8a
100644
(file)
--- a/
libs/sys/luasrc/sys.lua
+++ b/
libs/sys/luasrc/sys.lua
@@
-302,17
+302,14
@@
end
-- { "source", "dest", "nexthop", "metric", "refcount", "usecount",
-- "flags", "device" }
function net.defaultroute6()
-- { "source", "dest", "nexthop", "metric", "refcount", "usecount",
-- "flags", "device" }
function net.defaultroute6()
- local route = nil
- local routes6 = net.routes6()
- if routes6 then
- for _, r in pairs(routes6) do
- if r.dest:prefix() == 0 and
- (not route or route.metric > r.metric)
- then
- route = r
- end
+ local route
+
+ net.routes6(function(rt)
+ if rt.dest:prefix() == 0 and (not route or route.metric > rt.metric) then
+ route = rt
end
end
- end
+ end)
+
return route
end
return route
end
@@
-426,7
+423,7
@@
end
-- The following fields are defined for route entry tables:
-- { "source", "dest", "nexthop", "metric", "refcount", "usecount",
-- "flags", "device" }
-- The following fields are defined for route entry tables:
-- { "source", "dest", "nexthop", "metric", "refcount", "usecount",
-- "flags", "device" }
-function net.routes6()
+function net.routes6(
callback
)
if luci.fs.access("/proc/net/ipv6_route", "r") then
local routes = { }
if luci.fs.access("/proc/net/ipv6_route", "r") then
local routes = { }
@@
-451,7
+448,7
@@
function net.routes6()
nexthop = luci.ip.Hex( nexthop, 128, luci.ip.FAMILY_INET6, false )
nexthop = luci.ip.Hex( nexthop, 128, luci.ip.FAMILY_INET6, false )
-
routes[#routes+1]
= {
+
local rt
= {
source = src_ip,
dest = dst_ip,
nexthop = nexthop,
source = src_ip,
dest = dst_ip,
nexthop = nexthop,
@@
-461,6
+458,12
@@
function net.routes6()
flags = tonumber(flags, 16),
device = dev
}
flags = tonumber(flags, 16),
device = dev
}
+
+ if callback then
+ callback(rt)
+ else
+ routes[#routes+1] = rt
+ end
end
return routes
end
return routes