summaryrefslogtreecommitdiffstats
path: root/src/app/data_harvester/network/sysinfo.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/app/data_harvester/network/sysinfo.rs')
-rw-r--r--src/app/data_harvester/network/sysinfo.rs27
1 files changed, 9 insertions, 18 deletions
diff --git a/src/app/data_harvester/network/sysinfo.rs b/src/app/data_harvester/network/sysinfo.rs
index e3aea9e7..ec21bd42 100644
--- a/src/app/data_harvester/network/sysinfo.rs
+++ b/src/app/data_harvester/network/sysinfo.rs
@@ -2,33 +2,24 @@
use std::time::Instant;
+use crate::app::Filter;
+
use super::NetworkHarvest;
-pub async fn get_network_data(
+// TODO: Eventually make it so that this thing also takes individual usage into account, so we can show per-interface!
+pub fn get_network_data(
sys: &sysinfo::System, prev_net_access_time: Instant, prev_net_rx: &mut u64,
- prev_net_tx: &mut u64, curr_time: Instant, actually_get: bool,
- filter: &Option<crate::app::Filter>,
-) -> crate::utils::error::Result<Option<NetworkHarvest>> {
+ prev_net_tx: &mut u64, curr_time: Instant, filter: &Option<Filter>,
+) -> NetworkHarvest {
use sysinfo::{NetworkExt, SystemExt};
- if !actually_get {
- return Ok(None);
- }
-
let mut total_rx: u64 = 0;
let mut total_tx: u64 = 0;
let networks = sys.networks();
for (name, network) in networks {
let to_keep = if let Some(filter) = filter {
- let mut ret = filter.is_list_ignored;
- for r in &filter.list {
- if r.is_match(name) {
- ret = !filter.is_list_ignored;
- break;
- }
- }
- ret
+ filter.keep_entry(name)
} else {
true
};
@@ -52,10 +43,10 @@ pub async fn get_network_data(
*prev_net_rx = total_rx;
*prev_net_tx = total_tx;
- Ok(Some(NetworkHarvest {
+ NetworkHarvest {
rx,
tx,
total_rx,
total_tx,
- }))
+ }
}