diff options
author | lapshov <lapshov@yandex-team.ru> | 2022-02-10 16:49:39 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:49:39 +0300 |
commit | 4f36f44b1e216dca1f44ada8d126e7b70f05da2f (patch) | |
tree | edbdb67ebe4b9195bf7c53bbc0a963fc03ccc17e /util | |
parent | 8b71ce88bea710a9663bb143e4916f961c57212e (diff) | |
download | ydb-4f36f44b1e216dca1f44ada8d126e7b70f05da2f.tar.gz |
Restoring authorship annotation for <lapshov@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'util')
-rw-r--r-- | util/datetime/base.h | 6 | ||||
-rw-r--r-- | util/datetime/base_ut.cpp | 2 | ||||
-rw-r--r-- | util/datetime/parser.h | 6 | ||||
-rw-r--r-- | util/datetime/parser.rl6 | 180 | ||||
-rw-r--r-- | util/datetime/parser_ut.cpp | 22 | ||||
-rw-r--r-- | util/datetime/systime.cpp | 72 | ||||
-rw-r--r-- | util/datetime/systime.h | 8 | ||||
-rw-r--r-- | util/generic/algorithm.h | 16 | ||||
-rw-r--r-- | util/network/sock.h | 80 |
9 files changed, 196 insertions, 196 deletions
diff --git a/util/datetime/base.h b/util/datetime/base.h index 5e902b8f63..bf6257594f 100644 --- a/util/datetime/base.h +++ b/util/datetime/base.h @@ -75,8 +75,8 @@ bool ParseRFC822DateTime(const char* date, time_t& utcTime); bool ParseRFC822DateTime(const char* date, size_t dateLen, time_t& utcTime); bool ParseHTTPDateTime(const char* date, time_t& utcTime); bool ParseHTTPDateTime(const char* date, size_t dateLen, time_t& utcTime); -bool ParseX509ValidityDateTime(const char* date, time_t& utcTime); -bool ParseX509ValidityDateTime(const char* date, size_t dateLen, time_t& utcTime); +bool ParseX509ValidityDateTime(const char* date, time_t& utcTime); +bool ParseX509ValidityDateTime(const char* date, size_t dateLen, time_t& utcTime); constexpr long TVdiff(timeval r1, timeval r2) { return (1000000 * (r2.tv_sec - r1.tv_sec) + (r2.tv_usec - r1.tv_usec)); @@ -440,7 +440,7 @@ public: inline struct tm* GmTime(struct tm* tm) const noexcept { time_t clock = Seconds(); - return GmTimeR(&clock, tm); + return GmTimeR(&clock, tm); } /** diff --git a/util/datetime/base_ut.cpp b/util/datetime/base_ut.cpp index afc3f802eb..4fc70131bb 100644 --- a/util/datetime/base_ut.cpp +++ b/util/datetime/base_ut.cpp @@ -335,7 +335,7 @@ Y_UNIT_TEST_SUITE(TDateTimeTest) { UNIT_ASSERT_EQUAL(ptm1, &tms1); UNIT_ASSERT(CompareTMFull(ptm0, ptm1)); } - } + } } Y_UNIT_TEST_SUITE(DateTimeTest) { diff --git a/util/datetime/parser.h b/util/datetime/parser.h index f0c1b4a0c7..a87b08b8d8 100644 --- a/util/datetime/parser.h +++ b/util/datetime/parser.h @@ -87,7 +87,7 @@ struct TDateTimeFields { tm.tm_hour = Hour; tm.tm_min = Minute; tm.tm_sec = Second; - time_t tt = TimeGM(&tm); + time_t tt = TimeGM(&tm); if (tt == -1) return defaultValue; return tt - ZoneOffsetMinutes * 60; @@ -134,8 +134,8 @@ protected: DECLARE_PARSER(TIso8601DateTimeParser) DECLARE_PARSER(TRfc822DateTimeParser) DECLARE_PARSER(THttpDateTimeParser) -DECLARE_PARSER(TX509ValidityDateTimeParser) -DECLARE_PARSER(TX509Validity4yDateTimeParser) +DECLARE_PARSER(TX509ValidityDateTimeParser) +DECLARE_PARSER(TX509Validity4yDateTimeParser) #undef DECLARE_PARSER diff --git a/util/datetime/parser.rl6 b/util/datetime/parser.rl6 index 931f09eae1..0b0fd3ffaf 100644 --- a/util/datetime/parser.rl6 +++ b/util/datetime/parser.rl6 @@ -303,40 +303,40 @@ bool THttpDateTimeParser::ParsePart(const char* input, size_t len) { return cs != %%{ write error; }%%; } -%%{ - -machine X509ValidityDateTimeParser; - -include DateTimeParserCommon; - -################# X.509 certificate validity time (see rfc5280 4.1.2.5.*) ################# - -year = int2 @{ DateTimeFields.Year = (I < 50 ? I + 2000 : I + 1900); }; -month = int2 @set_month; -day = int2 @set_day; -hour = int2 @set_hour; -minute = int2 @set_minute; -second = int2 @set_second; -zone = 'Z' @set_zone_utc; - -main := year . month . day . hour . minute . second . zone; - -write data noerror; - -}%% - +%%{ + +machine X509ValidityDateTimeParser; + +include DateTimeParserCommon; + +################# X.509 certificate validity time (see rfc5280 4.1.2.5.*) ################# + +year = int2 @{ DateTimeFields.Year = (I < 50 ? I + 2000 : I + 1900); }; +month = int2 @set_month; +day = int2 @set_day; +hour = int2 @set_hour; +minute = int2 @set_minute; +second = int2 @set_second; +zone = 'Z' @set_zone_utc; + +main := year . month . day . hour . minute . second . zone; + +write data noerror; + +}%% + TX509ValidityDateTimeParserDeprecated::TX509ValidityDateTimeParserDeprecated() { - %% write init; -} - + %% write init; +} + bool TX509ValidityDateTimeParserDeprecated::ParsePart(const char *input, size_t len) { - const char *p = input; - const char *pe = input + len; - - %% write exec; + const char *p = input; + const char *pe = input + len; + + %% write exec; return cs != %%{ write error; }%%; -} - +} + TX509ValidityDateTimeParser::TX509ValidityDateTimeParser() { %% write init; } @@ -349,39 +349,39 @@ bool TX509ValidityDateTimeParser::ParsePart(const char *input, size_t len) { return cs != %%{ write error; }%%; } -%%{ - -machine X509Validity4yDateTimeParser; - -include DateTimeParserCommon; - -year = int4 @{ DateTimeFields.Year = I; }; -month = int2 @set_month; -day = int2 @set_day; -hour = int2 @set_hour; -minute = int2 @set_minute; -second = int2 @set_second; -zone = 'Z' @set_zone_utc; - - -main := year . month . day . hour . minute . second . zone; - -write data noerror; - -}%% - +%%{ + +machine X509Validity4yDateTimeParser; + +include DateTimeParserCommon; + +year = int4 @{ DateTimeFields.Year = I; }; +month = int2 @set_month; +day = int2 @set_day; +hour = int2 @set_hour; +minute = int2 @set_minute; +second = int2 @set_second; +zone = 'Z' @set_zone_utc; + + +main := year . month . day . hour . minute . second . zone; + +write data noerror; + +}%% + TX509Validity4yDateTimeParserDeprecated::TX509Validity4yDateTimeParserDeprecated() { - %% write init; -} - + %% write init; +} + bool TX509Validity4yDateTimeParserDeprecated::ParsePart(const char *input, size_t len) { - const char *p = input; - const char *pe = input + len; - - %% write exec; + const char *p = input; + const char *pe = input + len; + + %% write exec; return cs != %%{ write error; }%%; -} - +} + TX509Validity4yDateTimeParser::TX509Validity4yDateTimeParser() { %% write init; } @@ -412,13 +412,13 @@ TInstant THttpDateTimeParserDeprecated::GetResult(TInstant defaultValue) const { TInstant TX509ValidityDateTimeParserDeprecated::GetResult(TInstant defaultValue) const { Y_UNUSED(X509ValidityDateTimeParser_en_main); return TDateTimeParserBaseDeprecated::GetResult(X509ValidityDateTimeParser_first_final, defaultValue); -} +} TInstant TX509Validity4yDateTimeParserDeprecated::GetResult(TInstant defaultValue) const { Y_UNUSED(X509Validity4yDateTimeParser_en_main); return TDateTimeParserBaseDeprecated::GetResult(X509Validity4yDateTimeParser_first_final, defaultValue); -} - +} + TInstant TIso8601DateTimeParser::GetResult(TInstant defaultValue) const { Y_UNUSED(ISO8601DateTimeParser_en_main); return TDateTimeParserBase::GetResult(ISO8601DateTimeParser_first_final, defaultValue); @@ -474,14 +474,14 @@ TInstant TInstant::ParseHttpDeprecated(const TStringBuf input) { TInstant TInstant::ParseX509ValidityDeprecated(const TStringBuf input) { switch (input.size()) { - case 13: + case 13: return ParseUnsafe<TX509ValidityDateTimeParserDeprecated, TInstant>(input.data(), 13); - case 15: + case 15: return ParseUnsafe<TX509Validity4yDateTimeParserDeprecated, TInstant>(input.data(), 15); - default: + default: ythrow TDateTimeParseException(); - } -} + } +} bool TInstant::TryParseIso8601Deprecated(const TStringBuf input, TInstant& instant) { const auto parsed = ParseUnsafe<TIso8601DateTimeParserDeprecated, TInstant, false>(input.data(), input.size()); @@ -491,7 +491,7 @@ bool TInstant::TryParseIso8601Deprecated(const TStringBuf input, TInstant& insta instant = parsed; return true; } - + bool TInstant::TryParseRfc822Deprecated(const TStringBuf input, TInstant& instant) { const auto parsed = ParseUnsafe<TRfc822DateTimeParserDeprecated, TInstant, false>(input.data(), input.size()); if (TInstant::Max() == parsed) { @@ -671,9 +671,9 @@ bool ParseHTTPDateTime(const char* input, time_t& utcTime) { return ParseHTTPDateTime(input, strlen(input), utcTime); } -bool ParseX509ValidityDateTime(const char* input, time_t& utcTime) { - return ParseX509ValidityDateTime(input, strlen(input), utcTime); -} +bool ParseX509ValidityDateTime(const char* input, time_t& utcTime) { + return ParseX509ValidityDateTime(input, strlen(input), utcTime); +} bool ParseRFC822DateTime(const char* input, size_t inputLen, time_t& utcTime) { try { @@ -701,25 +701,25 @@ bool ParseHTTPDateTime(const char* input, size_t inputLen, time_t& utcTime) { return false; } } - -bool ParseX509ValidityDateTime(const char* input, size_t inputLen, time_t& utcTime) { - TInstant r; - switch (inputLen) { - case 13: + +bool ParseX509ValidityDateTime(const char* input, size_t inputLen, time_t& utcTime) { + TInstant r; + switch (inputLen) { + case 13: r = Parse<TX509ValidityDateTimeParser, TInstant>(input, 13, TInstant::Max()); - break; - case 15: + break; + case 15: r = Parse<TX509Validity4yDateTimeParser, TInstant>(input, 15, TInstant::Max()); - break; - default: - return false; - } - if (r == TInstant::Max()) - return false; - utcTime = r.TimeT(); - return true; -} - + break; + default: + return false; + } + if (r == TInstant::Max()) + return false; + utcTime = r.TimeT(); + return true; +} + %%{ machine TDurationParser; diff --git a/util/datetime/parser_ut.cpp b/util/datetime/parser_ut.cpp index 61364af997..243f83d564 100644 --- a/util/datetime/parser_ut.cpp +++ b/util/datetime/parser_ut.cpp @@ -492,27 +492,27 @@ Y_UNIT_TEST_SUITE(TDateTimeParseTest) { ret = ParseHTTPDateTime("1990-03-15T15:16:17Z", t); UNIT_ASSERT(!ret); } - + Y_UNIT_TEST(TestX509ValidityTime) { - UNIT_ASSERT_VALUES_EQUAL( + UNIT_ASSERT_VALUES_EQUAL( TInstant::ParseX509Validity("20091014165533Z"), TInstant::ParseRfc822("Wed, 14 Oct 2009 16:55:33 GMT")); - UNIT_ASSERT_VALUES_EQUAL( + UNIT_ASSERT_VALUES_EQUAL( TInstant::ParseX509Validity("990104074212Z"), TInstant::ParseRfc822("4 Jan 1999 07:42:12 GMT")); - UNIT_ASSERT_VALUES_EQUAL( + UNIT_ASSERT_VALUES_EQUAL( TInstant::ParseX509Validity("191231235959Z"), TInstant::ParseRfc822("31 Dec 2019 23:59:59 GMT")); - } - + } + Y_UNIT_TEST(TestX509ValidityTimeIncorrect) { - bool ret; - time_t t = 0; + bool ret; + time_t t = 0; ret = ParseX509ValidityDateTime("500101000000Z", t); - UNIT_ASSERT(!ret); + UNIT_ASSERT(!ret); ret = ParseX509ValidityDateTime("091014165533+0300", t); - UNIT_ASSERT(!ret); - } + UNIT_ASSERT(!ret); + } Y_UNIT_TEST(TestTInstantTryParse) { { diff --git a/util/datetime/systime.cpp b/util/datetime/systime.cpp index 6ee7e8fc6e..12ceab1831 100644 --- a/util/datetime/systime.cpp +++ b/util/datetime/systime.cpp @@ -46,8 +46,8 @@ char* ctime_r(const time_t* clock, char* buf) { return 0; } -#endif /* _win_ */ - +#endif /* _win_ */ + #define YEAR0 1900 #define EPOCH_YR 1970 #define SECS_DAY (24L * 60L * 60L) @@ -86,51 +86,51 @@ time_t TimeGM(const struct tm* t) { } struct tm* GmTimeR(const time_t* timer, struct tm* tmbuf) { - static const int _ytab[2][12] = { - {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, + static const int _ytab[2][12] = { + {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}}; i64 time = static_cast<i64>(*timer); - ui64 dayclock, dayno; - int year = EPOCH_YR; - - if (time < 0) { - ui64 shift = (ui64)(-time - 1) / ((ui64)FOURCENTURIES * SECS_DAY) + 1; - time += shift * ((ui64)FOURCENTURIES * SECS_DAY); - year -= shift * 400; - } - + ui64 dayclock, dayno; + int year = EPOCH_YR; + + if (time < 0) { + ui64 shift = (ui64)(-time - 1) / ((ui64)FOURCENTURIES * SECS_DAY) + 1; + time += shift * ((ui64)FOURCENTURIES * SECS_DAY); + year -= shift * 400; + } + dayclock = (ui64)time % SECS_DAY; dayno = (ui64)time / SECS_DAY; - - year += 400 * (dayno / FOURCENTURIES); - dayno = dayno % FOURCENTURIES; - - tmbuf->tm_sec = dayclock % 60; - tmbuf->tm_min = (dayclock % 3600) / 60; - tmbuf->tm_hour = dayclock / 3600; - tmbuf->tm_wday = (dayno + 4) % 7; // Day 0 was a thursday + + year += 400 * (dayno / FOURCENTURIES); + dayno = dayno % FOURCENTURIES; + + tmbuf->tm_sec = dayclock % 60; + tmbuf->tm_min = (dayclock % 3600) / 60; + tmbuf->tm_hour = dayclock / 3600; + tmbuf->tm_wday = (dayno + 4) % 7; // Day 0 was a thursday while (dayno >= (ui64)YEARSIZE(year)) { - dayno -= YEARSIZE(year); + dayno -= YEARSIZE(year); ++year; - } - tmbuf->tm_year = year - YEAR0; - tmbuf->tm_yday = dayno; - tmbuf->tm_mon = 0; + } + tmbuf->tm_year = year - YEAR0; + tmbuf->tm_yday = dayno; + tmbuf->tm_mon = 0; while (dayno >= (ui64)_ytab[LEAPYEAR(year)][tmbuf->tm_mon]) { - dayno -= _ytab[LEAPYEAR(year)][tmbuf->tm_mon]; + dayno -= _ytab[LEAPYEAR(year)][tmbuf->tm_mon]; ++tmbuf->tm_mon; - } - tmbuf->tm_mday = dayno + 1; - tmbuf->tm_isdst = 0; -#ifndef _win_ - tmbuf->tm_gmtoff = 0; + } + tmbuf->tm_mday = dayno + 1; + tmbuf->tm_isdst = 0; +#ifndef _win_ + tmbuf->tm_gmtoff = 0; tmbuf->tm_zone = (char*)"UTC"; -#endif - - return tmbuf; -} +#endif + + return tmbuf; +} TString CTimeR(const time_t* timer) { char sTime[32]; diff --git a/util/datetime/systime.h b/util/datetime/systime.h index 491d36e802..9b3d5f622c 100644 --- a/util/datetime/systime.h +++ b/util/datetime/systime.h @@ -5,12 +5,12 @@ #include <ctime> -// timegm and gmtime_r versions that don't need access to filesystem or a big stack +// timegm and gmtime_r versions that don't need access to filesystem or a big stack time_t TimeGM(const struct tm* t); struct tm* GmTimeR(const time_t* timer, struct tm* tmbuf); // safe version of ctime, convinient version of ctime_r TString CTimeR(const time_t* timer); - + #ifdef _win_ #include <util/system/winint.h> #include <winsock2.h> @@ -28,12 +28,12 @@ char* ctime_r(const time_t* clock, char* buf); inline time_t timegm(struct tm* t) { return TimeGM(t); } - + char* strptime(const char* buf, const char* fmt, struct tm* tm); // strptime.cpp #else #include <sys/time.h> #endif - + #ifndef timersub #define timersub(tvp, uvp, vvp) \ do { \ diff --git a/util/generic/algorithm.h b/util/generic/algorithm.h index badfb88993..e473d0ac0b 100644 --- a/util/generic/algorithm.h +++ b/util/generic/algorithm.h @@ -103,16 +103,16 @@ static inline void PartialSort(T f, T m, T l, C c) { std::partial_sort(f, m, l, c); } -template <class T, class R> -static inline R PartialSortCopy(T f, T l, R of, R ol) { +template <class T, class R> +static inline R PartialSortCopy(T f, T l, R of, R ol) { return std::partial_sort_copy(f, l, of, ol); -} - -template <class T, class R, class C> -static inline R PartialSortCopy(T f, T l, R of, R ol, C c) { +} + +template <class T, class R, class C> +static inline R PartialSortCopy(T f, T l, R of, R ol, C c) { return std::partial_sort_copy(f, l, of, ol, c); -} - +} + template <class I, class T> static inline I Find(I f, I l, const T& v) { return std::find(f, l, v); diff --git a/util/network/sock.h b/util/network/sock.h index b10be2f715..bfc23cc996 100644 --- a/util/network/sock.h +++ b/util/network/sock.h @@ -534,7 +534,7 @@ public: { } }; - + class TInet6StreamSocket: public TStreamSocket { public: TInet6StreamSocket(SOCKET fd) @@ -549,60 +549,60 @@ public: }; class TStreamSocketInput: public IInputStream { -public: +public: TStreamSocketInput(TStreamSocket* socket) - : Socket(socket) - { - } + : Socket(socket) + { + } void SetSocket(TStreamSocket* socket) { - Socket = socket; - } - -protected: + Socket = socket; + } + +protected: TStreamSocket* Socket; - + size_t DoRead(void* buf, size_t len) override { Y_VERIFY(Socket, "TStreamSocketInput: socket isn't set"); - const ssize_t ret = Socket->Recv(buf, len); - - if (ret >= 0) { - return (size_t)ret; - } - + const ssize_t ret = Socket->Recv(buf, len); + + if (ret >= 0) { + return (size_t)ret; + } + ythrow TSystemError(-(int)ret) << "can not read from socket input stream"; - } -}; - + } +}; + class TStreamSocketOutput: public IOutputStream { -public: +public: TStreamSocketOutput(TStreamSocket* socket) - : Socket(socket) - { - } + : Socket(socket) + { + } void SetSocket(TStreamSocket* socket) { - Socket = socket; - } - + Socket = socket; + } + TStreamSocketOutput(TStreamSocketOutput&&) noexcept = default; TStreamSocketOutput& operator=(TStreamSocketOutput&&) noexcept = default; -protected: +protected: TStreamSocket* Socket; - + void DoWrite(const void* buf, size_t len) override { Y_VERIFY(Socket, "TStreamSocketOutput: socket isn't set"); - + const char* ptr = (const char*)buf; - while (len) { - const ssize_t ret = Socket->Send(ptr, len); - - if (ret < 0) { + while (len) { + const ssize_t ret = Socket->Send(ptr, len); + + if (ret < 0) { ythrow TSystemError(-(int)ret) << "can not write to socket output stream"; - } - + } + Y_ASSERT((size_t)ret <= len); - len -= (size_t)ret; - ptr += (size_t)ret; - } - } -}; + len -= (size_t)ret; + ptr += (size_t)ret; + } + } +}; |