diff --git a/jc/parsers/netstat_freebsd_osx.py b/jc/parsers/netstat_freebsd_osx.py index c3d5b770..8e1b3e0e 100644 --- a/jc/parsers/netstat_freebsd_osx.py +++ b/jc/parsers/netstat_freebsd_osx.py @@ -37,9 +37,16 @@ def parse_item(headers, entry, kind): # fixup udp records with no state field entry if kind == 'network' and entry[0].startswith('udp'): entry.insert(5, None) + if kind == 'network' and 'socket' in headers and 'udp' in str(entry): entry.insert(7, None) + # fixup -T output on FreeBSD + if kind == 'network' and '0_win' in headers and entry[0].startswith('udp'): + entry.insert(1, '') + entry.insert(1, '') + entry.insert(1, '') + # fixup interface records with no address field entry if kind == 'interface' and len(entry) == 8: entry.insert(3, None) @@ -121,6 +128,11 @@ def parse_post(raw_data): entry['route_flags_pretty'] = pretty_flags + # strip whitespace from beginning and end of all string values + for item in entry: + if isinstance(entry[item], str): + entry[item] = entry[item].strip() + return raw_data