diff --git a/gossip-lib/src/overlord/mod.rs b/gossip-lib/src/overlord/mod.rs index fe4e0036..ea51f7ba 100644 --- a/gossip-lib/src/overlord/mod.rs +++ b/gossip-lib/src/overlord/mod.rs @@ -731,6 +731,13 @@ impl Overlord { pr.manually_paired_write = true; GLOBALS.storage.write_person_relay(&pr, None)?; + if let Some(pk) = GLOBALS.people.get_active_person_async().await { + if pk == pubkey { + // Refresh active person data from storage + GLOBALS.people.set_active_person(pubkey).await?; + } + } + self.pick_relays().await; Ok(()) diff --git a/gossip-lib/src/people.rs b/gossip-lib/src/people.rs index 54fd0871..2940e110 100644 --- a/gossip-lib/src/people.rs +++ b/gossip-lib/src/people.rs @@ -874,6 +874,10 @@ impl People { *self.active_person.blocking_read() } + pub async fn get_active_person_async(&self) -> Option { + *self.active_person.read().await + } + pub fn get_active_person_write_relays(&self) -> Vec<(RelayUrl, u64)> { self.active_persons_write_relays.blocking_read().clone() }