mirror of
https://github.com/YGGverse/agate.git
synced 2026-04-08 20:45:29 +00:00
Start of handle_connection
This commit is contained in:
parent
dc41732486
commit
45faee45a7
1 changed files with 14 additions and 3 deletions
17
src/main.rs
17
src/main.rs
|
|
@ -1,9 +1,10 @@
|
||||||
use {
|
use {
|
||||||
async_std::{
|
async_std::{
|
||||||
net::TcpListener,
|
net::{TcpListener, TcpStream},
|
||||||
prelude::*,
|
prelude::*,
|
||||||
task::block_on,
|
task,
|
||||||
},
|
},
|
||||||
|
async_tls::TlsAcceptor,
|
||||||
rustls::{
|
rustls::{
|
||||||
internal::pemfile::{certs, rsa_private_keys},
|
internal::pemfile::{certs, rsa_private_keys},
|
||||||
},
|
},
|
||||||
|
|
@ -11,11 +12,15 @@ use {
|
||||||
error::Error,
|
error::Error,
|
||||||
fs::File,
|
fs::File,
|
||||||
io::BufReader,
|
io::BufReader,
|
||||||
|
sync::Arc,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
pub type Result<T=()> = std::result::Result<T, Box<dyn Error>>;
|
pub type Result<T=()> = std::result::Result<T, Box<dyn Error>>;
|
||||||
|
|
||||||
|
async fn handle_connection(_: TlsAcceptor, _: TcpStream) {
|
||||||
|
}
|
||||||
|
|
||||||
fn main() -> Result {
|
fn main() -> Result {
|
||||||
let certs = certs(&mut BufReader::new(File::open("tests/cert.pem")?))
|
let certs = certs(&mut BufReader::new(File::open("tests/cert.pem")?))
|
||||||
.expect("Error reading certificate file");
|
.expect("Error reading certificate file");
|
||||||
|
|
@ -24,14 +29,20 @@ fn main() -> Result {
|
||||||
|
|
||||||
let mut config = rustls::ServerConfig::new(rustls::NoClientAuth::new());
|
let mut config = rustls::ServerConfig::new(rustls::NoClientAuth::new());
|
||||||
config.set_single_cert(certs, keys.remove(0))?;
|
config.set_single_cert(certs, keys.remove(0))?;
|
||||||
|
let acceptor = TlsAcceptor::from(Arc::new(config));
|
||||||
|
|
||||||
let addr = "0.0.0.0:1965";
|
let addr = "0.0.0.0:1965";
|
||||||
|
|
||||||
block_on(async {
|
task::block_on(async {
|
||||||
let listener = TcpListener::bind(addr).await?;
|
let listener = TcpListener::bind(addr).await?;
|
||||||
let mut incoming = listener.incoming();
|
let mut incoming = listener.incoming();
|
||||||
|
|
||||||
while let Some(stream) = incoming.next().await {
|
while let Some(stream) = incoming.next().await {
|
||||||
|
let acceptor = acceptor.clone();
|
||||||
|
let stream = stream?;
|
||||||
|
task::spawn(async {
|
||||||
|
handle_connection(acceptor, stream).await;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue