diff options
author | AlexSm <alex@ydb.tech> | 2024-03-05 10:40:59 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-05 12:40:59 +0300 |
commit | 1ac13c847b5358faba44dbb638a828e24369467b (patch) | |
tree | 07672b4dd3604ad3dee540a02c6494cb7d10dc3d /library/cpp | |
parent | ffcca3e7f7958ddc6487b91d3df8c01054bd0638 (diff) | |
download | ydb-1ac13c847b5358faba44dbb638a828e24369467b.tar.gz |
Library import 16 (#2433)
Co-authored-by: robot-piglet <robot-piglet@yandex-team.com>
Co-authored-by: deshevoy <deshevoy@yandex-team.com>
Co-authored-by: robot-contrib <robot-contrib@yandex-team.com>
Co-authored-by: thegeorg <thegeorg@yandex-team.com>
Co-authored-by: robot-ya-builder <robot-ya-builder@yandex-team.com>
Co-authored-by: svidyuk <svidyuk@yandex-team.com>
Co-authored-by: shadchin <shadchin@yandex-team.com>
Co-authored-by: robot-ratatosk <robot-ratatosk@yandex-team.com>
Co-authored-by: innokentii <innokentii@yandex-team.com>
Co-authored-by: arkady-e1ppa <arkady-e1ppa@yandex-team.com>
Co-authored-by: snermolaev <snermolaev@yandex-team.com>
Co-authored-by: dimdim11 <dimdim11@yandex-team.com>
Co-authored-by: kickbutt <kickbutt@yandex-team.com>
Co-authored-by: abdullinsaid <abdullinsaid@yandex-team.com>
Co-authored-by: korsunandrei <korsunandrei@yandex-team.com>
Co-authored-by: petrk <petrk@yandex-team.com>
Co-authored-by: miroslav2 <miroslav2@yandex-team.com>
Co-authored-by: serjflint <serjflint@yandex-team.com>
Co-authored-by: akhropov <akhropov@yandex-team.com>
Co-authored-by: prettyboy <prettyboy@yandex-team.com>
Co-authored-by: ilikepugs <ilikepugs@yandex-team.com>
Co-authored-by: hiddenpath <hiddenpath@yandex-team.com>
Co-authored-by: mikhnenko <mikhnenko@yandex-team.com>
Co-authored-by: spreis <spreis@yandex-team.com>
Co-authored-by: andreyshspb <andreyshspb@yandex-team.com>
Co-authored-by: dimaandreev <dimaandreev@yandex-team.com>
Co-authored-by: rashid <rashid@yandex-team.com>
Co-authored-by: robot-ydb-importer <robot-ydb-importer@yandex-team.com>
Co-authored-by: r-vetrov <r-vetrov@yandex-team.com>
Co-authored-by: ypodlesov <ypodlesov@yandex-team.com>
Co-authored-by: zaverden <zaverden@yandex-team.com>
Co-authored-by: vpozdyayev <vpozdyayev@yandex-team.com>
Co-authored-by: robot-cozmo <robot-cozmo@yandex-team.com>
Co-authored-by: v-korovin <v-korovin@yandex-team.com>
Co-authored-by: arikon <arikon@yandex-team.com>
Co-authored-by: khoden <khoden@yandex-team.com>
Co-authored-by: psydmm <psydmm@yandex-team.com>
Co-authored-by: robot-javacom <robot-javacom@yandex-team.com>
Co-authored-by: dtorilov <dtorilov@yandex-team.com>
Co-authored-by: sennikovmv <sennikovmv@yandex-team.com>
Co-authored-by: hcpp <hcpp@ydb.tech>
Diffstat (limited to 'library/cpp')
-rw-r--r-- | library/cpp/containers/disjoint_interval_tree/disjoint_interval_tree.h | 2 | ||||
-rw-r--r-- | library/cpp/containers/disjoint_interval_tree/ut/disjoint_interval_tree_ut.cpp | 12 | ||||
-rw-r--r-- | library/cpp/http/fetch/http_socket.cpp | 193 | ||||
-rw-r--r-- | library/cpp/lfalloc/yt/ya.make | 28 | ||||
-rw-r--r-- | library/cpp/timezone_conversion/civil.h | 8 | ||||
-rw-r--r-- | library/cpp/timezone_conversion/ut/civil_ut.cpp | 5 | ||||
-rw-r--r-- | library/cpp/tld/tlds-alpha-by-domain.txt | 2 |
7 files changed, 27 insertions, 223 deletions
diff --git a/library/cpp/containers/disjoint_interval_tree/disjoint_interval_tree.h b/library/cpp/containers/disjoint_interval_tree/disjoint_interval_tree.h index 3f51c61277..f0c6644d4b 100644 --- a/library/cpp/containers/disjoint_interval_tree/disjoint_interval_tree.h +++ b/library/cpp/containers/disjoint_interval_tree/disjoint_interval_tree.h @@ -132,7 +132,7 @@ public: } TIterator completelyRemoveEnd = completelyRemoveBegin != Tree.end() ? Tree.lower_bound(end) : Tree.end(); - if (completelyRemoveEnd != Tree.end() && completelyRemoveEnd != Tree.begin() && completelyRemoveEnd->first != end) { + if (completelyRemoveEnd != Tree.begin() && (completelyRemoveEnd == Tree.end() || completelyRemoveEnd->first != end)) { TIterator containingEnd = completelyRemoveEnd; --containingEnd; if (containingEnd->second > end) { diff --git a/library/cpp/containers/disjoint_interval_tree/ut/disjoint_interval_tree_ut.cpp b/library/cpp/containers/disjoint_interval_tree/ut/disjoint_interval_tree_ut.cpp index 8474ae89b0..508a82459a 100644 --- a/library/cpp/containers/disjoint_interval_tree/ut/disjoint_interval_tree_ut.cpp +++ b/library/cpp/containers/disjoint_interval_tree/ut/disjoint_interval_tree_ut.cpp @@ -232,6 +232,18 @@ Y_UNIT_TEST_SUITE(DisjointIntervalTreeTest) { UNIT_ASSERT_VALUES_EQUAL(tree.GetNumIntervals(), 2); UNIT_ASSERT_VALUES_EQUAL(tree.GetNumElements(), 8); } + + // 12. The only one interval + { + TDisjointIntervalTree<ui64> tree; + tree.InsertInterval(1, 10); + UNIT_ASSERT_VALUES_EQUAL(tree.GetNumIntervals(), 1); + UNIT_ASSERT_VALUES_EQUAL(tree.GetNumElements(), 9); + UNIT_ASSERT_VALUES_EQUAL(tree.EraseInterval(0, 6), 5); + UNIT_ASSERT_VALUES_EQUAL(tree.GetNumIntervals(), 1); + UNIT_ASSERT_VALUES_EQUAL(tree.GetNumElements(), 4); + UNIT_ASSERT(tree.Intersects(5, 10)); + } } Y_UNIT_TEST(IntersectsTest) { diff --git a/library/cpp/http/fetch/http_socket.cpp b/library/cpp/http/fetch/http_socket.cpp index 1524ef04a8..fb8ab4373f 100644 --- a/library/cpp/http/fetch/http_socket.cpp +++ b/library/cpp/http/fetch/http_socket.cpp @@ -1,203 +1,10 @@ #include "httpload.h" #include "http_digest.h" -/************************************************************/ - -#ifdef USE_GNUTLS - -#include <gcrypt.h> -#include <gnutls/gnutls.h> -#include <util/network/init.h> -#include <util/network/socket.h> -#include <util/system/mutex.h> - -/********************************************************/ -// HTTPS handler is used as implementation of -// socketAbstractHandler for work through HTTPS protocol - -class socketSecureHandler: public socketRegularHandler { -protected: - bool IsValid_; - gnutls_session Session_; - gnutls_certificate_credentials Credits_; - -public: - socketSecureHandler(); - virtual ~socketSecureHandler(); - - virtual bool Good(); - virtual int Connect(const TAddrList& addrs, TDuration Timeout); - virtual void Disconnect(); - virtual void shutdown(); - virtual bool send(const char* message, ssize_t messlen); - virtual bool peek(); - virtual ssize_t read(void* buffer, ssize_t buflen); -}; - -/********************************************************/ -/********************************************************/ -static int gcry_pthread_mutex_init(void** priv) { - int err = 0; - - try { - TMutex* lock = new TMutex; - *priv = lock; - } catch (...) { - err = -1; - } - - return err; -} - -static int gcry_pthread_mutex_destroy(void** lock) { - delete static_cast<TMutex*>(*lock); - - return 0; -} - -static int gcry_pthread_mutex_lock(void** lock) { - static_cast<TMutex*>(*lock)->Acquire(); - - return 0; -} - -static int gcry_pthread_mutex_unlock(void** lock) { - static_cast<TMutex*>(*lock)->Release(); - - return 0; -} - -static struct gcry_thread_cbs gcry_threads_pthread = - { - GCRY_THREAD_OPTION_PTHREAD, NULL, - gcry_pthread_mutex_init, gcry_pthread_mutex_destroy, - gcry_pthread_mutex_lock, gcry_pthread_mutex_unlock, - NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL}; - -/********************************************************/ -struct https_initor { - https_initor() { - gcry_control(GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread); - gnutls_global_init(); - InitNetworkSubSystem(); - } - - ~https_initor() { - gnutls_global_deinit(); - } -}; - -static https_initor _initor; - -/********************************************************/ -socketSecureHandler::socketSecureHandler() - : socketRegularHandler() - , IsValid_(false) - , Session_() - , Credits_() -{ -} - -/********************************************************/ -socketSecureHandler::~socketSecureHandler() { - if (IsValid_) - Disconnect(); -} - -/********************************************************/ -bool socketSecureHandler::Good() { - return Socket_.Good() && IsValid_; -} - -/********************************************************/ -int socketSecureHandler::Connect(const TAddrList& addrs, TDuration Timeout) { - IsValid_ = false; - - int ret = socketRegularHandler::Connect(addrs, Timeout); - if (ret) - return ret; - - gnutls_certificate_allocate_credentials(&Credits_); - gnutls_init(&Session_, GNUTLS_CLIENT); - gnutls_set_default_priority(Session_); - gnutls_credentials_set(Session_, GNUTLS_CRD_CERTIFICATE, Credits_); - - SOCKET fd = Socket_; - gnutls_transport_set_ptr(Session_, (gnutls_transport_ptr)fd); - - ret = gnutls_handshake(Session_); - - if (ret < 0) { - fprintf(stderr, "*** Handshake failed\n"); - gnutls_perror(ret); - - gnutls_deinit(Session_); - if (Credits_) { - gnutls_certificate_free_credentials(Credits_); - Credits_ = 0; - } - return 1; - } - - IsValid_ = true; - return !IsValid_; -} - -/********************************************************/ -void socketSecureHandler::Disconnect() { - if (IsValid_) { - gnutls_bye(Session_, GNUTLS_SHUT_RDWR); - IsValid_ = false; - gnutls_deinit(Session_); - } - - if (Credits_) { - gnutls_certificate_free_credentials(Credits_); - Credits_ = 0; - } - - socketRegularHandler::Disconnect(); -} - -/********************************************************/ -void socketSecureHandler::shutdown() { -} - -/********************************************************/ -bool socketSecureHandler::send(const char* message, ssize_t messlen) { - if (!IsValid_) - return false; - ssize_t rv = gnutls_record_send(Session_, message, messlen); - return rv >= 0; -} - -/********************************************************/ -bool socketSecureHandler::peek() { - //ssize_t rv = gnutls_record_check_pending(mSession); - //return rv>0; - return true; -} - -/********************************************************/ -ssize_t socketSecureHandler::read(void* buffer, ssize_t buflen) { - if (!IsValid_) - return false; - return gnutls_record_recv(Session_, (char*)buffer, buflen); -} - -#endif - -/************************************************************/ socketAbstractHandler* socketHandlerFactory::chooseHandler(const THttpURL& url) { if (url.IsValidGlobal() && url.GetScheme() == THttpURL::SchemeHTTP) return new socketRegularHandler; -#ifdef USE_GNUTLS - if (url.IsValidGlobal() && url.GetScheme() == THttpURL::SchemeHTTPS) - return new socketSecureHandler; -#endif - return nullptr; } diff --git a/library/cpp/lfalloc/yt/ya.make b/library/cpp/lfalloc/yt/ya.make deleted file mode 100644 index 36068c090d..0000000000 --- a/library/cpp/lfalloc/yt/ya.make +++ /dev/null @@ -1,28 +0,0 @@ -LIBRARY() - -NO_UTIL() -ALLOCATOR_IMPL() - -NO_COMPILER_WARNINGS() - -IF (ARCH_AARCH64) - PEERDIR( - contrib/libs/jemalloc - ) -ELSE() - IF ("${YMAKE}" MATCHES "devtools") - CFLAGS(-DYMAKE=1) - ENDIF() - CXXFLAGS(-DLFALLOC_YT) - SRCS( - ../lf_allocX64.cpp - ) -ENDIF() - -PEERDIR( - library/cpp/malloc/api -) - -SET(IDE_FOLDER "util") - -END() diff --git a/library/cpp/timezone_conversion/civil.h b/library/cpp/timezone_conversion/civil.h index 5f331b3358..a50e0e7cb2 100644 --- a/library/cpp/timezone_conversion/civil.h +++ b/library/cpp/timezone_conversion/civil.h @@ -233,6 +233,14 @@ namespace NDatetime { return cctz::get_weekday(day); } + /** Returns the weekday by day. + * @param[in] second is a given seconds + * @return a weekday (enum) + */ + CONSTEXPR_M TWeekday GetWeekday(const TCivilSecond& second) noexcept { + return cctz::get_weekday(second); + } + /** Returns the TCivilDay that strictly follows or precedes the given * civil_day, and that falls on the given weekday. * @code diff --git a/library/cpp/timezone_conversion/ut/civil_ut.cpp b/library/cpp/timezone_conversion/ut/civil_ut.cpp index f91935ac49..2c3db3c3b3 100644 --- a/library/cpp/timezone_conversion/ut/civil_ut.cpp +++ b/library/cpp/timezone_conversion/ut/civil_ut.cpp @@ -103,6 +103,11 @@ Y_UNIT_TEST_SUITE(DateTime) { UNIT_ASSERT_VALUES_EQUAL(NDatetime::WeekdayOnTheWeek(d, NDatetime::TWeekday::wednesday), NDatetime::TCivilDay(2013, 1, 2)); UNIT_ASSERT_VALUES_EQUAL(NDatetime::WeekdayOnTheWeek(d, NDatetime::TWeekday::friday), NDatetime::TCivilDay(2013, 1, 4)); } + Y_UNIT_TEST(WeekdayFromCivilSecond) { + NDatetime::TCivilSecond s(2013, 1, 2, 10, 12, 9); + NDatetime::TWeekday wd = NDatetime::GetWeekday(s); + UNIT_ASSERT_VALUES_EQUAL(wd, NDatetime::TWeekday::wednesday); + } Y_UNIT_TEST(CivilUnit) { using namespace NDatetime; diff --git a/library/cpp/tld/tlds-alpha-by-domain.txt b/library/cpp/tld/tlds-alpha-by-domain.txt index b0b874be79..751a75c74d 100644 --- a/library/cpp/tld/tlds-alpha-by-domain.txt +++ b/library/cpp/tld/tlds-alpha-by-domain.txt @@ -1,4 +1,4 @@ -# Version 2024021500, Last Updated Thu Feb 15 07:07:02 2024 UTC +# Version 2024030100, Last Updated Fri Mar 1 07:07:01 2024 UTC AAA AARP ABB |