pub enum Ingress {
Socket(SocketAddr),
Dns {
host: Hostname,
port: u16,
},
}Expand description
What we dial to connect to a peer.
Variants§
Implementations§
Source§impl Ingress
impl Ingress
Sourcepub fn is_valid(&self, allow_private_ips: bool, allow_dns: bool) -> bool
pub fn is_valid(&self, allow_private_ips: bool, allow_dns: bool) -> bool
Returns whether this ingress address is allowed given the configuration.
Socketaddresses must have a global IP (orallow_private_ipsmust be true).Dnsaddresses are allowed only ifallow_dnsistrue.
Note: For Dns addresses, private IP checks are performed after resolution in
resolve_filtered.
Sourcepub async fn resolve(
&self,
resolver: &impl Resolver,
) -> Result<impl Iterator<Item = SocketAddr>, RuntimeError>
pub async fn resolve( &self, resolver: &impl Resolver, ) -> Result<impl Iterator<Item = SocketAddr>, RuntimeError>
Resolve this ingress address to socket addresses.
For Socket variants, returns a single-element iterator.
For Dns variants, performs DNS resolution and returns all resolved addresses.
Sourcepub async fn resolve_filtered(
&self,
resolver: &impl Resolver,
allow_private_ips: bool,
) -> Option<impl Iterator<Item = SocketAddr>>
pub async fn resolve_filtered( &self, resolver: &impl Resolver, allow_private_ips: bool, ) -> Option<impl Iterator<Item = SocketAddr>>
resolve and filter by private IP policy.
Trait Implementations§
Source§impl EncodeSize for Ingress
impl EncodeSize for Ingress
Source§fn encode_size(&self) -> usize
fn encode_size(&self) -> usize
Returns the encoded size of this value (in bytes).
Source§impl From<SocketAddr> for Ingress
impl From<SocketAddr> for Ingress
Source§fn from(addr: SocketAddr) -> Self
fn from(addr: SocketAddr) -> Self
Converts to this type from the input type.
Source§impl Ord for Ingress
impl Ord for Ingress
Source§impl PartialOrd for Ingress
impl PartialOrd for Ingress
Source§impl Read for Ingress
impl Read for Ingress
impl Eq for Ingress
impl StructuralPartialEq for Ingress
Auto Trait Implementations§
impl Freeze for Ingress
impl RefUnwindSafe for Ingress
impl Send for Ingress
impl Sync for Ingress
impl Unpin for Ingress
impl UnwindSafe for Ingress
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
Mutably borrows from an owned value. Read more
§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)
🔬This is a nightly-only experimental API. (
clone_to_uninit)Source§impl<T> Encode for Twhere
T: Write + EncodeSize,
impl<T> Encode for Twhere
T: Write + EncodeSize,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more