From bc342e1eefee493def2deff633be699b584b63c3 Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Wed, 19 Aug 2020 20:36:06 +0200 Subject: [PATCH] Interfaces -> Diagnostics -> Netstat : add listen-queue-sizes in Socket tab --- src/opnsense/scripts/interfaces/list_sockstat.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/opnsense/scripts/interfaces/list_sockstat.py b/src/opnsense/scripts/interfaces/list_sockstat.py index 3a7f84021..0a5e3d027 100755 --- a/src/opnsense/scripts/interfaces/list_sockstat.py +++ b/src/opnsense/scripts/interfaces/list_sockstat.py @@ -35,6 +35,14 @@ import ujson import netaddr if __name__ == '__main__': + netstat = dict() + for line in subprocess.run(['/usr/bin/netstat', '-anL'], capture_output=True, text=True).stdout.split('\n')[2:]: + parts = line.split() + if len(parts) >= 3: + tmp = parts[1].split('/') + key = parts[2].replace('.', ':') if parts[0] != 'unix' else parts[2] + netstat[key] = {'qlen': tmp[0], 'incqlen': tmp[1], 'maxqlen': tmp[2]} + result = [] for line in subprocess.run(['/usr/bin/sockstat'], capture_output=True, text=True).stdout.split('\n')[1:]: parts = line.split() @@ -54,5 +62,8 @@ if __name__ == '__main__': record['local'] = parts[5] if len(parts) > 6: record['remote'] = parts[6] + + if record['local'] in netstat: + record['listen-queue-sizes'] = netstat[record['local']] result.append(record) print(ujson.dumps(result))