From f6a85f0360122c9c0506764e6d8ffafa40385f56 Mon Sep 17 00:00:00 2001 From: ghassmo Date: Wed, 11 May 2022 06:36:02 +0300 Subject: [PATCH] net: provide exclude list during broadcast --- src/net/p2p.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/net/p2p.rs b/src/net/p2p.rs index ba674459a..a9ec253f7 100644 --- a/src/net/p2p.rs +++ b/src/net/p2p.rs @@ -185,6 +185,22 @@ impl P2p { Ok(()) } + /// Broadcasts a message across all channels. + /// exclude channels provided in exclude_list + pub async fn broadcast_with_exclude( + &self, + message: M, + exclude_list: &[Url], + ) -> Result<()> { + for channel in self.channels.lock().await.values() { + if exclude_list.contains(&channel.address()) { + continue + } + channel.send(message.clone()).await?; + } + Ok(()) + } + /// Add channel address to the list of connected channels. pub async fn store(&self, channel: ChannelPtr) { self.channels.lock().await.insert(channel.address(), channel.clone());