diff options
| author | Jan Wolff <janw@mailbox.org> | 2020-05-16 11:03:48 +0200 |
|---|---|---|
| committer | Jan Wolff <janw@mailbox.org> | 2020-05-16 11:03:48 +0200 |
| commit | 769affa1b651f3591b5d9c482b6fd5b142c7f3d6 (patch) | |
| tree | 9df2734b8ae35adf650a7bd16850a8f014a8fa2a /src/main.rs | |
| parent | d5d223389698b361ed362721ee4f3a7ab8a110cb (diff) | |
architecture changes
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 47 |
1 files changed, 2 insertions, 45 deletions
diff --git a/src/main.rs b/src/main.rs index ab50c02..df4f4d2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,49 +1,6 @@ -use std::net::{TcpListener, TcpStream, SocketAddr}; -use std::sync::Arc; -use std::thread; -use openssl::ssl::{SslMethod, SslAcceptor, SslStream, SslFiletype}; -use url::Url; mod server; -fn build_acceptor() -> std::sync::Arc<SslAcceptor> { - let mut acceptor = SslAcceptor::mozilla_intermediate_v5(SslMethod::tls()).unwrap(); - acceptor.set_private_key_file("doc/key.pem", SslFiletype::PEM).unwrap(); - acceptor.set_certificate_chain_file("doc/cert.pem").unwrap(); - acceptor.check_private_key().unwrap(); - return Arc::new(acceptor.build()); -} - -fn build_server() { -} - -fn handle_client(mut stream: SslStream<TcpStream>) { - let mut buffer = [0; 1026]; - stream.ssl_read(&mut buffer); - let request = String::from_utf8(buffer.to_vec()).unwrap(); - let url = Url::parse(&request).unwrap(); - - let data = server::handle(&url); - - stream.ssl_write(&data); -} - fn main() { - let addrs = [ - SocketAddr::from(([127, 0, 0, 1], 1965)), - ]; - let acceptor = build_acceptor(); - let listener = TcpListener::bind(&addrs[..]).unwrap(); - - for stream in listener.incoming() { - match stream { - Ok(stream) => { - let acceptor = acceptor.clone(); - thread::spawn(move || { - let stream = acceptor.accept(stream).unwrap(); - handle_client(stream); - }); - } - Err(e) => { /* connection failed */ } - } - } + let server = server::Server::new("gemini://localhost"); + server.serve(); } |
