pub struct TlsAcceptor(/* private fields */);
Expand description
A wrapper around a native_tls::TlsAcceptor
, providing an async accept
method.
§Example
use async_std::prelude::*;
use async_std::net::TcpListener;
use async_std::fs::File;
use async_native_tls::TlsAcceptor;
let key = File::open("tests/identity.pfx").await?;
let acceptor = TlsAcceptor::new(key, "hello").await?;
let listener = TcpListener::bind("127.0.0.1:8443").await?;
let mut incoming = listener.incoming();
while let Some(stream) = incoming.next().await {
let acceptor = acceptor.clone();
let stream = stream?;
async_std::task::spawn(async move {
let stream = acceptor.accept(stream).await.unwrap();
// handle stream here
});
}
Implementations§
Source§impl TlsAcceptor
impl TlsAcceptor
Sourcepub async fn new<R, S>(file: R, password: S) -> Result<Self, Error>
pub async fn new<R, S>(file: R, password: S) -> Result<Self, Error>
Create a new TlsAcceptor based on an identity file and matching password.
Sourcepub async fn accept<S>(&self, stream: S) -> Result<TlsStream<S>, Error>
pub async fn accept<S>(&self, stream: S) -> Result<TlsStream<S>, Error>
Accepts a new client connection with the provided stream.
This function will internally call TlsAcceptor::accept
to connect
the stream and returns a future representing the resolution of the
connection operation. The returned future will resolve to either
TlsStream<S>
or Error
depending if it’s successful or not.
This is typically used after a new socket has been accepted from a
TcpListener
. That socket is then passed to this function to perform
the server half of accepting a client connection.
Trait Implementations§
Source§impl Clone for TlsAcceptor
impl Clone for TlsAcceptor
Source§fn clone(&self) -> TlsAcceptor
fn clone(&self) -> TlsAcceptor
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for TlsAcceptor
impl Debug for TlsAcceptor
Source§impl From<TlsAcceptor> for TlsAcceptor
impl From<TlsAcceptor> for TlsAcceptor
Source§fn from(inner: TlsAcceptor) -> TlsAcceptor
fn from(inner: TlsAcceptor) -> TlsAcceptor
Auto Trait Implementations§
impl Freeze for TlsAcceptor
impl RefUnwindSafe for TlsAcceptor
impl Send for TlsAcceptor
impl Sync for TlsAcceptor
impl Unpin for TlsAcceptor
impl UnwindSafe for TlsAcceptor
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> ErasedDestructor for Twhere
T: 'static,
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 8 bytes