diff --git a/src/main.rs b/src/main.rs index e039161..801404e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -22,5 +22,7 @@ fn main() { std::process::exit(1); } - server::run(root, port); + if let Err(_) = server::run(root, port) { + log_error!("Port {} already in use!", port); + } } diff --git a/src/server.rs b/src/server.rs index 833faf7..22e8140 100644 --- a/src/server.rs +++ b/src/server.rs @@ -7,9 +7,14 @@ use tiny_http::Server; use crate::router; use crate::response; -pub fn run(root: Arc, port: u16) { - let addr = format!("0.0.0.0:{}", port); - let server = Arc::new(Server::http(&addr).expect("Failed to start server")); +pub fn run( + root: Arc, + port: u16 +) -> Result<(), Box> { + + let addr = format!("0.0.0.0:{}", port); // serve localhost + + let server = Arc::new(Server::http(&addr)?); let pool = ThreadPool::new(num_cpus()); log_info!("Serving '{}' on http://{}", root.display(), addr); @@ -34,6 +39,8 @@ pub fn run(root: Arc, port: u16) { } }); } + + Ok(()) } fn num_cpus() -> usize {