From 8cd14e6a3a7ede160671fec136ccb33c1c73806f Mon Sep 17 00:00:00 2001 From: Thomas Eizinger Date: Wed, 18 Jan 2023 12:29:43 +1100 Subject: [PATCH] refactor(relay): introduce `Handler::new` functions (#3334) --- protocols/relay/src/behaviour/handler.rs | 30 +++++++++++--------- protocols/relay/src/priv_client/handler.rs | 32 ++++++++++++++-------- 2 files changed, 37 insertions(+), 25 deletions(-) diff --git a/protocols/relay/src/behaviour/handler.rs b/protocols/relay/src/behaviour/handler.rs index 1aaa47b6..8b28428e 100644 --- a/protocols/relay/src/behaviour/handler.rs +++ b/protocols/relay/src/behaviour/handler.rs @@ -350,19 +350,7 @@ impl IntoConnectionHandler for Prototype { // Deny all substreams on relayed connection. Either::Right(dummy::ConnectionHandler) } else { - Either::Left(Handler { - endpoint: endpoint.clone(), - config: self.config, - queued_events: Default::default(), - pending_error: Default::default(), - reservation_request_future: Default::default(), - circuit_accept_futures: Default::default(), - circuit_deny_futures: Default::default(), - alive_lend_out_substreams: Default::default(), - circuits: Default::default(), - active_reservation: Default::default(), - keep_alive: KeepAlive::Yes, - }) + Either::Left(Handler::new(self.config, endpoint.clone())) } } @@ -431,6 +419,22 @@ pub struct Handler { } impl Handler { + fn new(config: Config, endpoint: ConnectedPoint) -> Handler { + Handler { + endpoint, + config, + queued_events: Default::default(), + pending_error: Default::default(), + reservation_request_future: Default::default(), + circuit_accept_futures: Default::default(), + circuit_deny_futures: Default::default(), + alive_lend_out_substreams: Default::default(), + circuits: Default::default(), + active_reservation: Default::default(), + keep_alive: KeepAlive::Yes, + } + } + fn on_fully_negotiated_inbound( &mut self, FullyNegotiatedInbound { diff --git a/protocols/relay/src/priv_client/handler.rs b/protocols/relay/src/priv_client/handler.rs index d6473276..ff34be49 100644 --- a/protocols/relay/src/priv_client/handler.rs +++ b/protocols/relay/src/priv_client/handler.rs @@ -140,18 +140,11 @@ impl IntoConnectionHandler for Prototype { // Deny all substreams on relayed connection. Either::Right(dummy::ConnectionHandler) } else { - let mut handler = Handler { - remote_peer_id: *remote_peer_id, - remote_addr: endpoint.get_remote_address().clone(), - local_peer_id: self.local_peer_id, - queued_events: Default::default(), - pending_error: Default::default(), - reservation: Reservation::None, - alive_lend_out_substreams: Default::default(), - circuit_deny_futs: Default::default(), - send_error_futs: Default::default(), - keep_alive: KeepAlive::Yes, - }; + let mut handler = Handler::new( + self.local_peer_id, + *remote_peer_id, + endpoint.get_remote_address().clone(), + ); if let Some(event) = self.initial_in { handler.on_behaviour_event(event) @@ -212,6 +205,21 @@ pub struct Handler { } impl Handler { + fn new(local_peer_id: PeerId, remote_peer_id: PeerId, remote_addr: Multiaddr) -> Self { + Self { + local_peer_id, + remote_peer_id, + remote_addr, + queued_events: Default::default(), + pending_error: Default::default(), + reservation: Reservation::None, + alive_lend_out_substreams: Default::default(), + circuit_deny_futs: Default::default(), + send_error_futs: Default::default(), + keep_alive: KeepAlive::Yes, + } + } + fn on_fully_negotiated_inbound( &mut self, FullyNegotiatedInbound {