scripts: runner: use ss on linux, not netstat
Netstat is deprecated.
Reported-by: Leandro Pereira <leandro.pereira@intel.com>
Signed-off-by: Marti Bolivar <marti.bolivar@linaro.org>
diff --git a/scripts/support/runner/core.py b/scripts/support/runner/core.py
index ddf4d60..04fedf4 100644
--- a/scripts/support/runner/core.py
+++ b/scripts/support/runner/core.py
@@ -117,12 +117,12 @@
return self._parser_windows(cmd)
def _used_now_linux(self):
- cmd = ['netstat', '-a', '-n', '-t']
- return self._parser_linux_darwin(cmd)
+ cmd = ['ss', '-a', '-n', '-t']
+ return self._parser_linux(cmd)
def _used_now_darwin(self):
cmd = ['netstat', '-a', '-n', '-p', 'tcp']
- return self._parser_linux_darwin(cmd)
+ return self._parser_darwin(cmd)
def _parser_windows(self, cmd):
out = subprocess.check_output(cmd).split(b'\r\n')
@@ -130,7 +130,12 @@
if x.startswith(b' TCP')]
return {int(b) for b in used_bytes}
- def _parser_linux_darwin(self, cmd):
+ def _parser_linux(self, cmd):
+ out = subprocess.check_output(cmd).splitlines()[1:]
+ used_bytes = [s.split()[3].rsplit(b':', 1)[1] for s in out]
+ return {int(b) for b in used_bytes}
+
+ def _parser_darwin(self, cmd):
out = subprocess.check_output(cmd).split(b'\n')
used_bytes = [x.split()[3].rsplit(b':', 1)[1] for x in out
if x.startswith(b'tcp')]