From 2c0416d53a17400e3c796a6a1e4e196aa5318c56 Mon Sep 17 00:00:00 2001 From: tv Date: Wed, 28 Oct 2026 14:03:53 +0100 Subject: add support for renaming IDs in the logger --- src/swarm/topology.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/swarm/topology.rs') diff --git a/src/swarm/topology.rs b/src/swarm/topology.rs index c9d1266..2ba07b7 100644 --- a/src/swarm/topology.rs +++ b/src/swarm/topology.rs @@ -137,6 +137,19 @@ pub(crate) fn affects_neighbours(path: &[String]) -> bool { path.is_empty() || path.starts_with(&members::members_dir()) } +/// Hands the members' `aliases` to the logger, under every name that stands for each: +/// its node ID, and its addresses (`logging`, which renames them bare too). +fn set_aliases(state: &AppState, aliases: std::collections::HashMap) { + let mut names = std::collections::HashMap::new(); + for (member, alias) in aliases { + for address in state.transport.identities_of(&member) { + names.insert(address, alias.clone()); + } + names.insert(member, alias); + } + crate::logging::set_aliases(names); +} + /// Recomputes the neighbours once ready, if the member list, the reachable members or /// `k` changed. pub(crate) async fn refresh(state: &AppState) -> Option { @@ -146,6 +159,7 @@ pub(crate) async fn refresh(state: &AppState) -> Option { let (current, stable, transports, alive) = { let replica = state.doc.read().await; members::learn_addresses(state, &replica.doc); + set_aliases(state, members::aliases(&replica.doc)); let current = members::members(&replica.doc); // Those that said they are alive within the electorate window. let alive: BTreeSet = members::electorate( -- cgit v1.3.1