From 797c44d30b191cb7e07b07890951ca54ddde5a88 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Thu, 7 Dec 2023 17:14:30 +0000 Subject: [PATCH] impl-deadline --- src/core/ext/filters/deadline/deadline_filter.cc | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/core/ext/filters/deadline/deadline_filter.cc b/src/core/ext/filters/deadline/deadline_filter.cc index 50ce988173e..8eb60f4adf6 100644 --- a/src/core/ext/filters/deadline/deadline_filter.cc +++ b/src/core/ext/filters/deadline/deadline_filter.cc @@ -369,7 +369,17 @@ const grpc_channel_filter grpc_server_deadline_filter = { } return next_promise_factory(std::move(call_args)); }, - /* init_call: */ nullptr, + [](grpc_channel_element* elem, grpc_core::CallSpineInterface* spine) { + spine->client_initial_metadata().receiver.InterceptAndMap( + [](grpc_core::ClientMetadataHandle md) { + auto deadline = md->get(grpc_core::GrpcTimeoutMetadata()); + if (deadline.has_value()) { + grpc_core::GetContext()->UpdateDeadline( + *deadline); + } + return md; + }); + }, grpc_channel_next_op, sizeof(server_call_data), deadline_init_call_elem,