From: Jo-Philipp Wich Date: Wed, 20 Jan 2016 16:27:51 +0000 (+0100) Subject: luci-base: luci.sys.net: use luci.ip.neighbors() instead of /proc/net/arp X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fluci.git;a=commitdiff_plain;h=df7ab69ebaef870ecb82effd27f0b9958f1c203d luci-base: luci.sys.net: use luci.ip.neighbors() instead of /proc/net/arp Signed-off-by: Jo-Philipp Wich --- diff --git a/modules/luci-base/luasrc/sys.lua b/modules/luci-base/luasrc/sys.lua index 5d203aa8f..a1b5b8f64 100644 --- a/modules/luci-base/luasrc/sys.lua +++ b/modules/luci-base/luasrc/sys.lua @@ -168,14 +168,13 @@ local function _nethints(what, callback) end end - if fs.access("/proc/net/arp") then - for e in io.lines("/proc/net/arp") do - ip, mac = e:match("^([%d%.]+)%s+%S+%s+%S+%s+([a-fA-F0-9:]+)%s+") - if ip and mac then - _add(what, mac:upper(), ip, nil, nil) - end + luci.ip.neighbors(nil, function(neigh) + if neigh.mac and neigh.family == 4 then + _add(what, neigh.mac:upper(), neigh.dest:string(), nil, nil) + elseif neigh.mac and neigh.family == 6 then + _add(what, neigh.mac:upper(), nil, neigh.dest:string(), nil) end - end + end) if fs.access("/etc/ethers") then for e in io.lines("/etc/ethers") do