Enum libp2p_swarm::SwarmEvent
source · pub enum SwarmEvent<TBehaviourOutEvent, THandlerErr> {
Behaviour(TBehaviourOutEvent),
ConnectionEstablished {
peer_id: PeerId,
endpoint: ConnectedPoint,
num_established: NonZeroU32,
concurrent_dial_errors: Option<Vec<(Multiaddr, TransportError<Error>)>>,
established_in: Duration,
},
ConnectionClosed {
peer_id: PeerId,
endpoint: ConnectedPoint,
num_established: u32,
cause: Option<ConnectionError<THandlerErr>>,
},
IncomingConnection {
local_addr: Multiaddr,
send_back_addr: Multiaddr,
},
IncomingConnectionError {
local_addr: Multiaddr,
send_back_addr: Multiaddr,
error: ListenError,
},
OutgoingConnectionError {
peer_id: Option<PeerId>,
error: DialError,
},
BannedPeer {
peer_id: PeerId,
endpoint: ConnectedPoint,
},
NewListenAddr {
listener_id: ListenerId,
address: Multiaddr,
},
ExpiredListenAddr {
listener_id: ListenerId,
address: Multiaddr,
},
ListenerClosed {
listener_id: ListenerId,
addresses: Vec<Multiaddr>,
reason: Result<(), Error>,
},
ListenerError {
listener_id: ListenerId,
error: Error,
},
Dialing(PeerId),
}
Expand description
Event generated by the Swarm
.
Variants§
Behaviour(TBehaviourOutEvent)
Event generated by the NetworkBehaviour
.
ConnectionEstablished
Fields
endpoint: ConnectedPoint
Endpoint of the connection that has been opened.
num_established: NonZeroU32
Number of established connections to this peer, including the one that has just been opened.
A connection to the given peer has been opened.
ConnectionClosed
Fields
endpoint: ConnectedPoint
Endpoint of the connection that has been closed.
cause: Option<ConnectionError<THandlerErr>>
Reason for the disconnection, if it was not a successful active close.
A connection with the given peer has been closed, possibly as a result of an error.
IncomingConnection
Fields
local_addr: Multiaddr
Local connection address.
This address has been earlier reported with a NewListenAddr
event.
send_back_addr: Multiaddr
Address used to send back data to the remote.
A new connection arrived on a listener and is in the process of protocol negotiation.
A corresponding ConnectionEstablished
,
BannedPeer
, or
IncomingConnectionError
event will later be
generated for this connection.
IncomingConnectionError
Fields
local_addr: Multiaddr
Local connection address.
This address has been earlier reported with a NewListenAddr
event.
send_back_addr: Multiaddr
Address used to send back data to the remote.
error: ListenError
The error that happened.
An error happened on an inbound connection during its initial handshake.
This can include, for example, an error during the handshake of the encryption layer, or the connection unexpectedly closed.
OutgoingConnectionError
Fields
An error happened on an outbound connection.
BannedPeer
Fields
peer_id: PeerId
libp2p::allow_block_list
instead.Identity of the banned peer.
endpoint: ConnectedPoint
libp2p::allow_block_list
instead.Endpoint of the connection that has been closed.
libp2p::allow_block_list
instead.We connected to a peer, but we immediately closed the connection because that peer is banned.
NewListenAddr
Fields
listener_id: ListenerId
The listener that is listening on the new address.
address: Multiaddr
The new address that is being listened on.
One of our listeners has reported a new local listening address.
ExpiredListenAddr
Fields
listener_id: ListenerId
The listener that is no longer listening on the address.
address: Multiaddr
The expired address.
One of our listeners has reported the expiration of a listening address.
ListenerClosed
Fields
listener_id: ListenerId
The listener that closed.
addresses: Vec<Multiaddr>
The addresses that the listener was listening on. These addresses are now considered
expired, similar to if a ExpiredListenAddr
event
has been generated for each of them.
One of the listeners gracefully closed.
ListenerError
One of the listeners reported a non-fatal error.
Dialing(PeerId)
A new dialing attempt has been initiated by the NetworkBehaviour
implementation.
A ConnectionEstablished
event is
reported if the dialing attempt succeeds, otherwise a
OutgoingConnectionError
event
is reported.
Implementations§
source§impl<TBehaviourOutEvent, THandlerErr> SwarmEvent<TBehaviourOutEvent, THandlerErr>
impl<TBehaviourOutEvent, THandlerErr> SwarmEvent<TBehaviourOutEvent, THandlerErr>
sourcepub fn try_into_behaviour_event(self) -> Result<TBehaviourOutEvent, Self>
pub fn try_into_behaviour_event(self) -> Result<TBehaviourOutEvent, Self>
Extract the TBehaviourOutEvent
from this SwarmEvent
in case it is the Behaviour
variant, otherwise fail.