Start of handle_connection

This commit is contained in:
Matt Brubeck 2020-05-17 09:40:50 -07:00
parent dc41732486
commit 45faee45a7

View file

@ -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(())