diff options
author | Jo-Philipp Wich <jo@mein.io> | 2022-04-29 12:16:19 +0200 |
---|---|---|
committer | Jo-Philipp Wich <jo@mein.io> | 2022-04-29 12:18:17 +0200 |
commit | 531c0ecff2ca57c4bc0aacee66a0746814fefc78 (patch) | |
tree | 1d7d24bea17f5a2b52630138bf02243046ac9842 /modules/luci-base/luasrc | |
parent | 180d39dcd2427e3c32c0ec7ecc3c7bfb48c0d0ab (diff) |
luci-base: sys.lua: fix parsing conntrack entries without timeout
Flow offloaded conntrack entries carry no timeout value and trip up the
record parsing routine. Adjust the code to properly deal with such entries.
Ref: https://forum.openwrt.org/t/offloading-breaks-connections-list/126423
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Diffstat (limited to 'modules/luci-base/luasrc')
-rw-r--r-- | modules/luci-base/luasrc/sys.lua | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/modules/luci-base/luasrc/sys.lua b/modules/luci-base/luasrc/sys.lua index af345a16d5..71db04acf8 100644 --- a/modules/luci-base/luasrc/sys.lua +++ b/modules/luci-base/luasrc/sys.lua @@ -286,8 +286,14 @@ function net.conntrack(callback) local line, connt = nil, (not callback) and { } for line in nfct do - local fam, l3, l4, timeout, tuples = - line:match("^(ipv[46]) +(%d+) +%S+ +(%d+) +(%d+) +(.+)$") + local fam, l3, l4, rest = + line:match("^(ipv[46]) +(%d+) +%S+ +(%d+) +(.+)$") + + local timeout, tuples = rest:match("^(%d+) +(.+)$") + + if not tuples then + tuples = rest + end if fam and l3 and l4 and timeout and not tuples:match("^TIME_WAIT ") then l4 = nixio.getprotobynumber(l4) |