c++ - 如何清理坏的 OpenSSL 连接

标签 c++ c openssl

如果对 SSL_accept 的调用失败,我只想退出。

目前我正在调用 SSL_shutdown,然后调用 SSL_free,但是自从实现这个之后,两个客户在 OpenSSL 中发生了崩溃(稍后调用 SSL_accept 时),所以我猜这可能不是最好的方法清理。

文档说 SSL_shutdown 用于正确清理,可能需要调用两次(尽管如果 SSL_accept 失败,我认为情况不会如此)。 SSL_clear 是另一种选择,但它似乎更像是连接重置。

SSL_free 减少引用计数并在引用计数为 0 时删除连接。我知道我的代码没有任何引用,但“ session ”可能吗?

是否有明确的方法可以使用 OpenSSL 完全关闭/关闭/释放 SSL 对象?

最佳答案

一旦您在 SSL 对象上调用了 SSL_free(),您就不应该再次使用它。您需要确保为后续的 SSL_accept() 使用 SSL_new() 创建新的 SSL。

关于c++ - 如何清理坏的 OpenSSL 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3610267/

相关文章:

c++ - 如何在光线追踪器中移动相机?

linux - base64 摘要- 无效输入?

perl - 如何在 Win 64 上安装 Crypt::SSLeay?

php - 为什么我不能使用 openssl_encrypt?

c++ - 对数字数组进行子采样

c++ - 我如何使用 goto 来执行文件任务而不是使用函数?

c++ - CString 到 LPCTSTR 的转换

c - 如何在 C 中使用这个定义的类型?

c - 多线程应用程序中的 ncurses

c++ - 使用 openssl 构建静态二进制文件的正确方法是什么?