pub struct TlsListener<State> { /* private fields */ }
Expand description
The primary type for this crate
Implementations§
Source§impl<State> TlsListener<State>
impl<State> TlsListener<State>
Sourcepub fn build() -> TlsListenerBuilder<State>
pub fn build() -> TlsListenerBuilder<State>
The primary entrypoint to create a TlsListener. See TlsListenerBuilder for more configuration options.
§Example
let listener = TlsListener::<()>::build()
.addrs("localhost:4433")
.cert("./tls/localhost-4433.cert")
.key("./tls/localhost-4433.key")
.finish();
Examples found in repository?
examples/hello_tls.rs (line 21)
13fn main() -> std::io::Result<()> {
14 async_std::task::block_on(async {
15 let mut app = tide::new();
16 app.at("*").all(endpoint);
17 app.at("/").all(endpoint);
18
19 if let (Ok(cert), Ok(key)) = (env::var("TIDE_CERT"), env::var("TIDE_KEY")) {
20 app.listen(
21 TlsListener::build()
22 .addrs("localhost:4433")
23 .cert(cert)
24 .key(key),
25 )
26 .await?;
27 } else {
28 eprintln!(
29 "
30To run this app locally:
31* install https://github.com/FiloSottile/mkcert
32* $ mkcert -key-file key.pem -cert-file cert.pem localhost 127.0.0.1 ::1
33* $ env TIDE_CERT=cert.pem TIDE_KEY=key.pem cargo run --example hello_tls
34* $ curl -v https://localhost:4433/secure
35"
36 );
37 }
38
39 Ok(())
40 })
41}
Trait Implementations§
Source§impl<State> Debug for TlsListener<State>
impl<State> Debug for TlsListener<State>
Source§impl<State> Display for TlsListener<State>
impl<State> Display for TlsListener<State>
Source§impl<State: Clone + Send + Sync + 'static> Listener<State> for TlsListener<State>
impl<State: Clone + Send + Sync + 'static> Listener<State> for TlsListener<State>
Source§fn bind<'life0, 'async_trait>(
&'life0 mut self,
server: Server<State>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn bind<'life0, 'async_trait>(
&'life0 mut self,
server: Server<State>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Bind the listener. This starts the listening process by opening the
necessary network ports, but not yet accepting incoming connections. This
method must be called before
accept
.Source§fn accept<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn accept<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Start accepting incoming connections. This method must be called only
after
bind
has succeeded.Source§fn info(&self) -> Vec<ListenInfo>
fn info(&self) -> Vec<ListenInfo>
Expose information about the connection. This should always return valid
data after
bind
has succeeded.Source§impl<State: Clone + Send + Sync + 'static> ToListener<State> for TlsListener<State>
impl<State: Clone + Send + Sync + 'static> ToListener<State> for TlsListener<State>
Source§type Listener = TlsListener<State>
type Listener = TlsListener<State>
What listener are we converting into?
Source§fn to_listener(self) -> Result<Self::Listener>
fn to_listener(self) -> Result<Self::Listener>
Transform self into a
Listener
. Unless self is
already bound/connected to the underlying io, converting to a
listener does not initiate a connection. An Err return
indicates an unsuccessful conversion to a listener, not an
unsuccessful bind attempt.Auto Trait Implementations§
impl<State> Freeze for TlsListener<State>where
State: Freeze,
impl<State> !RefUnwindSafe for TlsListener<State>
impl<State> Send for TlsListener<State>where
State: Send,
impl<State> Sync for TlsListener<State>where
State: Sync,
impl<State> Unpin for TlsListener<State>where
State: Unpin,
impl<State> !UnwindSafe for TlsListener<State>
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
Mutably borrows from an owned value. Read more