}
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(|_|{
});
async { Ok::<_, Void>(service) }
}
- );
+ });
let saddr = SocketAddr::new(*saddr, global.config.port);
let server = hyper::Server::try_bind(&saddr)