commit 45faee45a7a3c88050df3cd0f3e7ec9744d8c8db
parent dc417324867be91d9e9972fdac1b087e6e438d29
Author: Matt Brubeck <mbrubeck@limpet.net>
Date: Sun, 17 May 2020 09:40:50 -0700
Start of handle_connection
Diffstat:
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/src/main.rs b/src/main.rs
@@ -1,9 +1,10 @@
use {
async_std::{
- net::TcpListener,
+ net::{TcpListener, TcpStream},
prelude::*,
- task::block_on,
+ task,
},
+ async_tls::TlsAcceptor,
rustls::{
internal::pemfile::{certs, rsa_private_keys},
},
@@ -11,11 +12,15 @@ use {
error::Error,
fs::File,
io::BufReader,
+ sync::Arc,
},
};
pub type Result<T=()> = std::result::Result<T, Box<dyn Error>>;
+async fn handle_connection(_: TlsAcceptor, _: TcpStream) {
+}
+
fn main() -> Result {
let certs = certs(&mut BufReader::new(File::open("tests/cert.pem")?))
.expect("Error reading certificate file");
@@ -24,14 +29,20 @@ fn main() -> Result {
let mut config = rustls::ServerConfig::new(rustls::NoClientAuth::new());
config.set_single_cert(certs, keys.remove(0))?;
+ let acceptor = TlsAcceptor::from(Arc::new(config));
let addr = "0.0.0.0:1965";
- block_on(async {
+ task::block_on(async {
let listener = TcpListener::bind(addr).await?;
let mut incoming = listener.incoming();
while let Some(stream) = incoming.next().await {
+ let acceptor = acceptor.clone();
+ let stream = stream?;
+ task::spawn(async {
+ handle_connection(acceptor, stream).await;
+ });
}
Ok(())