From 16d506d21c8423e706b0b979bc67c42de205aa85 Mon Sep 17 00:00:00 2001 From: TurboFish <87058147+CryptoTurboFish@users.noreply.github.com> Date: Wed, 11 Jan 2023 02:04:23 -0800 Subject: [PATCH] add a helper function for ActiveSession on_request to safely emit_message (#806) Co-authored-by: turbofish --- crates/net/network/src/session/active.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/crates/net/network/src/session/active.rs b/crates/net/network/src/session/active.rs index 31d731fcea..2683ded205 100644 --- a/crates/net/network/src/session/active.rs +++ b/crates/net/network/src/session/active.rs @@ -105,7 +105,7 @@ impl ActiveSession { received: Instant::now(), }; if self - .try_emit_message(PeerMessage::EthRequest(PeerRequest::$req_item { + .safe_emit_message(PeerMessage::EthRequest(PeerRequest::$req_item { request, response: tx, })) @@ -255,6 +255,18 @@ impl ActiveSession { }); } + /// Send a message back to the [`SessionsManager`] + /// covering both broadcasts and incoming requests + fn safe_emit_message( + &self, + message: PeerMessage, + ) -> Result<(), mpsc::error::TrySendError> { + self.to_session + // we want this message to always arrive, so we clone the sender + .clone() + .try_send(ActiveSessionMessage::ValidMessage { peer_id: self.remote_peer_id, message }) + } + /// Send a message back to the [`SessionsManager`] fn try_emit_message( &self,