summaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs47
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();
}