Struct blaze_ssl_async::listener::BlazeListener
source · pub struct BlazeListener { /* private fields */ }
Expand description
Listener wrapping TcpListener in order to accept SSL connections
Implementations§
source§impl BlazeListener
impl BlazeListener
sourcepub async fn bind<A: ToSocketAddrs>(
addr: A,
context: Arc<BlazeServerContext>
) -> Result<BlazeListener>
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 oncontext
- The server context to use
sourcepub fn poll_accept(&self, cx: &mut Context<'_>) -> Poll<Result<BlazeAccept>>
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
sourcepub async fn accept(&self) -> Result<BlazeAccept>
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
sourcepub async fn blocking_accept(&self) -> Result<(BlazeStream, SocketAddr)>
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.
sourcepub fn set_context(&mut self, context: Arc<BlazeServerContext>)
pub fn set_context(&mut self, context: Arc<BlazeServerContext>)
Replaces the server context with a new context
sourcepub fn from_tokio(
listener: TcpListener,
context: Arc<BlazeServerContext>
) -> Self
pub fn from_tokio( listener: TcpListener, context: Arc<BlazeServerContext> ) -> Self
Creates a BlazeListener from an existing TcpListener and the
provided context
sourcepub fn from_std(
listener: TcpListener,
context: Arc<BlazeServerContext>
) -> Result<Self>
pub fn from_std( listener: TcpListener, context: Arc<BlazeServerContext> ) -> Result<Self>
Creates a BlazeListener from an existing std TcpListener and the
provided context
sourcepub fn local_addr(&self) -> Result<SocketAddr>
pub fn local_addr(&self) -> Result<SocketAddr>
Obtains the local address that the underlying listener is bound to
sourcepub fn into_inner(self) -> TcpListener
pub fn into_inner(self) -> TcpListener
Consumes this listener returning the underlying TcpListener