iroh_net::netcheck

Struct Report

Source
pub struct Report {
Show 19 fields pub udp: bool, pub ipv6: bool, pub ipv4: bool, pub ipv6_can_send: bool, pub ipv4_can_send: bool, pub os_has_ipv6: bool, pub icmpv4: Option<bool>, pub icmpv6: Option<bool>, pub mapping_varies_by_dest_ip: Option<bool>, pub mapping_varies_by_dest_ipv6: Option<bool>, pub hair_pinning: Option<bool>, pub portmap_probe: Option<ProbeOutput>, pub preferred_relay: Option<RelayUrl>, pub relay_latency: RelayLatencies, pub relay_v4_latency: RelayLatencies, pub relay_v6_latency: RelayLatencies, pub global_v4: Option<SocketAddrV4>, pub global_v6: Option<SocketAddrV6>, pub captive_portal: Option<bool>,
}
👎Deprecated: This crate has been renamed from ‘iroh-net’ to ‘iroh’, please use the new crate
Expand description

A netcheck report.

Can be obtained by calling Client::get_report.

Fields§

§udp: bool
👎Deprecated: This crate has been renamed from ‘iroh-net’ to ‘iroh’, please use the new crate

A UDP STUN round trip completed.

§ipv6: bool
👎Deprecated: This crate has been renamed from ‘iroh-net’ to ‘iroh’, please use the new crate

An IPv6 STUN round trip completed.

§ipv4: bool
👎Deprecated: This crate has been renamed from ‘iroh-net’ to ‘iroh’, please use the new crate

An IPv4 STUN round trip completed.

§ipv6_can_send: bool
👎Deprecated: This crate has been renamed from ‘iroh-net’ to ‘iroh’, please use the new crate

An IPv6 packet was able to be sent

§ipv4_can_send: bool
👎Deprecated: This crate has been renamed from ‘iroh-net’ to ‘iroh’, please use the new crate

an IPv4 packet was able to be sent

§os_has_ipv6: bool
👎Deprecated: This crate has been renamed from ‘iroh-net’ to ‘iroh’, please use the new crate

could bind a socket to ::1

§icmpv4: Option<bool>
👎Deprecated: This crate has been renamed from ‘iroh-net’ to ‘iroh’, please use the new crate

An ICMPv4 round trip completed, None if not checked.

§icmpv6: Option<bool>
👎Deprecated: This crate has been renamed from ‘iroh-net’ to ‘iroh’, please use the new crate

An ICMPv6 round trip completed, None if not checked.

§mapping_varies_by_dest_ip: Option<bool>
👎Deprecated: This crate has been renamed from ‘iroh-net’ to ‘iroh’, please use the new crate

Whether STUN results depend on which STUN server you’re talking to (on IPv4).

§mapping_varies_by_dest_ipv6: Option<bool>
👎Deprecated: This crate has been renamed from ‘iroh-net’ to ‘iroh’, please use the new crate

Whether STUN results depend on which STUN server you’re talking to (on IPv6).

Note that we don’t really expect this to happen and are merely logging this if detecting rather than using it. For now.

§hair_pinning: Option<bool>
👎Deprecated: This crate has been renamed from ‘iroh-net’ to ‘iroh’, please use the new crate

Whether the router supports communicating between two local devices through the NATted public IP address (on IPv4).

§portmap_probe: Option<ProbeOutput>
👎Deprecated: This crate has been renamed from ‘iroh-net’ to ‘iroh’, please use the new crate

Probe indicating the presence of port mapping protocols on the LAN.

§preferred_relay: Option<RelayUrl>
👎Deprecated: This crate has been renamed from ‘iroh-net’ to ‘iroh’, please use the new crate

None for unknown

§relay_latency: RelayLatencies
👎Deprecated: This crate has been renamed from ‘iroh-net’ to ‘iroh’, please use the new crate

keyed by relay Url

§relay_v4_latency: RelayLatencies
👎Deprecated: This crate has been renamed from ‘iroh-net’ to ‘iroh’, please use the new crate

keyed by relay Url

§relay_v6_latency: RelayLatencies
👎Deprecated: This crate has been renamed from ‘iroh-net’ to ‘iroh’, please use the new crate

keyed by relay Url

§global_v4: Option<SocketAddrV4>
👎Deprecated: This crate has been renamed from ‘iroh-net’ to ‘iroh’, please use the new crate

ip:port of global IPv4

§global_v6: Option<SocketAddrV6>
👎Deprecated: This crate has been renamed from ‘iroh-net’ to ‘iroh’, please use the new crate

[ip]:port of global IPv6

§captive_portal: Option<bool>
👎Deprecated: This crate has been renamed from ‘iroh-net’ to ‘iroh’, please use the new crate

CaptivePortal is set when we think there’s a captive portal that is intercepting HTTP traffic.

Trait Implementations§

Source§

impl Clone for Report

Source§

fn clone(&self) -> Report

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Report

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Report

Source§

fn default() -> Report

Returns the “default value” for a type. Read more
Source§

impl Display for Report

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for Report

Source§

fn eq(&self, other: &Report) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for Report

Source§

impl StructuralPartialEq for Report

Auto Trait Implementations§

§

impl Freeze for Report

§

impl RefUnwindSafe for Report

§

impl Send for Report

§

impl Sync for Report

§

impl Unpin for Report

§

impl UnwindSafe for Report

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromRef<T> for T
where T: Clone,

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T