diff options
| author | tv <tv@krebsco.de> | 2026-11-02 16:42:25 +0100 |
|---|---|---|
| committer | tv <tv@krebsco.de> | 2026-11-02 16:42:25 +0100 |
| commit | 810bf840d6318ecfab0709989067421925f12504 (patch) | |
| tree | 6a884c74065f9e876ff4a87fc7c88eee71d3bb6b /src/swarm/peer/worker.rs | |
| parent | b922d055a2208f5610c704a04309b14e1cbceb05 (diff) | |
add per-node traffic counts
Diffstat (limited to 'src/swarm/peer/worker.rs')
| -rw-r--r-- | src/swarm/peer/worker.rs | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/swarm/peer/worker.rs b/src/swarm/peer/worker.rs index e8e6f8b..6196571 100644 --- a/src/swarm/peer/worker.rs +++ b/src/swarm/peer/worker.rs @@ -170,7 +170,15 @@ pub(crate) async fn run_peer_worker(state: AppState) { crate::swarm::state_file::update(&state, false).await; { let known = state.peer_states.read().await; - state.traffic.retain(|peer| known.contains_key(peer)); + // And their addresses, where the layers below the node count + // (`Traffic::node`). + let addresses: std::collections::HashSet<String> = known + .keys() + .flat_map(|peer| state.transport.identities_of(peer)) + .collect(); + state + .traffic + .retain(|peer| known.contains_key(peer) || addresses.contains(peer)); state .throughput .lock_or_recover() |
