簡體   English   中英

GRPC C++ TLS 客戶端 grpc::SslCredentials() 方法未返回

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM