[英]GRPC C++ TLS Client grpc::SslCredentials() method not returning
您使用什么版本的 gRPC 和什么語言? 1.29
什么操作系統(Linux,Windows,...)和版本? 紅帽企業 Linux 服務器版本 7.6(邁坡)
您正在使用什么運行時/編譯器(例如 python 版本或 gcc 版本)gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36) 版權所有 (C) 2015 Free Software Foundation, Inc. 這是免費軟件; 查看復制條件的來源。 沒有保修; 甚至不考慮適銷性或特定用途的適用性。
你做了什么? 創建客戶端 SslCredentialsOptions 如果我在簡單的應用程序中使用相同的代碼,它工作得很好。 當集成到共享庫中並在多線程應用程序中使用該庫時。 頻道未創建。 什么時候調試我發現 grpc::SslCredentials() 方法沒有返回。
你期待看到什么? 創建通道並建立連接。 啟用日志 export GRPC_TRACE=all export GRPC_VERBOSITY=DEBUG 控制台中沒有生成日志。
你看到了什么? grpc::SslCredentials() 方法未返回且未創建通道。 我嘗試使用共享庫和 static 庫。
Used the following code
grpc::SslCredentialsOptions sslops;
{
std::string client = "";
std::string key = "";
std::string root = "";
std::string clientcert = "/cert/client.crt";
std::string keycert = "/cert/client.key";
std::string rootcert = "/cert/ca.crt";
SCMSSLCPPContext::read( clientcert, client);
SCMSSLCPPContext::read( keycert, key);
SCMSSLCPPContext::read( rootcert, root);
sslops = { root, key, cert };
//std::shared_ptr<grpc::ChannelCredentials> creds = grpc::SslCredentials(sslops);
auto channel_creds = grpc::SslCredentials(sslops);
auto channel = grpc::CreateChannel("localhost:14021", channel_creds );
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.