p2pnet: broadcast(): log channel.send error and prevent loop break

This commit is contained in:
aggstam
2022-09-17 11:24:35 +03:00
parent a7c3692364
commit 89f32d8290

View File

@@ -4,7 +4,7 @@ use std::fmt;
use async_executor::Executor;
use futures::{select, try_join, FutureExt};
use fxhash::{FxHashMap, FxHashSet};
use log::{debug, warn};
use log::{debug, error, warn};
use serde_json::json;
use url::Url;
@@ -305,7 +305,13 @@ impl P2p {
/// Broadcasts a message across all channels.
pub async fn broadcast<M: Message + Clone>(&self, message: M) -> Result<()> {
for channel in self.channels.lock().await.values() {
channel.send(message.clone()).await?;
if let Err(e) = channel.send(message.clone()).await {
error!(
"P2p::broadcast(): Broadcasting message to {} failed: {}",
channel.address(),
e
);
}
}
Ok(())
}