fix config check running too late, add tower panic catcher(?)

Signed-off-by: strawberry <strawberry@puppygock.gay>
This commit is contained in:
strawberry 2024-04-20 23:01:41 -04:00 committed by June
parent 94dfe26707
commit aaba7342b5
5 changed files with 12 additions and 7 deletions

View file

@ -30,6 +30,7 @@ use tokio::{
};
use tower::ServiceBuilder;
use tower_http::{
catch_panic::CatchPanicLayer,
cors::{self, CorsLayer},
trace::{DefaultOnFailure, TraceLayer},
ServiceBuilderExt as _,
@ -76,7 +77,7 @@ async fn async_main(server: &Server) -> Result<(), Error> {
if let Err(error) = run(server).await {
error!("Critical error running server: {error}");
return Err(Error::Error(format!("{error}")));
};
}
if let Err(error) = stop(server).await {
error!("Critical error stopping server: {error}");
@ -274,6 +275,7 @@ async fn build(server: &Server) -> io::Result<axum::routing::IntoMakeService<Rou
let middlewares = base_middlewares
.sensitive_headers([header::AUTHORIZATION])
.sensitive_request_headers([x_forwarded_for].into())
.layer(CatchPanicLayer::new())
.layer(axum::middleware::from_fn(request_spawn))
.layer(
TraceLayer::new_for_http()
@ -438,6 +440,8 @@ fn init(args: clap::Args) -> Result<Server, Error> {
tracing_reload_handle = init_tracing_sub(&config);
};
config.check()?;
info!(
server_name = ?config.server_name,
database_path = ?config.database_path,