chiark / gitweb /
service.c: Better handling of clones
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 2 Feb 2025 13:32:00 +0000 (13:32 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 2 Feb 2025 13:55:56 +0000 (13:55 +0000)
Use the same variable name throughout, and clone things in a
surrounding block.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
server/server.rs

index 8699fdac9e679dbc4f62bfee911cc2b0cb5d3ac5..0ff718b2435665a410fe73d58b10354af6a1d69d 100644 (file)
@@ -252,15 +252,15 @@ async fn async_main(opts: Opts, daemon: Option<Daemoniser>) {
     }
 
     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<Daemoniser>) {
           });
           async { Ok::<_, Void>(service) }
         }
-      );
+      });
 
       let saddr = SocketAddr::new(*saddr, global.config.port);
       let server = hyper::Server::try_bind(&saddr)