From 6423c9efd69e938af38934a97ca6b65009e8f07e Mon Sep 17 00:00:00 2001 From: Kelly Brazil Date: Fri, 29 May 2020 15:48:51 -0700 Subject: [PATCH] integer and float updates --- jc/parsers/netstat.py | 39 ++++++++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/jc/parsers/netstat.py b/jc/parsers/netstat.py index 6d8f1b3c..3c804779 100644 --- a/jc/parsers/netstat.py +++ b/jc/parsers/netstat.py @@ -336,7 +336,25 @@ def process(proc_data): "tx_ovr": integer, "flg": string, "ibytes": integer, - "obytes": integer + "obytes": integer, + "r_mbuf": integer, + "s_mbuf": integer, + "r_clus": integer, + "s_clus": integer, + "r_hiwa": integer, + "s_hiwa": integer, + "r_lowa": integer, + "s_lowa": integer, + "r_bcnt": integer, + "s_bcnt": integer, + "r_bmax": integer, + "s_bmax": integer, + "rexmt": float, + "persist": float, + "keep": float, + "2msl": float, + "delack": float, + "rcvtime": float, } ] """ @@ -346,7 +364,9 @@ 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', 'idrop', 'ibytes', 'obytes'] + 'tx_ok', 'tx_err', 'tx_drp', 'tx_ovr', 'idrop', 'ibytes', 'obytes', 'r_mbuf', + 's_mbuf', 'r_clus', 's_clus', 'r_hiwa', 's_hiwa', 'r_lowa', 's_lowa', 'r_bcnt', + 's_bcnt', 'r_bmax', 's_bmax'] for key in int_list: if key in entry: try: @@ -355,6 +375,16 @@ def process(proc_data): except (ValueError): entry[key] = None + # float changes + float_list = ['rexmt', 'persist', 'keep', '2msl', 'delack', 'rcvtime'] + for key in float_list: + if key in entry: + try: + key_float = float(entry[key]) + entry[key] = key_float + except (ValueError): + entry[key] = None + if 'local_port' in entry: try: entry['local_port_num'] = int(entry['local_port']) @@ -397,8 +427,8 @@ def parse(data, raw=False, quiet=False): cleandata = list(filter(None, cleandata)) raw_output = [] - # check for OSX vs Linux - # is this from OSX? + # check for FreeBSD/OSX vs Linux + # is this from FreeBSD/OSX? if cleandata[0] == 'Active Internet connections' \ or cleandata[0] == 'Active Internet connections (including servers)' \ or cleandata[0] == 'Active Multipath Internet connections' \ @@ -408,7 +438,6 @@ def parse(data, raw=False, quiet=False): or cleandata[0] == 'Active kernel control sockets' \ or cleandata[0] == 'Routing tables' \ or cleandata[0].startswith('Name '): - # or cleandata[0] == 'Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll' \ import jc.parsers.netstat_freebsd_osx raw_output = jc.parsers.netstat_freebsd_osx.parse(cleandata)