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.
This commit is contained in:
Dmitry Valter 2023-03-03 05:33:47 +00:00 committed by GitHub
parent 8cc763cc1b
commit 40288c181e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 21 deletions

View File

@ -23,22 +23,17 @@ pub async fn get_network_data(
while let Some(io) = io_data.next().await { while let Some(io) = io_data.next().await {
if let Ok(io) = io { if let Ok(io) = io {
let to_keep = if let Some(filter) = filter { let to_keep = if let Some(filter) = filter {
if filter.is_list_ignored { let mut ret = filter.is_list_ignored;
let mut ret = true; for r in &filter.list {
for r in &filter.list { if r.is_match(io.interface()) {
if r.is_match(io.interface()) { ret = !filter.is_list_ignored;
ret = false; break;
break;
}
} }
ret
} else {
true
} }
ret
} else { } else {
true true
}; };
if to_keep { if to_keep {
// TODO: Use bytes as the default instead, perhaps? // TODO: Use bytes as the default instead, perhaps?
// Since you might have to do a double conversion (bytes -> bits -> bytes) in some cases; // Since you might have to do a double conversion (bytes -> bits -> bytes) in some cases;

View File

@ -47,18 +47,14 @@ fn convert_celsius_to_fahrenheit(celsius: f32) -> f32 {
fn is_temp_filtered(filter: &Option<Filter>, text: &str) -> bool { fn is_temp_filtered(filter: &Option<Filter>, text: &str) -> bool {
if let Some(filter) = filter { if let Some(filter) = filter {
if filter.is_list_ignored { let mut ret = filter.is_list_ignored;
let mut ret = true; for r in &filter.list {
for r in &filter.list { if r.is_match(text) {
if r.is_match(text) { ret = !filter.is_list_ignored;
ret = false; break;
break;
}
} }
ret
} else {
true
} }
ret
} else { } else {
true true
} }