libs/sys: workaround broken entries in /proc/net/ipv6_route, observed on brcm-2.4
This commit is contained in:
parent
05a1632670
commit
46c84206f3
1 changed files with 31 additions and 24 deletions
|
@ -451,35 +451,42 @@ function net.routes6(callback)
|
||||||
"([a-f0-9]+) +([^%s]+)"
|
"([a-f0-9]+) +([^%s]+)"
|
||||||
)
|
)
|
||||||
|
|
||||||
src_ip = luci.ip.Hex(
|
if dst_ip and dst_prefix and
|
||||||
src_ip, tonumber(src_prefix, 16), luci.ip.FAMILY_INET6, false
|
src_ip and src_prefix and
|
||||||
)
|
nexthop and metric and
|
||||||
|
refcnt and usecnt and
|
||||||
|
flags and dev
|
||||||
|
then
|
||||||
|
src_ip = luci.ip.Hex(
|
||||||
|
src_ip, tonumber(src_prefix, 16), luci.ip.FAMILY_INET6, false
|
||||||
|
)
|
||||||
|
|
||||||
dst_ip = luci.ip.Hex(
|
dst_ip = luci.ip.Hex(
|
||||||
dst_ip, tonumber(dst_prefix, 16), luci.ip.FAMILY_INET6, false
|
dst_ip, tonumber(dst_prefix, 16), luci.ip.FAMILY_INET6, false
|
||||||
)
|
)
|
||||||
|
|
||||||
nexthop = luci.ip.Hex( nexthop, 128, luci.ip.FAMILY_INET6, false )
|
nexthop = luci.ip.Hex( nexthop, 128, luci.ip.FAMILY_INET6, false )
|
||||||
|
|
||||||
local rt = {
|
local rt = {
|
||||||
source = src_ip,
|
source = src_ip,
|
||||||
dest = dst_ip,
|
dest = dst_ip,
|
||||||
nexthop = nexthop,
|
nexthop = nexthop,
|
||||||
metric = tonumber(metric, 16),
|
metric = tonumber(metric, 16),
|
||||||
refcount = tonumber(refcnt, 16),
|
refcount = tonumber(refcnt, 16),
|
||||||
usecount = tonumber(usecnt, 16),
|
usecount = tonumber(usecnt, 16),
|
||||||
flags = tonumber(flags, 16),
|
flags = tonumber(flags, 16),
|
||||||
device = dev,
|
device = dev,
|
||||||
|
|
||||||
-- lua number is too small for storing the metric
|
-- lua number is too small for storing the metric
|
||||||
-- add a metric_raw field with the original content
|
-- add a metric_raw field with the original content
|
||||||
metric_raw = metric
|
metric_raw = metric
|
||||||
}
|
}
|
||||||
|
|
||||||
if callback then
|
if callback then
|
||||||
callback(rt)
|
callback(rt)
|
||||||
else
|
else
|
||||||
routes[#routes+1] = rt
|
routes[#routes+1] = rt
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue