44#include < fmt/ranges.h>
55
66#include < dynamic_config/variables/GRACEFUL_SHUTDOWN_HEADERS.hpp>
7-
87#include < server/request/internal_request_context.hpp>
98#include < userver/components/component_config.hpp>
109#include < userver/components/component_context.hpp>
10+ #include < userver/dynamic_config/storage/component.hpp>
1111#include < userver/server/http/http_request.hpp>
1212#include < userver/server/request/request_context.hpp>
1313
1414USERVER_NAMESPACE_BEGIN
1515
1616namespace server ::middlewares {
1717
18- GracefulShutdownHeaders::GracefulShutdownHeaders (const handlers::HttpHandlerBase&, const components::State& state)
18+ GracefulShutdownHeaders::GracefulShutdownHeaders (
19+ const handlers::HttpHandlerBase&,
20+ const components::State& state,
21+ const dynamic_config::Source& config_source
22+ )
1923 : HttpMiddlewareBase(),
20- state_ (state)
24+ state_ (state),
25+ config_source_(config_source)
2126{}
2227
2328void GracefulShutdownHeaders::HandleRequest (http::HttpRequest& request, request::RequestContext& context) const {
29+ Next (request, context);
30+
2431 if (state_.GetServiceLifetimeStage () == components::ServiceLifetimeStage::kGracefulShutdown ) {
25- const auto config = context. GetInternalContext (). GetConfigSnapshot ();
32+ const auto config = config_source_. GetSnapshot ();
2633 auto graceful_shutdown_headers = config[::dynamic_config::GRACEFUL_SHUTDOWN_HEADERS];
2734 if (graceful_shutdown_headers.enabled ) {
2835 auto & response = request.GetHttpResponse ();
@@ -31,23 +38,22 @@ void GracefulShutdownHeaders::HandleRequest(http::HttpRequest& request, request:
3138 }
3239 }
3340 }
34-
35- Next (request, context);
3641}
3742
3843GracefulShutdownHeadersFactory::GracefulShutdownHeadersFactory (
3944 const components::ComponentConfig& config,
4045 const components::ComponentContext& context
4146)
4247 : HttpMiddlewareFactoryBase(config, context),
43- state_(context)
48+ state_(context),
49+ config_source_(context.FindComponent<components::DynamicConfig>().GetSource())
4450{}
4551
4652std::unique_ptr<HttpMiddlewareBase> GracefulShutdownHeadersFactory::Create (
4753 const handlers::HttpHandlerBase& handler,
4854 yaml_config::YamlConfig
4955) const {
50- return std::make_unique<GracefulShutdownHeaders>(handler, state_);
56+ return std::make_unique<GracefulShutdownHeaders>(handler, state_, config_source_ );
5157}
5258
5359} // namespace server::middlewares
0 commit comments