From: Ian Jackson Date: Sun, 2 Feb 2025 13:32:00 +0000 (+0000) Subject: service.c: Better handling of clones X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=4b8d43c5576a5f59d3fdda9b1cfa7143c57840ef;p=hippotat.git service.c: Better handling of clones Use the same variable name throughout, and clone things in a surrounding block. Signed-off-by: Ian Jackson --- diff --git a/server/server.rs b/server/server.rs index 8699fda..0ff718b 100644 --- a/server/server.rs +++ b/server/server.rs @@ -252,15 +252,15 @@ async fn async_main(opts: Opts, daemon: Option) { } for saddr in &global.config.addrs { - let global_ = global.clone(); - let make_service = hyper::service::make_service_fn( + let make_service = hyper::service::make_service_fn({ + let global = global.clone(); move |conn: &hyper::server::conn::AddrStream| { - let global_ = global_.clone(); + let global = global.clone(); let caddr = Arc::new(format!("[{}]", conn.remote_addr())); let service = hyper::service::service_fn(move |req| { AssertUnwindSafe( - sweb::handle(caddr.clone(), global_.clone(), req) + sweb::handle(caddr.clone(), global.clone(), req) ) .catch_unwind() .map(|r| r.unwrap_or_else(|_|{ @@ -269,7 +269,7 @@ async fn async_main(opts: Opts, daemon: Option) { }); async { Ok::<_, Void>(service) } } - ); + }); let saddr = SocketAddr::new(*saddr, global.config.port); let server = hyper::Server::try_bind(&saddr)