pub enum NatTraversalEvent {
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,
},
}
Expand description
Events generated during NAT traversal process
Variants§
CandidateDiscovered
New candidate address discovered
Fields
§
candidate: CandidateAddress
The discovered candidate address
CoordinationRequested
Coordination request sent to bootstrap
Fields
§
coordinator: SocketAddr
Coordinator 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: SocketAddr
Validated remote address
CandidateValidated
Candidate validated successfully
Fields
§
candidate_address: SocketAddr
Validated candidate address
TraversalSucceeded
NAT traversal completed successfully
Fields
§
final_address: SocketAddr
Final established address
ConnectionEstablished
Connection established after NAT traversal
Fields
§
remote_address: SocketAddr
The socket address where the connection was established
TraversalFailed
NAT traversal failed
Fields
§
error: NatTraversalError
The NAT traversal error that occurred
ConnectionLost
Connection lost
PhaseTransition
Phase transition in NAT traversal state machine
SessionStateChanged
Session state changed
Fields
§
new_state: ConnectionState
New connection state
Trait Implementations§
Source§impl Clone for NatTraversalEvent
impl Clone for NatTraversalEvent
Source§fn clone(&self) -> NatTraversalEvent
fn clone(&self) -> NatTraversalEvent
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
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§
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