Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/openwrt/luci.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJo-Philipp Wich <jo@mein.io>2022-04-29 13:16:19 +0300
committerJo-Philipp Wich <jo@mein.io>2022-04-29 13:18:17 +0300
commit531c0ecff2ca57c4bc0aacee66a0746814fefc78 (patch)
tree1d7d24bea17f5a2b52630138bf02243046ac9842
parent180d39dcd2427e3c32c0ec7ecc3c7bfb48c0d0ab (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>
-rw-r--r--modules/luci-base/luasrc/sys.lua10
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)