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)
- )
- .catch_unwind()
- .map(|r| r.unwrap_or_else(|_|{
- crash(Err("panicked".into()), "webserver request task")
- }))
+ let service = hyper::service::service_fn({
+ move |req| {
+ let global = global.clone();
+ let caddr = caddr.clone();
+ async move {
+ AssertUnwindSafe(
+ sweb::handle(caddr, global, req)
+ )
+ .catch_unwind().await
+ .unwrap_or_else(|_| {
+ crash(Err("panicked".into()), "webserver request task")
+ })
+ }
+ }
});
async { Ok::<_, Void>(service) }
}