From 5d6b5049c2a34a3f8abe725d4a871ba84a0dd714 Mon Sep 17 00:00:00 2001 From: salmonik Date: Mon, 24 Aug 2026 14:48:12 +0200 Subject: TLS transport and games framework on client and server --- src/bin/server/main.rs | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) (limited to 'src/bin/server/main.rs') diff --git a/src/bin/server/main.rs b/src/bin/server/main.rs index 7693069..4328559 100644 --- a/src/bin/server/main.rs +++ b/src/bin/server/main.rs @@ -1,8 +1,11 @@ mod args; -mod handler; mod database; +mod games; +mod handler; +mod tls; use std::net::TcpListener; +use std::sync::Arc; use std::thread; fn main() { @@ -14,11 +17,34 @@ fn main() { std::process::exit(1); } }; - println!("Server listening on {}", listener.local_addr().unwrap()); + + let tls = match tls::TlsServer::new("identity.p12", "key.pem", args.unsafe_mode) { + Ok(t) => Arc::new(t), + Err(e) => { + eprintln!("Failed to initialize TLS: {}", e); + std::process::exit(1); + } + }; + + println!( + "Server listening on {} (TLS enabled){}", + listener.local_addr().unwrap(), + if args.unsafe_mode { + " [UNSAFE MODE]" + } else { + "" + } + ); for stream in listener.incoming() { let stream = stream.unwrap(); - thread::spawn(move || { - handler::handle_client(stream); + let tls = tls.clone(); + thread::spawn(move || match tls.accept(stream) { + Ok(tls_stream) => { + handler::handle_client_tls(tls_stream); + } + Err(e) => { + eprintln!("TLS handshake failed: {}", e); + } }); } } -- cgit v1.2.3