From 40288c181eff39348661259aab1ad2d14c5575b4 Mon Sep 17 00:00:00 2001 From: Dmitry Valter <38795282+dvalter@users.noreply.github.com> Date: Fri, 3 Mar 2023 05:33:47 +0000 Subject: fix: is_list_ignored=false filters for network and temperature (#1037) Use filter logic from network/sysinfo in temperature and network/heim harvesters. Previously is_list_ignored=false filter configs would silently accept every sensor and every interface. --- src/app/data_harvester/network/heim.rs | 17 ++++++----------- src/app/data_harvester/temperature.rs | 16 ++++++---------- 2 files changed, 12 insertions(+), 21 deletions(-) (limited to 'src') diff --git a/src/app/data_harvester/network/heim.rs b/src/app/data_harvester/network/heim.rs index 28144a55..646c8528 100644 --- a/src/app/data_harvester/network/heim.rs +++ b/src/app/data_harvester/network/heim.rs @@ -23,22 +23,17 @@ pub async fn get_network_data( while let Some(io) = io_data.next().await { if let Ok(io) = io { let to_keep = if let Some(filter) = filter { - if filter.is_list_ignored { - let mut ret = true; - for r in &filter.list { - if r.is_match(io.interface()) { - ret = false; - break; - } + let mut ret = filter.is_list_ignored; + for r in &filter.list { + if r.is_match(io.interface()) { + ret = !filter.is_list_ignored; + break; } - ret - } else { - true } + ret } else { true }; - if to_keep { // TODO: Use bytes as the default instead, perhaps? // Since you might have to do a double conversion (bytes -> bits -> bytes) in some cases; diff --git a/src/app/data_harvester/temperature.rs b/src/app/data_harvester/temperature.rs index a24da371..82cf38f4 100644 --- a/src/app/data_harvester/temperature.rs +++ b/src/app/data_harvester/temperature.rs @@ -47,18 +47,14 @@ fn convert_celsius_to_fahrenheit(celsius: f32) -> f32 { fn is_temp_filtered(filter: &Option, text: &str) -> bool { if let Some(filter) = filter { - if filter.is_list_ignored { - let mut ret = true; - for r in &filter.list { - if r.is_match(text) { - ret = false; - break; - } + let mut ret = filter.is_list_ignored; + for r in &filter.list { + if r.is_match(text) { + ret = !filter.is_list_ignored; + break; } - ret - } else { - true } + ret } else { true } -- cgit v1.2.3