diff --git a/src/lib.rs b/src/lib.rs index 09d8ab0..be42ee8 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -29,12 +29,13 @@ async fn read_req(sock: &mut TcpStream) -> Result, tz: Option) -> Result<(), Box> { - let addr = format!("127.0.0.1:{}", port.unwrap_or(PORT)); - let listen = TcpListener::bind(&addr).await?; - +pub async fn serve(port: Option, tz: Option) -> Result<(), Box> { + let port = port.and_then(|s| s.parse::().ok()).unwrap_or(PORT); let tz = tz.and_then(|s| s.parse::().ok()).unwrap_or(CET); + let addr = format!("127.0.0.1:{}", port); + let listen = TcpListener::bind(&addr).await?; + loop { let (mut sock, addr) = listen.accept().await?; diff --git a/src/main.rs b/src/main.rs index d125171..80493b6 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,11 +3,5 @@ use std::error::Error; #[tokio::main] async fn main() -> Result<(), Box> { - swabd::serve( - env::var("SWABD_PORT") - .map(|port| port.parse::().unwrap()) - .ok(), - env::var("SWABD_TZ").ok(), - ) - .await + swabd::serve(env::var("SWABD_PORT").ok(), env::var("SWABD_TZ").ok()).await }