aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/grpc/test/cpp/util/tls_test_utils.h
diff options
context:
space:
mode:
authorheretic <heretic@yandex-team.ru>2022-03-25 12:34:53 +0300
committerheretic <heretic@yandex-team.ru>2022-03-25 12:34:53 +0300
commita41f3739eed6fceb6f62056a7620d220958a47e7 (patch)
tree278103258b510cb4a96761ea79d6ccd397ca05a0 /contrib/libs/grpc/test/cpp/util/tls_test_utils.h
parent73d3613a82e5c217fcbe0ab8bbf8120c1ed1af55 (diff)
downloadydb-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.h82
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