Struct iroh_relay::server::Server

source ·
pub struct Server { /* private fields */ }
Available on crate feature server only.
Expand description

A running Relay + STUN server.

This is a full Relay server, including STUN, Relay and various associated HTTP services.

Dropping this will stop the server.

Implementations§

source§

impl Server

source

pub async fn spawn<EC, EA>(config: ServerConfig<EC, EA>) -> Result<Self>
where EC: Debug + 'static, EA: Debug + 'static,

Starts the server.

source

pub async fn shutdown(self) -> Result<()>

Requests graceful shutdown.

Returns once all server tasks have stopped.

source

pub fn task_handle(&mut self) -> &mut AbortOnDropHandle<Result<()>>

Returns the handle for the task.

This allows waiting for the server’s supervisor task to finish. Can be useful in case there is an error in the server before it is shut down.

source

pub fn https_addr(&self) -> Option<SocketAddr>

The socket address the HTTPS server is listening on.

source

pub fn http_addr(&self) -> Option<SocketAddr>

The socket address the HTTP server is listening on.

source

pub fn quic_addr(&self) -> Option<SocketAddr>

The socket address the QUIC server is listening on.

source

pub fn stun_addr(&self) -> Option<SocketAddr>

The socket address the STUN server is listening on.

source

pub fn certificates(&self) -> Option<Vec<CertificateDer<'static>>>

The certificates chain if configured with manual TLS certificates.

source

pub fn https_url(&self) -> Option<RelayUrl>

Get the server’s https RelayUrl.

This uses Self::https_addr so it’s mostly useful for local development.

source

pub fn http_url(&self) -> Option<RelayUrl>

Get the server’s http RelayUrl.

This uses Self::http_addr so it’s mostly useful for local development.

Trait Implementations§

source§

impl Debug for Server

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Server

§

impl RefUnwindSafe for Server

§

impl Send for Server

§

impl Sync for Server

§

impl Unpin for Server

§

impl UnwindSafe for Server

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