pub enum NatTraversalEvent {
Show 13 variants
CandidateDiscovered {
peer_id: PeerId,
candidate: CandidateAddress,
},
CoordinationRequested {
peer_id: PeerId,
coordinator: SocketAddr,
},
CoordinationSynchronized {
peer_id: PeerId,
round_id: VarInt,
},
HolePunchingStarted {
peer_id: PeerId,
targets: Vec<SocketAddr>,
},
PathValidated {
peer_id: PeerId,
address: SocketAddr,
rtt: Duration,
},
CandidateValidated {
peer_id: PeerId,
candidate_address: SocketAddr,
},
TraversalSucceeded {
peer_id: PeerId,
final_address: SocketAddr,
total_time: Duration,
},
ConnectionEstablished {
peer_id: PeerId,
remote_address: SocketAddr,
},
TraversalFailed {
peer_id: PeerId,
error: NatTraversalError,
fallback_available: bool,
},
ConnectionLost {
peer_id: PeerId,
reason: String,
},
PhaseTransition {
peer_id: PeerId,
from_phase: TraversalPhase,
to_phase: TraversalPhase,
},
SessionStateChanged {
peer_id: PeerId,
new_state: ConnectionState,
},
ExternalAddressDiscovered {
reported_by: SocketAddr,
address: SocketAddr,
},
}Expand description
Events generated during NAT traversal process
Variants§
CandidateDiscovered
New candidate address discovered
Fields
candidate: CandidateAddressThe discovered candidate address
CoordinationRequested
Coordination request sent to bootstrap
Fields
coordinator: SocketAddrCoordinator address used for synchronization
CoordinationSynchronized
Peer coordination synchronized
Fields
HolePunchingStarted
Hole punching started
Fields
targets: Vec<SocketAddr>Target addresses to punch
PathValidated
Path validated successfully
Fields
address: SocketAddrValidated remote address
CandidateValidated
Candidate validated successfully
Fields
candidate_address: SocketAddrValidated candidate address
TraversalSucceeded
NAT traversal completed successfully
Fields
final_address: SocketAddrFinal established address
ConnectionEstablished
Connection established after NAT traversal
Fields
remote_address: SocketAddrThe socket address where the connection was established
TraversalFailed
NAT traversal failed
Fields
error: NatTraversalErrorThe NAT traversal error that occurred
ConnectionLost
Connection lost
PhaseTransition
Phase transition in NAT traversal state machine
SessionStateChanged
Session state changed
Fields
new_state: ConnectionStateNew connection state
ExternalAddressDiscovered
External address discovered via QUIC extension
Fields
reported_by: SocketAddrThe address that reported our address
address: SocketAddrOur observed external address
Trait Implementations§
Source§impl Clone for NatTraversalEvent
impl Clone for NatTraversalEvent
Source§fn clone(&self) -> NatTraversalEvent
fn clone(&self) -> NatTraversalEvent
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for NatTraversalEvent
impl RefUnwindSafe for NatTraversalEvent
impl Send for NatTraversalEvent
impl Sync for NatTraversalEvent
impl Unpin for NatTraversalEvent
impl UnwindSafe for NatTraversalEvent
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)