pub struct BlazeListener { /* private fields */ }
Expand description

Listener wrapping TcpListener in order to accept SSL connections

Implementations§

source§

impl BlazeListener

source

pub async fn bind<A: ToSocketAddrs>( addr: A, context: Arc<BlazeServerContext> ) -> Result<BlazeListener>

Binds a new TcpListener wrapping it in a BlazeListener if no errors occurred

Arguments
  • addr - The addr(s) to attempt to bind on
  • context - The server context to use
source

pub fn poll_accept(&self, cx: &mut Context<'_>) -> Poll<Result<BlazeAccept>>

Polls accepting a connection from the underlying listener.

This function does not complete the SSL handshake, instead it gives you a BlazeAccept and you can use BlazeAccept::finish_accept to complete the handshake

source

pub async fn accept(&self) -> Result<BlazeAccept>

Accepts a new TcpStream from the underlying listener wrapping it in a server BlazeStream returning the wrapped stream and the stream addr.

Awaiting the blaze stream creation here would mean connections wouldnt be able to be accepted so instead a BlazeAccept is returned and finish_accept should be called within a spawned task otherwise you can use blocking_accept to do an immediate handle

source

pub async fn blocking_accept(&self) -> Result<(BlazeStream, SocketAddr)>

Accepts a new BlazeStream while blocking new connections until the SSL handshake is complete.

This will prevent new connections from completing so its recommened you use BlazeListener::accept instead which allows you to defer the handshaking proccess.

source

pub fn set_context(&mut self, context: Arc<BlazeServerContext>)

Replaces the server context with a new context

source

pub fn from_tokio( listener: TcpListener, context: Arc<BlazeServerContext> ) -> Self

Creates a BlazeListener from an existing TcpListener and the provided context

source

pub fn from_std( listener: TcpListener, context: Arc<BlazeServerContext> ) -> Result<Self>

Creates a BlazeListener from an existing std TcpListener and the provided context

source

pub fn local_addr(&self) -> Result<SocketAddr>

Obtains the local address that the underlying listener is bound to

source

pub fn into_inner(self) -> TcpListener

Consumes this listener returning the underlying TcpListener

Auto Trait Implementations§

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

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