summaryrefslogtreecommitdiffhomepage
path: root/libs/sys
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2011-03-13 22:08:32 +0000
committerJo-Philipp Wich <jow@openwrt.org>2011-03-13 22:08:32 +0000
commit380726158d37052a8301973affa6281dd1aa6ebc (patch)
tree26bb050c175e39561a313fe52e73aa6d0eccb444 /libs/sys
parent8cab9e2b8fcb6116d49b116bbb747069551d094c (diff)
libs/sys: ignore TIME_WAIT connections in luci.sys.net.conntrack()
Diffstat (limited to 'libs/sys')
-rw-r--r--libs/sys/luasrc/sys.lua40
1 files changed, 22 insertions, 18 deletions
diff --git a/libs/sys/luasrc/sys.lua b/libs/sys/luasrc/sys.lua
index cc29fa37b..53204b10b 100644
--- a/libs/sys/luasrc/sys.lua
+++ b/libs/sys/luasrc/sys.lua
@@ -240,32 +240,36 @@ function net.conntrack(callback)
for line in io.lines("/proc/net/nf_conntrack") do
line = line:match "^(.-( [^ =]+=).-)%2"
local entry, flags = _parse_mixed_record(line, " +")
- entry.layer3 = flags[1]
- entry.layer4 = flags[3]
- for i=1, #entry do
- entry[i] = nil
- end
+ if flags[6] ~= "TIME_WAIT" then
+ entry.layer3 = flags[1]
+ entry.layer4 = flags[3]
+ for i=1, #entry do
+ entry[i] = nil
+ end
- if callback then
- callback(entry)
- else
- connt[#connt+1] = entry
+ if callback then
+ callback(entry)
+ else
+ connt[#connt+1] = entry
+ end
end
end
elseif fs.access("/proc/net/ip_conntrack", "r") then
for line in io.lines("/proc/net/ip_conntrack") do
line = line:match "^(.-( [^ =]+=).-)%2"
local entry, flags = _parse_mixed_record(line, " +")
- entry.layer3 = "ipv4"
- entry.layer4 = flags[1]
- for i=1, #entry do
- entry[i] = nil
- end
+ if flags[4] ~= "TIME_WAIT" then
+ entry.layer3 = "ipv4"
+ entry.layer4 = flags[1]
+ for i=1, #entry do
+ entry[i] = nil
+ end
- if callback then
- callback(entry)
- else
- connt[#connt+1] = entry
+ if callback then
+ callback(entry)
+ else
+ connt[#connt+1] = entry
+ end
end
end
else