diff options
author | heretic <heretic@yandex-team.ru> | 2022-03-25 12:34:53 +0300 |
---|---|---|
committer | heretic <heretic@yandex-team.ru> | 2022-03-25 12:34:53 +0300 |
commit | a41f3739eed6fceb6f62056a7620d220958a47e7 (patch) | |
tree | 278103258b510cb4a96761ea79d6ccd397ca05a0 /contrib/libs/grpc/test/cpp/util/tls_test_utils.h | |
parent | 73d3613a82e5c217fcbe0ab8bbf8120c1ed1af55 (diff) | |
download | ydb-a41f3739eed6fceb6f62056a7620d220958a47e7.tar.gz |
Update grpc to 1.43.2 DTCC-864
ref:50a492c335cda70f458797cf945e49fe739c2715
Diffstat (limited to 'contrib/libs/grpc/test/cpp/util/tls_test_utils.h')
-rw-r--r-- | contrib/libs/grpc/test/cpp/util/tls_test_utils.h | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/contrib/libs/grpc/test/cpp/util/tls_test_utils.h b/contrib/libs/grpc/test/cpp/util/tls_test_utils.h new file mode 100644 index 0000000000..3f8d3d5a5d --- /dev/null +++ b/contrib/libs/grpc/test/cpp/util/tls_test_utils.h @@ -0,0 +1,82 @@ +// +// Copyright 2021 gRPC authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +#ifndef GRPC_TEST_CPP_UTIL_TLS_TEST_UTILS_H +#define GRPC_TEST_CPP_UTIL_TLS_TEST_UTILS_H + +#include <deque> + +#include <grpc/grpc.h> +#include <grpc/grpc_security.h> +#include <grpcpp/security/server_credentials.h> + +#include "src/core/lib/gprpp/thd.h" + +namespace grpc { +namespace testing { + +class SyncCertificateVerifier + : public ::grpc::experimental::ExternalCertificateVerifier { + public: + explicit SyncCertificateVerifier(bool success) : success_(success) {} + + ~SyncCertificateVerifier() override {} + + bool Verify(::grpc::experimental::TlsCustomVerificationCheckRequest* request, + std::function<void(grpc::Status)> callback, + grpc::Status* sync_status) override; + + void Cancel( + ::grpc::experimental::TlsCustomVerificationCheckRequest*) override {} + + private: + bool success_ = false; +}; + +class AsyncCertificateVerifier + : public ::grpc::experimental::ExternalCertificateVerifier { + public: + explicit AsyncCertificateVerifier(bool success); + + ~AsyncCertificateVerifier() override; + + bool Verify(::grpc::experimental::TlsCustomVerificationCheckRequest* request, + std::function<void(grpc::Status)> callback, + grpc::Status* sync_status) override; + + void Cancel( + ::grpc::experimental::TlsCustomVerificationCheckRequest*) override {} + + private: + // A request to pass to the worker thread. + struct Request { + ::grpc::experimental::TlsCustomVerificationCheckRequest* request; + std::function<void(grpc::Status)> callback; + bool shutdown; // If true, thread will exit. + }; + + static void WorkerThread(void* arg); + + bool success_ = false; + grpc_core::Thread thread_; + grpc::internal::Mutex mu_; + std::deque<Request> queue_ Y_ABSL_GUARDED_BY(mu_); +}; + +} // namespace testing +} // namespace grpc + +#endif // GRPC_TEST_CPP_UTIL_TLS_TEST_UTILS_H |