aboutsummaryrefslogtreecommitdiffstats
path: root/src/swarm
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-11-02 16:42:25 +0100
committertv <tv@krebsco.de>2026-11-02 16:42:25 +0100
commit240e88f8b42a7ce8fb6924a2625491c33e303ec2 (patch)
tree1645547832f9bcaa9865bdfa46c864aab25475ba /src/swarm
parent25076058f102c8275c8fa2ba76efb33a46207687 (diff)
add per-node traffic counts
Diffstat (limited to 'src/swarm')
-rw-r--r--src/swarm/peer/worker.rs10
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()