Struct iroh_net_report::Client

source ·
pub struct Client { /* private fields */ }
Expand description

Client to run net_reports.

Creating this creates a net_report actor which runs in the background. Most of the time it is idle unless Client::get_report is called, which is the main interface.

The Client struct can be cloned and results multiple handles to the running actor. If all Clients are dropped the actor stops running.

While running the net_report actor expects to be passed all received stun packets using Addr::receive_stun_packet.

Implementations§

source§

impl Client

source

pub fn new( port_mapper: Option<Client>, dns_resolver: DnsResolver ) -> Result<Self>

Creates a new net_report client.

This starts a connected actor in the background. Once the client is dropped it will stop running.

source

pub fn addr(&self) -> Addr

Returns a new address to send messages to this actor.

Unlike the client itself the returned Addr does not own the actor task, it only allows sending messages to the actor.

source

pub async fn get_report( &mut self, dm: RelayMap, stun_conn4: Option<Arc<UdpSocket>>, stun_conn6: Option<Arc<UdpSocket>> ) -> Result<Arc<Report>>

Runs a net_report, returning the report.

It may not be called concurrently with itself, &mut self takes care of that.

The stun_conn4 and stun_conn6 endpoints are bound UDP sockets to use to send out STUN packets. This function will not read from the sockets, as they may be receiving other traffic as well, normally they are the sockets carrying the real traffic. Thus all stun packets received on those sockets should be passed to Addr::receive_stun_packet in order for this function to receive the stun responses and function correctly.

If these are not passed in this will bind sockets for STUN itself, though results may not be as reliable.

source

pub async fn get_report_channel( &mut self, dm: RelayMap, stun_conn4: Option<Arc<UdpSocket>>, stun_conn6: Option<Arc<UdpSocket>> ) -> Result<Receiver<Result<Arc<Report>>>>

Get report with channel

Trait Implementations§

source§

impl Debug for Client

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Client

§

impl RefUnwindSafe for Client

§

impl Send for Client

§

impl Sync for Client

§

impl Unpin for Client

§

impl UnwindSafe for Client

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
§

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

§

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

§

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

§

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

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

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

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

§

type Output = T

Should always be Self
source§

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

§

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>,

§

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.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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

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

§

impl<T> MaybeSendSync for T