From c04895407f203aa0a3a080d5242faf8f6889ae41 Mon Sep 17 00:00:00 2001 From: Kelly Brazil Date: Fri, 18 Oct 2019 12:57:02 -0700 Subject: [PATCH] ubuntu fixes --- changelog.txt | 1 + jc/parsers/netstat.py | 9 +++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/changelog.txt b/changelog.txt index 9d7b4fb1..9a435c34 100644 --- a/changelog.txt +++ b/changelog.txt @@ -7,6 +7,7 @@ jc changelog - Fix netstat -p parsing for Ubuntu - Use maxsplit option in split in ls.py line 109... otherwise filenames with multiple spaces between words can be incorrectly represented with the .join operation +- Use list(filter(None, cleandata)) or list comprehension to clean any blank entries in ls.py line 98 20191017 v0.2.0 - ifconfig, ls, and netstat support diff --git a/jc/parsers/netstat.py b/jc/parsers/netstat.py index de277e12..4061add0 100644 --- a/jc/parsers/netstat.py +++ b/jc/parsers/netstat.py @@ -166,15 +166,16 @@ def parse_line(entry): if len(parsed_line) > 5: - if parsed_line[5][0] not in string.digits: + if parsed_line[5][0] not in string.digits and parsed_line[5][0] != '-': output_line['state'] = parsed_line[5] - if len(parsed_line) > 6: + if len(parsed_line) > 6 and parsed_line[6][0] in string.digits: output_line['pid'] = int(parsed_line[6].split('/')[0]) output_line['program_name'] = parsed_line[6].split('/')[1] else: - output_line['pid'] = int(parsed_line[5].split('/')[0]) - output_line['program_name'] = parsed_line[5].split('/')[1] + if parsed_line[5][0] in string.digits: + output_line['pid'] = int(parsed_line[5].split('/')[0]) + output_line['program_name'] = parsed_line[5].split('/')[1] output_line['receive_q'] = int(parsed_line[1]) output_line['send_q'] = int(parsed_line[2])