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 | 240e88f8b42a7ce8fb6924a2625491c33e303ec2 (patch) | |
| tree | 1645547832f9bcaa9865bdfa46c864aab25475ba /src/swarm | |
| parent | 25076058f102c8275c8fa2ba76efb33a46207687 (diff) | |
add per-node traffic counts
Diffstat (limited to 'src/swarm')
| -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() |
