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 {
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;

View File

@ -47,18 +47,14 @@ fn convert_celsius_to_fahrenheit(celsius: f32) -> f32 {
fn is_temp_filtered(filter: &Option<Filter>, 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
}