Skip to content

Commit 0f7a600

Browse files
author
oigolovanova
committed
feat universal: add const for abs deadline propagation
commit_hash:31ec030eed219d28c73adc2f4b359f7606d76777
1 parent d5a9541 commit 0f7a600

4 files changed

Lines changed: 14 additions & 3 deletions

File tree

core/src/clients/http/request_state.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -973,8 +973,8 @@ void RequestState::UpdateTimeoutHeader() {
973973
);
974974

975975
if (inherited_original_deadline_.has_value()) {
976-
const auto
977-
iso_str = utils::datetime::UtcTimestring(*inherited_original_deadline_, utils::datetime::kTaximeterFormat);
976+
const auto iso_str =
977+
utils::datetime::UtcTimestring(*inherited_original_deadline_, utils::datetime::kAbsoluteDeadlineFormat);
978978
easy().add_header(
979979
USERVER_NAMESPACE::http::headers::kXRequestDeadline,
980980
iso_str,

core/src/server/request/impl/absolute_deadline.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ std::optional<TaskInheritedOriginalDeadline> ParseXRequestDeadlineString(const s
5454
return std::nullopt;
5555
}
5656
try {
57-
const auto timestamp = utils::datetime::UtcStringtime(timestring, utils::datetime::kTaximeterFormat);
57+
const auto timestamp = utils::datetime::UtcStringtime(timestring, utils::datetime::kAbsoluteDeadlineFormat);
5858
return std::chrono::time_point_cast<std::chrono::microseconds>(timestamp);
5959
} catch (const std::exception& exception) {
6060
LOG_LIMITED_WARNING() << "Can't parse X-Request-Deadline: " << exception.what();

universal/include/userver/utils/datetime_light.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ namespace utils::datetime {
2323
inline const std::string kRfc3339Format = "%Y-%m-%dT%H:%M:%E*S%Ez";
2424
/// @snippet utils/datetime/from_string_saturating_test.cpp kTaximeterFormat
2525
inline const std::string kTaximeterFormat = "%Y-%m-%dT%H:%M:%E6SZ";
26+
/// @snippet utils/datetime/from_string_saturating_test.cpp kAbsoluteDeadlineFormat
27+
inline const std::string kAbsoluteDeadlineFormat = "%Y-%m-%dT%H:%M:%E6SZ";
2628
inline constexpr std::time_t kStartOfTheEpoch = 0;
2729
/// @snippet utils/datetime_test.cpp kDefaultDriverTimezone
2830
inline const std::string kDefaultDriverTimezone = "Europe/Moscow";

universal/src/utils/datetime/from_string_saturating_test.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,15 @@ TEST(FromStringSaturation, kTaximeterFormat) {
126126
/// [kTaximeterFormat]
127127
}
128128

129+
TEST(FromStringSaturation, kAbsoluteDeadlineFormat) {
130+
/// [kAbsoluteDeadlineFormat]
131+
const auto exp = utils::datetime::FromStringSaturating("2014-03-17 02:47:07.000000", "%Y-%m-%d %H:%M:%E*S");
132+
const auto tp =
133+
utils::datetime::FromStringSaturating("2014-03-17T02:47:07.000000Z", utils::datetime::kAbsoluteDeadlineFormat);
134+
EXPECT_EQ(tp, exp);
135+
/// [kAbsoluteDeadlineFormat]
136+
}
137+
129138
TEST(FromStringSaturation, kDefaultFormat) {
130139
/// [kDefaultFormat]
131140
const auto exp = utils::datetime::FromStringSaturating("2014-03-17 02:47:07.000000", "%Y-%m-%d %H:%M:%E*S");

0 commit comments

Comments
 (0)