From d7b19892e8fb11e17fcbadcdbb08d49897d7754f Mon Sep 17 00:00:00 2001 From: Kelly Brazil Date: Fri, 29 May 2020 12:04:58 -0700 Subject: [PATCH] add freebsd support for netstat -i --- jc/parsers/netstat.py | 13 ++++++++----- jc/parsers/netstat_osx.py | 4 ++-- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/jc/parsers/netstat.py b/jc/parsers/netstat.py index 75f1edcd..363a50f1 100644 --- a/jc/parsers/netstat.py +++ b/jc/parsers/netstat.py @@ -11,7 +11,7 @@ Caveats: Compatibility: - 'linux', 'darwin' + 'linux', 'darwin', 'freebsd' Examples: @@ -237,13 +237,13 @@ Examples: class info(): - version = '1.5' + version = '1.6' description = 'netstat command parser' author = 'Kelly Brazil' author_email = 'kellyjonbrazil@gmail.com' # compatible options: linux, darwin, cygwin, win32, aix, freebsd - compatible = ['linux', 'darwin'] + compatible = ['linux', 'darwin', 'freebsd'] magic_commands = ['netstat'] @@ -319,6 +319,7 @@ def process(proc_data): "address": string, "ipkts": integer, - = null "ierrs": integer, - = null + "idrop": integer, - = null "opkts": integer, - = null "oerrs": integer, - = null "coll": integer, - = null @@ -340,7 +341,7 @@ def process(proc_data): 'osx_flags', 'subcla', 'pcbcount', 'rcvbuf', 'sndbuf', 'rxbytes', 'txbytes', 'route_refs', 'use', 'mtu', 'mss', 'window', 'irtt', 'metric', 'ipkts', 'ierrs', 'opkts', 'oerrs', 'coll', 'rx_ok', 'rx_err', 'rx_drp', 'rx_ovr', - 'tx_ok', 'tx_err', 'tx_drp', 'tx_ovr'] + 'tx_ok', 'tx_err', 'tx_drp', 'tx_ovr', 'idrop'] for key in int_list: if key in entry: try: @@ -396,7 +397,9 @@ def parse(data, raw=False, quiet=False): or cleandata[0] == 'Active kernel event sockets' \ or cleandata[0] == 'Active kernel control sockets' \ or cleandata[0] == 'Routing tables' \ - or cleandata[0] == 'Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll': + or cleandata[0].startswith('Name '): + # or cleandata[0] == 'Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll' \ + import jc.parsers.netstat_osx raw_output = jc.parsers.netstat_osx.parse(cleandata) diff --git a/jc/parsers/netstat_osx.py b/jc/parsers/netstat_osx.py index 1bd17bef..3d1edbce 100644 --- a/jc/parsers/netstat_osx.py +++ b/jc/parsers/netstat_osx.py @@ -190,7 +190,7 @@ def parse(cleandata): interface_table = False continue - if line.startswith('Name Mtu '): + if line.startswith('Name '): network = False multipath = False socket = False @@ -232,7 +232,7 @@ def parse(cleandata): headers = header_text.split() continue - if interface_table and line.startswith('Name Mtu '): + if interface_table and line.startswith('Name '): header_text = normalize_interface_headers(line) headers = header_text.split() continue