Enum libp2p_core::connection::ConnectedPoint
source · [−]pub enum ConnectedPoint {
Dialer {
address: Multiaddr,
role_override: Endpoint,
},
Listener {
local_addr: Multiaddr,
send_back_addr: Multiaddr,
},
}
Expand description
The endpoint roles associated with an established peer-to-peer connection.
Variants
Dialer
Fields
address: Multiaddr
Multiaddress that was successfully dialed.
role_override: Endpoint
Whether the role of the local node on the connection should be overriden. I.e. whether the local node should act as a listener on the outgoing connection.
This option is needed for NAT and firewall hole punching.
-
Endpoint::Dialer
represents the default non-overriding option. -
Endpoint::Listener
represents the overriding option. Realization depends on the transport protocol. E.g. in the case of TCP, both endpoints dial each other, resulting in a simultaneous open TCP connection. On this new connection both endpoints assume to be the dialer of the connection. This is problematic during the connection upgrade process where an upgrade assumes one side to be the listener. With the help of this option, both peers can negotiate the roles (dialer and listener) for the new connection ahead of time, through some external channel, e.g. the DCUtR protocol, and thus have one peer dial the other and upgrade the connection as a dialer and one peer dial the other and upgrade the connection as a listener overriding its role.
We dialed the node.
Listener
Fields
local_addr: Multiaddr
Local connection address.
send_back_addr: Multiaddr
Address used to send back data to the remote.
We received the node.
Implementations
Turns the ConnectedPoint
into the corresponding Endpoint
.
Returns true if we are Listener
.
Returns true if the connection is relayed.
Returns the address of the remote stored in this struct.
For Dialer
, this returns address
. For Listener
, this returns send_back_addr
.
Note that the remote node might not be listening on this address and hence the address might not be usable to establish new connections.
Modifies the address of the remote stored in this struct.
For Dialer
, this modifies address
. For Listener
, this modifies send_back_addr
.
Trait Implementations
Performs the conversion.
Performs the conversion.
Performs the conversion.
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
This method tests for !=
.
Auto Trait Implementations
impl RefUnwindSafe for ConnectedPoint
impl Send for ConnectedPoint
impl Sync for ConnectedPoint
impl Unpin for ConnectedPoint
impl UnwindSafe for ConnectedPoint
Blanket Implementations
Mutably borrows from an owned value. Read more