From 27735bb6f4074a130076e579104de84296f8d796 Mon Sep 17 00:00:00 2001 From: parazyd Date: Sat, 12 Aug 2023 20:54:31 +0200 Subject: [PATCH] net: Remove channels from P2P if broadcast fails. --- src/net/p2p.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/net/p2p.rs b/src/net/p2p.rs index 4247d1840..ba3d9547f 100644 --- a/src/net/p2p.rs +++ b/src/net/p2p.rs @@ -275,7 +275,10 @@ impl P2p { } futures.push(channel.send(message).map_err(|e| { - format!("P2P: Broadcasting message to {} failed: {}", channel.address(), e) + ( + format!("[P2P] Broadcasting message to {} failed: {}", channel.address(), e), + channel.clone(), + ) })); } @@ -285,10 +288,9 @@ impl P2p { } while let Some(entry) = futures.next().await { - // TODO: Here we can close the channels. - // See message_subscriber::_trigger_all on how to do it. - if let Err(e) = entry { + if let Err((e, chan)) = entry { error!(target: "net::p2p::broadcast()", "{}", e); + self.remove(chan).await; } } }