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§
source§impl Behaviour
impl Behaviour
pub fn new(limits: ConnectionLimits) -> Self
sourcepub fn limits_mut(&mut self) -> &mut ConnectionLimits
pub fn limits_mut(&mut self) -> &mut ConnectionLimits
Returns a mutable reference to ConnectionLimits
.
Note: A new limit will not be enforced against existing connections.
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<'_>)
fn on_swarm_event(&mut self, event: FromSwarm<'_>)
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 moreAuto Trait Implementations§
impl RefUnwindSafe for Behaviour
impl Send for Behaviour
impl Sync for Behaviour
impl Unpin for Behaviour
impl UnwindSafe for Behaviour
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more