}
}
-impl tower_service::Service<&tokio::net::TcpStream> for RestServer {
+impl tower_service::Service<&hyper::server::conn::AddrStream> for RestServer {
type Response = ApiService;
type Error = Error;
type Future = Pin<Box<dyn Future<Output = Result<ApiService, Error>> + Send>>;
Poll::Ready(Ok(()))
}
- fn call(&mut self, ctx: &tokio::net::TcpStream) -> Self::Future {
- match ctx.peer_addr() {
- Err(err) => future::err(format_err!("unable to get peer address - {}", err)).boxed(),
- Ok(peer) => future::ok(ApiService {
- peer,
- api_config: self.api_config.clone(),
- })
- .boxed(),
- }
+ fn call(&mut self, ctx: &hyper::server::conn::AddrStream) -> Self::Future {
+ let peer = ctx.remote_addr();
+ future::ok(ApiService {
+ peer,
+ api_config: self.api_config.clone(),
+ })
+ .boxed()
}
}
let server = daemon::create_daemon(
([127,0,0,1], 82).into(),
move |listener, ready| {
- let incoming = proxmox_backup::tools::async_io::StaticIncoming::from(listener);
+ let incoming = hyper::server::conn::AddrIncoming::from_listener(listener)?;
+
Ok(ready
.and_then(|_| hyper::Server::builder(incoming)
.serve(rest_server)