如果对 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/