Struct libp2p_connection_limits::Behaviour
source · pub struct Behaviour { /* private fields */ }
Expand description
A NetworkBehaviour
that enforces a set of ConnectionLimits
.
For these limits to take effect, this needs to be composed into the behaviour tree of your application.
If a connection is denied due to a limit, either a SwarmEvent::IncomingConnectionError
or SwarmEvent::OutgoingConnectionError
will be emitted.
The ListenError::Denied
and respectively the DialError::Denied
variant
contain a ConnectionDenied
type that can be downcast to Exceeded
error if (and only if) this
behaviour denied the connection.
If you employ multiple NetworkBehaviour
s that manage connections, it may also be a different error.
Example
#[derive(NetworkBehaviour)]
struct MyBehaviour {
identify: identify::Behaviour,
ping: ping::Behaviour,
limits: connection_limits::Behaviour
}
Implementations§
Trait Implementations§
source§impl NetworkBehaviour for Behaviour
impl NetworkBehaviour for Behaviour
§type ConnectionHandler = ConnectionHandler
type ConnectionHandler = ConnectionHandler
Handler for all the protocols the network behaviour supports.
source§fn handle_pending_inbound_connection(
&mut self,
connection_id: ConnectionId,
_: &Multiaddr,
_: &Multiaddr
) -> Result<(), ConnectionDenied>
fn handle_pending_inbound_connection( &mut self, connection_id: ConnectionId, _: &Multiaddr, _: &Multiaddr ) -> Result<(), ConnectionDenied>
Callback that is invoked for every new inbound connection. Read more
source§fn handle_established_inbound_connection(
&mut self,
connection_id: ConnectionId,
peer: PeerId,
_: &Multiaddr,
_: &Multiaddr
) -> Result<THandler<Self>, ConnectionDenied>
fn handle_established_inbound_connection( &mut self, connection_id: ConnectionId, peer: PeerId, _: &Multiaddr, _: &Multiaddr ) -> Result<THandler<Self>, ConnectionDenied>
Callback that is invoked for every established inbound connection. Read more
source§fn handle_pending_outbound_connection(
&mut self,
connection_id: ConnectionId,
_: Option<PeerId>,
_: &[Multiaddr],
_: Endpoint
) -> Result<Vec<Multiaddr>, ConnectionDenied>
fn handle_pending_outbound_connection( &mut self, connection_id: ConnectionId, _: Option<PeerId>, _: &[Multiaddr], _: Endpoint ) -> Result<Vec<Multiaddr>, ConnectionDenied>
Callback that is invoked for every outbound connection attempt. Read more
source§fn handle_established_outbound_connection(
&mut self,
connection_id: ConnectionId,
peer: PeerId,
_: &Multiaddr,
_: Endpoint
) -> Result<THandler<Self>, ConnectionDenied>
fn handle_established_outbound_connection( &mut self, connection_id: ConnectionId, peer: PeerId, _: &Multiaddr, _: Endpoint ) -> Result<THandler<Self>, ConnectionDenied>
Callback that is invoked for every established outbound connection. Read more
source§fn on_swarm_event(&mut self, event: FromSwarm<'_, Self::ConnectionHandler>)
fn on_swarm_event(&mut self, event: FromSwarm<'_, Self::ConnectionHandler>)
Informs the behaviour about an event from the
Swarm
.source§fn on_connection_handler_event(
&mut self,
_id: PeerId,
_: ConnectionId,
event: THandlerOutEvent<Self>
)
fn on_connection_handler_event( &mut self, _id: PeerId, _: ConnectionId, event: THandlerOutEvent<Self> )
Informs the behaviour about an event generated by the
ConnectionHandler
dedicated to the peer identified by peer_id
. for the behaviour. Read moresource§fn poll(
&mut self,
_: &mut Context<'_>,
_: &mut impl PollParameters
) -> Poll<ToSwarm<Self::OutEvent, THandlerInEvent<Self>>>
fn poll( &mut self, _: &mut Context<'_>, _: &mut impl PollParameters ) -> Poll<ToSwarm<Self::OutEvent, THandlerInEvent<Self>>>
Polls for things that swarm should do. Read more
source§fn new_handler(&mut self) -> Self::ConnectionHandler
fn new_handler(&mut self) -> Self::ConnectionHandler
👎Deprecated since 0.42.0: Use one or more of
NetworkBehaviour::{handle_pending_inbound_connection,handle_established_inbound_connection,handle_pending_outbound_connection,handle_established_outbound_connection}
instead.Creates a new
ConnectionHandler
for a connection with a peer. Read more