From 09c690862e6989b1d098e93d5fc23decc1d58ebc Mon Sep 17 00:00:00 2001 From: Elena Frank Date: Thu, 28 Jul 2022 03:04:36 +0200 Subject: [PATCH] protocols/dcutr: Fix clippy lints (#2772) --- protocols/dcutr/src/behaviour.rs | 61 ++++++++++++-------------- protocols/dcutr/src/handler/relayed.rs | 12 ++--- 2 files changed, 34 insertions(+), 39 deletions(-) diff --git a/protocols/dcutr/src/behaviour.rs b/protocols/dcutr/src/behaviour.rs index 893148890b7..5d93d90b339 100644 --- a/protocols/dcutr/src/behaviour.rs +++ b/protocols/dcutr/src/behaviour.rs @@ -65,6 +65,7 @@ pub enum UpgradeError { Handler(ConnectionHandlerUpgrErr), } +#[derive(Default)] pub struct Behaviour { /// Queue of actions to return when polled. queued_actions: VecDeque, @@ -145,40 +146,35 @@ impl NetworkBehaviour for Behaviour { handler: Self::ConnectionHandler, _error: &DialError, ) { - match handler { - handler::Prototype::DirectConnection { - relayed_connection_id, - role: handler::Role::Initiator { attempt }, - } => { - let peer_id = - peer_id.expect("Peer of `Prototype::DirectConnection` is always known."); - if attempt < MAX_NUMBER_OF_UPGRADE_ATTEMPTS { - self.queued_actions.push_back(ActionBuilder::Connect { + if let handler::Prototype::DirectConnection { + relayed_connection_id, + role: handler::Role::Initiator { attempt }, + } = handler + { + let peer_id = peer_id.expect("Peer of `Prototype::DirectConnection` is always known."); + if attempt < MAX_NUMBER_OF_UPGRADE_ATTEMPTS { + self.queued_actions.push_back(ActionBuilder::Connect { + peer_id, + handler: NotifyHandler::One(relayed_connection_id), + attempt: attempt + 1, + }); + } else { + self.queued_actions.extend([ + NetworkBehaviourAction::NotifyHandler { peer_id, handler: NotifyHandler::One(relayed_connection_id), - attempt: attempt + 1, - }); - } else { - self.queued_actions.extend([ - NetworkBehaviourAction::NotifyHandler { - peer_id, - handler: NotifyHandler::One(relayed_connection_id), - event: Either::Left( - handler::relayed::Command::UpgradeFinishedDontKeepAlive, - ), - } - .into(), - NetworkBehaviourAction::GenerateEvent( - Event::DirectConnectionUpgradeFailed { - remote_peer_id: peer_id, - error: UpgradeError::Dial, - }, - ) - .into(), - ]); - } + event: Either::Left( + handler::relayed::Command::UpgradeFinishedDontKeepAlive, + ), + } + .into(), + NetworkBehaviourAction::GenerateEvent(Event::DirectConnectionUpgradeFailed { + remote_peer_id: peer_id, + error: UpgradeError::Dial, + }) + .into(), + ]); } - _ => {} } } @@ -324,7 +320,6 @@ impl NetworkBehaviour for Behaviour { /// A [`NetworkBehaviourAction`], either complete, or still requiring data from [`PollParameters`] /// before being returned in [`Behaviour::poll`]. -#[allow(clippy::large_enum_variant)] enum ActionBuilder { Done(NetworkBehaviourAction), Connect { @@ -333,7 +328,7 @@ enum ActionBuilder { peer_id: PeerId, }, AcceptInboundConnect { - inbound_connect: protocol::inbound::PendingConnect, + inbound_connect: Box, handler: NotifyHandler, peer_id: PeerId, }, diff --git a/protocols/dcutr/src/handler/relayed.rs b/protocols/dcutr/src/handler/relayed.rs index 9f9e2e01c13..e172b8f6993 100644 --- a/protocols/dcutr/src/handler/relayed.rs +++ b/protocols/dcutr/src/handler/relayed.rs @@ -44,7 +44,7 @@ pub enum Command { }, AcceptInboundConnect { obs_addrs: Vec, - inbound_connect: protocol::inbound::PendingConnect, + inbound_connect: Box, }, /// Upgrading the relayed connection to a direct connection either failed for good or succeeded. /// There is no need to keep the relayed connection alive for the sake of upgrading to a direct @@ -76,7 +76,7 @@ impl fmt::Debug for Command { pub enum Event { InboundConnectRequest { - inbound_connect: protocol::inbound::PendingConnect, + inbound_connect: Box, remote_addr: Multiaddr, }, InboundNegotiationFailed { @@ -201,7 +201,7 @@ impl ConnectionHandler for Handler { }; self.queued_events.push_back(ConnectionHandlerEvent::Custom( Event::InboundConnectRequest { - inbound_connect, + inbound_connect: Box::new(inbound_connect), remote_addr, }, )); @@ -245,9 +245,10 @@ impl ConnectionHandler for Handler { inbound_connect, obs_addrs, } => { - if let Some(_) = self + if self .inbound_connect .replace(inbound_connect.accept(obs_addrs).boxed()) + .is_some() { log::warn!( "New inbound connect stream while still upgrading previous one. \ @@ -337,8 +338,7 @@ impl ConnectionHandler for Handler { _ => { // Anything else is considered a fatal error or misbehaviour of // the remote peer and results in closing the connection. - self.pending_error = - Some(error.map_upgrade_err(|e| e.map_err(|e| EitherError::B(e)))); + self.pending_error = Some(error.map_upgrade_err(|e| e.map_err(EitherError::B))); } } }