Enum libp2p::core::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
sourceimpl ConnectedPoint
impl ConnectedPoint
sourcepub fn to_endpoint(&self) -> Endpoint
pub fn to_endpoint(&self) -> Endpoint
Turns the ConnectedPoint
into the corresponding Endpoint
.
sourcepub fn is_listener(&self) -> bool
pub fn is_listener(&self) -> bool
Returns true if we are Listener
.
sourcepub fn is_relayed(&self) -> bool
pub fn is_relayed(&self) -> bool
Returns true if the connection is relayed.
sourcepub fn get_remote_address(&self) -> &Multiaddr
pub fn get_remote_address(&self) -> &Multiaddr
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.
sourcepub fn set_remote_address(&mut self, new_address: Multiaddr)
pub fn set_remote_address(&mut self, new_address: Multiaddr)
Modifies the address of the remote stored in this struct.
For Dialer
, this modifies address
. For Listener
, this modifies send_back_addr
.
Trait Implementations
sourceimpl Clone for ConnectedPoint
impl Clone for ConnectedPoint
sourcepub fn clone(&self) -> ConnectedPoint
pub fn clone(&self) -> ConnectedPoint
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for ConnectedPoint
impl Debug for ConnectedPoint
sourceimpl<'_> From<&'_ ConnectedPoint> for Endpoint
impl<'_> From<&'_ ConnectedPoint> for Endpoint
sourcepub fn from(endpoint: &ConnectedPoint) -> Endpoint
pub fn from(endpoint: &ConnectedPoint) -> Endpoint
Performs the conversion.
sourceimpl From<ConnectedPoint> for PendingPoint
impl From<ConnectedPoint> for PendingPoint
sourcepub fn from(endpoint: ConnectedPoint) -> PendingPoint
pub fn from(endpoint: ConnectedPoint) -> PendingPoint
Performs the conversion.
sourceimpl From<ConnectedPoint> for Endpoint
impl From<ConnectedPoint> for Endpoint
sourcepub fn from(endpoint: ConnectedPoint) -> Endpoint
pub fn from(endpoint: ConnectedPoint) -> Endpoint
Performs the conversion.
sourceimpl Hash for ConnectedPoint
impl Hash for ConnectedPoint
sourceimpl PartialEq<ConnectedPoint> for ConnectedPoint
impl PartialEq<ConnectedPoint> for ConnectedPoint
sourcepub fn eq(&self, other: &ConnectedPoint) -> bool
pub fn eq(&self, other: &ConnectedPoint) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcepub fn ne(&self, other: &ConnectedPoint) -> bool
pub fn ne(&self, other: &ConnectedPoint) -> bool
This method tests for !=
.
impl Eq for ConnectedPoint
impl StructuralEq for ConnectedPoint
impl StructuralPartialEq for ConnectedPoint
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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more