From f632b06e6d33d0502e6ae67b2a6801d85a03b484 Mon Sep 17 00:00:00 2001 From: Jason Volk <jason@zemos.net> Date: Tue, 30 Jul 2024 02:28:25 +0000 Subject: [PATCH] use Services instead of Server for middleware function state Signed-off-by: Jason Volk <jason@zemos.net> --- src/router/layers.rs | 4 ++-- src/router/request.rs | 9 ++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/router/layers.rs b/src/router/layers.rs index 7779260df..2567fe081 100644 --- a/src/router/layers.rs +++ b/src/router/layers.rs @@ -48,7 +48,7 @@ pub(crate) fn build(services: &Arc<Services>) -> Result<(Router, Guard)> { let layers = layers .sensitive_headers([header::AUTHORIZATION]) - .layer(axum::middleware::from_fn_with_state(Arc::clone(server), request::spawn)) + .layer(axum::middleware::from_fn_with_state(Arc::clone(services), request::spawn)) .layer( TraceLayer::new_for_http() .make_span_with(tracing_span::<_>) @@ -56,7 +56,7 @@ pub(crate) fn build(services: &Arc<Services>) -> Result<(Router, Guard)> { .on_request(DefaultOnRequest::new().level(Level::TRACE)) .on_response(DefaultOnResponse::new().level(Level::DEBUG)), ) - .layer(axum::middleware::from_fn_with_state(Arc::clone(server), request::handle)) + .layer(axum::middleware::from_fn_with_state(Arc::clone(services), request::handle)) .layer(SecureClientIpSource::ConnectInfo.into_extension()) .layer(SetResponseHeaderLayer::if_not_present( HeaderName::from_static("origin-agent-cluster"), // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin-Agent-Cluster diff --git a/src/router/request.rs b/src/router/request.rs index 4d5c61e71..271d95733 100644 --- a/src/router/request.rs +++ b/src/router/request.rs @@ -4,13 +4,15 @@ extract::State, response::{IntoResponse, Response}, }; -use conduit::{debug, debug_error, debug_warn, defer, err, error, trace, Result, Server}; +use conduit::{debug, debug_error, debug_warn, defer, err, error, trace, Result}; +use conduit_service::Services; use http::{Method, StatusCode, Uri}; #[tracing::instrument(skip_all, level = "debug")] pub(crate) async fn spawn( - State(server): State<Arc<Server>>, req: http::Request<axum::body::Body>, next: axum::middleware::Next, + State(services): State<Arc<Services>>, req: http::Request<axum::body::Body>, next: axum::middleware::Next, ) -> Result<Response, StatusCode> { + let server = &services.server; if !server.running() { debug_warn!("unavailable pending shutdown"); return Err(StatusCode::SERVICE_UNAVAILABLE); @@ -34,8 +36,9 @@ pub(crate) async fn spawn( #[tracing::instrument(skip_all, name = "handle")] pub(crate) async fn handle( - State(server): State<Arc<Server>>, req: http::Request<axum::body::Body>, next: axum::middleware::Next, + State(services): State<Arc<Services>>, req: http::Request<axum::body::Body>, next: axum::middleware::Next, ) -> Result<Response, StatusCode> { + let server = &services.server; if !server.running() { debug_warn!( method = %req.method(), -- GitLab