luci-lua-runtime: Update sys.net.conntrack() to use to conntrack tool

Fall through to /usr/sbin/conntrack tool if /proc/net/nf_conntrack is
not available.

/proc/net/nf_conntrack has been obsoleted in recent kernels
(https://cateee.net/lkddb/web-lkddb/NF_CONNTRACK_PROCFS.html). This
change enables sys.net.conntrack() to return conntrack information via
the /usr/sbin/conntrack tool (if installed) instead.

Enables population of the /luci/admin/status/realtime/connections list.

Signed-off-by: James Fox <jpfox156@yahoo.com.au>
[ format using tabs ]
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
This commit is contained in:
jpfox156
2022-02-25 23:27:36 +10:00
committed by Paul Donald
parent 18786c56a8
commit c62117c665

View File

@@ -279,10 +279,14 @@ function net.host_hints(callback)
end
function net.conntrack(callback)
local ok, nfct = pcall(io.lines, "/proc/net/nf_conntrack")
if not ok or not nfct then
local ok, fd = pcall(io.open, "/proc/net/nf_conntrack")
if not ok or not fd then
ok, fd = pcall(io.popen, "/usr/sbin/conntrack -L -o extended", "r")
end
if not ok or not fd then
return nil
end
nfct = fd:lines()
local line, connt = nil, (not callback) and { }
for line in nfct do