let server = daemon::create_daemon(
([0,0,0,0,0,0,0,0], 8007).into(),
- |listener| {
+ |listener, ready| {
let connections = listener
.incoming()
.map_err(Error::from)
)
}
});
- Ok(hyper::Server::builder(connections)
- .serve(rest_server)
- .with_graceful_shutdown(server::shutdown_future())
- .map_err(|err| eprintln!("server error: {}", err))
- .map(|_| ())
+
+ Ok(ready
+ .and_then(|_| hyper::Server::builder(connections)
+ .serve(rest_server)
+ .with_graceful_shutdown(server::shutdown_future())
+ .map_err(Error::from)
+ )
+ .map_err(|err| eprintln!("server error: {}", err))
+ .map(|_| ())
)
},
- )?;
+ );
daemon::systemd_notify(daemon::SystemdNotify::Ready)?;
bail!("unable to start daemon - {}", err);
}
- server.await;
+ server.await?;
log::info!("done - exit server");
Ok(())