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());