From be90cf00a6235fd542c6d2c1eb8c7825b6e9e6be Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Wed, 21 Jul 2021 18:49:10 +0200 Subject: [PATCH] Firewall / Diagnostics / States, Sessions - fix some minor glitches. o mark unsortable columns o fix type validations (avg=* isn't an int). o better to return an empty structure than [], avoid JS errors in the frontend --- .../Diagnostics/Api/FirewallController.php | 14 ++++++++++++-- .../app/views/OPNsense/Diagnostics/fw_states.volt | 6 +++--- src/opnsense/scripts/filter/lib/states.py | 6 +++--- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/FirewallController.php b/src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/FirewallController.php index 527edc5d3..9d580dc41 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/FirewallController.php +++ b/src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/FirewallController.php @@ -199,7 +199,12 @@ class FirewallController extends ApiControllerBase ]; } } - return []; + return [ + 'rows' => [], + 'rowCount' => 0, + 'total' => 0, + 'current' => 0 + ]; } /** @@ -244,7 +249,12 @@ class FirewallController extends ApiControllerBase ]; } } - return []; + return [ + 'rows' => [], + 'rowCount' => 0, + 'total' => 0, + 'current' => 0 + ]; } /** * delete / drop a specific state by state+creator id diff --git a/src/opnsense/mvc/app/views/OPNsense/Diagnostics/fw_states.volt b/src/opnsense/mvc/app/views/OPNsense/Diagnostics/fw_states.volt index dd8e50e4b..427a6020c 100644 --- a/src/opnsense/mvc/app/views/OPNsense/Diagnostics/fw_states.volt +++ b/src/opnsense/mvc/app/views/OPNsense/Diagnostics/fw_states.volt @@ -221,9 +221,9 @@ {{ lang._('Int') }} {{ lang._('Dir') }} {{ lang._('Proto') }} - {{ lang._('Source') }} - {{ lang._('Nat') }} - {{ lang._('Destination') }} + {{ lang._('Source') }} + {{ lang._('Nat') }} + {{ lang._('Destination') }} {{ lang._('State') }} {{ lang._('Rule') }} {{ lang._('Commands') }} diff --git a/src/opnsense/scripts/filter/lib/states.py b/src/opnsense/scripts/filter/lib/states.py index 6ef2dd9e6..9768b2e03 100755 --- a/src/opnsense/scripts/filter/lib/states.py +++ b/src/opnsense/scripts/filter/lib/states.py @@ -192,9 +192,9 @@ def query_top(rule_label, filter_str): record['state'] = parts[idx] record['age'] = parts[idx+1] record['expire'] = parts[idx+2] - record['pkts'] = int(parts[idx+3]) - record['bytes'] = int(parts[idx+4]) - record['avg'] = int(parts[idx+5]) + record['pkts'] = int(parts[idx+3]) if parts[idx+3].isdigit() else 0 + record['bytes'] = int(parts[idx+4]) if parts[idx+4].isdigit() else 0 + record['avg'] = int(parts[idx+5]) if parts[idx+5].isdigit() else 0 record['rule'] = parts[idx+6] if record['rule'] in rule_labels: record['label'] = rule_labels[record['rule']]['rid']