From 7d8a2b72c9c57af97565c974c6d6459be76d1883 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Oliveira?= Date: Sun, 6 Nov 2022 13:11:20 +0000 Subject: [PATCH] review: replace inject_event on missing parts, and implement on_swarm_event for required types. --- protocols/rendezvous/src/client.rs | 18 ++++++++++++++++++ protocols/rendezvous/src/server.rs | 18 ++++++++++++++++++ swarm-derive/tests/test.rs | 18 ++++++++++++++++++ swarm/src/dummy.rs | 21 +++++++++++++++++++-- swarm/src/keep_alive.rs | 21 +++++++++++++++++++-- swarm/src/test.rs | 26 ++++++++++++++++++++++++++ 6 files changed, 118 insertions(+), 4 deletions(-) diff --git a/protocols/rendezvous/src/client.rs b/protocols/rendezvous/src/client.rs index 93115b5386b..80ff29add06 100644 --- a/protocols/rendezvous/src/client.rs +++ b/protocols/rendezvous/src/client.rs @@ -32,6 +32,7 @@ use libp2p_core::connection::ConnectionId; use libp2p_core::identity::error::SigningError; use libp2p_core::identity::Keypair; use libp2p_core::{Multiaddr, PeerId, PeerRecord}; +use libp2p_swarm::behaviour::FromSwarm; use libp2p_swarm::{ CloseConnection, NetworkBehaviour, NetworkBehaviourAction, NotifyHandler, PollParameters, }; @@ -265,6 +266,23 @@ impl NetworkBehaviour for Behaviour { Poll::Pending } + + fn on_swarm_event(&mut self, event: FromSwarm) { + match event { + FromSwarm::ConnectionEstablished(_) + | FromSwarm::ConnectionClosed(_) + | FromSwarm::AddressChange(_) + | FromSwarm::DialFailure(_) + | FromSwarm::ListenFailure(_) + | FromSwarm::NewListener(_) + | FromSwarm::NewListenAddr(_) + | FromSwarm::ExpiredListenAddr(_) + | FromSwarm::ListenerError(_) + | FromSwarm::ListenerClosed(_) + | FromSwarm::NewExternalAddr(_) + | FromSwarm::ExpiredExternalAddr(_) => {} + } + } } fn handle_outbound_event( diff --git a/protocols/rendezvous/src/server.rs b/protocols/rendezvous/src/server.rs index e88de1d056c..560397943ce 100644 --- a/protocols/rendezvous/src/server.rs +++ b/protocols/rendezvous/src/server.rs @@ -29,6 +29,7 @@ use futures::stream::FuturesUnordered; use futures::{FutureExt, StreamExt}; use libp2p_core::connection::ConnectionId; use libp2p_core::PeerId; +use libp2p_swarm::behaviour::FromSwarm; use libp2p_swarm::{ CloseConnection, NetworkBehaviour, NetworkBehaviourAction, NotifyHandler, PollParameters, }; @@ -160,6 +161,23 @@ impl NetworkBehaviour for Behaviour { Poll::Pending } + + fn on_swarm_event(&mut self, event: FromSwarm) { + match event { + FromSwarm::ConnectionEstablished(_) + | FromSwarm::ConnectionClosed(_) + | FromSwarm::AddressChange(_) + | FromSwarm::DialFailure(_) + | FromSwarm::ListenFailure(_) + | FromSwarm::NewListener(_) + | FromSwarm::NewListenAddr(_) + | FromSwarm::ExpiredListenAddr(_) + | FromSwarm::ListenerError(_) + | FromSwarm::ListenerClosed(_) + | FromSwarm::NewExternalAddr(_) + | FromSwarm::ExpiredExternalAddr(_) => {} + } + } } fn handle_inbound_event( diff --git a/swarm-derive/tests/test.rs b/swarm-derive/tests/test.rs index 439fe3ef030..90826240ddf 100644 --- a/swarm-derive/tests/test.rs +++ b/swarm-derive/tests/test.rs @@ -19,6 +19,7 @@ // DEALINGS IN THE SOFTWARE. use futures::prelude::*; +use libp2p::swarm::behaviour::FromSwarm; use libp2p::swarm::{dummy, NetworkBehaviour, SwarmEvent}; use libp2p::{identify, ping}; use libp2p_swarm_derive::*; @@ -390,6 +391,23 @@ fn custom_out_event_no_type_parameters() { ) -> Poll> { Poll::Pending } + + fn on_swarm_event(&mut self, event: FromSwarm) { + match event { + FromSwarm::ConnectionEstablished(_) + | FromSwarm::ConnectionClosed(_) + | FromSwarm::AddressChange(_) + | FromSwarm::DialFailure(_) + | FromSwarm::ListenFailure(_) + | FromSwarm::NewListener(_) + | FromSwarm::NewListenAddr(_) + | FromSwarm::ExpiredListenAddr(_) + | FromSwarm::ListenerError(_) + | FromSwarm::ListenerClosed(_) + | FromSwarm::NewExternalAddr(_) + | FromSwarm::ExpiredExternalAddr(_) => {} + } + } } #[derive(NetworkBehaviour)] diff --git a/swarm/src/dummy.rs b/swarm/src/dummy.rs index 61f055915b3..6c51065a9e1 100644 --- a/swarm/src/dummy.rs +++ b/swarm/src/dummy.rs @@ -1,4 +1,4 @@ -use crate::behaviour::{NetworkBehaviour, NetworkBehaviourAction, PollParameters}; +use crate::behaviour::{FromSwarm, NetworkBehaviour, NetworkBehaviourAction, PollParameters}; use crate::handler::{InboundUpgradeSend, OutboundUpgradeSend}; use crate::{ConnectionHandlerEvent, ConnectionHandlerUpgrErr, KeepAlive, SubstreamProtocol}; use libp2p_core::connection::ConnectionId; @@ -19,7 +19,7 @@ impl NetworkBehaviour for Behaviour { ConnectionHandler } - fn inject_event(&mut self, _: PeerId, _: ConnectionId, event: Void) { + fn on_connection_handler_event(&mut self, _: PeerId, _: ConnectionId, event: Void) { void::unreachable(event) } @@ -30,6 +30,23 @@ impl NetworkBehaviour for Behaviour { ) -> Poll> { Poll::Pending } + + fn on_swarm_event(&mut self, event: FromSwarm) { + match event { + FromSwarm::ConnectionEstablished(_) + | FromSwarm::ConnectionClosed(_) + | FromSwarm::AddressChange(_) + | FromSwarm::DialFailure(_) + | FromSwarm::ListenFailure(_) + | FromSwarm::NewListener(_) + | FromSwarm::NewListenAddr(_) + | FromSwarm::ExpiredListenAddr(_) + | FromSwarm::ListenerError(_) + | FromSwarm::ListenerClosed(_) + | FromSwarm::NewExternalAddr(_) + | FromSwarm::ExpiredExternalAddr(_) => {} + } + } } /// An implementation of [`ConnectionHandler`] that neither handles any protocols nor does it keep the connection alive. diff --git a/swarm/src/keep_alive.rs b/swarm/src/keep_alive.rs index ea5d5ee6399..29a0eca1e21 100644 --- a/swarm/src/keep_alive.rs +++ b/swarm/src/keep_alive.rs @@ -1,4 +1,4 @@ -use crate::behaviour::{NetworkBehaviour, NetworkBehaviourAction, PollParameters}; +use crate::behaviour::{FromSwarm, NetworkBehaviour, NetworkBehaviourAction, PollParameters}; use crate::handler::{ ConnectionHandlerEvent, ConnectionHandlerUpgrErr, KeepAlive, SubstreamProtocol, }; @@ -29,7 +29,7 @@ impl NetworkBehaviour for Behaviour { ConnectionHandler } - fn inject_event(&mut self, _: PeerId, _: ConnectionId, event: Void) { + fn on_connection_handler_event(&mut self, _: PeerId, _: ConnectionId, event: Void) { void::unreachable(event) } @@ -40,6 +40,23 @@ impl NetworkBehaviour for Behaviour { ) -> Poll> { Poll::Pending } + + fn on_swarm_event(&mut self, event: FromSwarm) { + match event { + FromSwarm::ConnectionEstablished(_) + | FromSwarm::ConnectionClosed(_) + | FromSwarm::AddressChange(_) + | FromSwarm::DialFailure(_) + | FromSwarm::ListenFailure(_) + | FromSwarm::NewListener(_) + | FromSwarm::NewListenAddr(_) + | FromSwarm::ExpiredListenAddr(_) + | FromSwarm::ListenerError(_) + | FromSwarm::ListenerClosed(_) + | FromSwarm::NewExternalAddr(_) + | FromSwarm::ExpiredExternalAddr(_) => {} + } + } } /// Implementation of [`ConnectionHandler`] that doesn't handle anything but keeps the connection alive. diff --git a/swarm/src/test.rs b/swarm/src/test.rs index fa6a3ed533b..94a5fbfef54 100644 --- a/swarm/src/test.rs +++ b/swarm/src/test.rs @@ -87,6 +87,32 @@ where ) -> Poll> { self.next_action.take().map_or(Poll::Pending, Poll::Ready) } + + fn on_swarm_event(&mut self, event: FromSwarm) { + match event { + FromSwarm::ConnectionEstablished(_) + | FromSwarm::ConnectionClosed(_) + | FromSwarm::AddressChange(_) + | FromSwarm::DialFailure(_) + | FromSwarm::ListenFailure(_) + | FromSwarm::NewListener(_) + | FromSwarm::NewListenAddr(_) + | FromSwarm::ExpiredListenAddr(_) + | FromSwarm::ListenerError(_) + | FromSwarm::ListenerClosed(_) + | FromSwarm::NewExternalAddr(_) + | FromSwarm::ExpiredExternalAddr(_) => {} + } + } + + fn on_connection_handler_event( + &mut self, + _peer_id: PeerId, + _connection_id: ConnectionId, + _event: <::Handler as + ConnectionHandler>::OutEvent, + ) { + } } /// A `CallTraceBehaviour` is a `NetworkBehaviour` that tracks