如果对SSL_accept的调用失败,我只想摆脱困境。
目前我正在调用SSL_shutdown然后调用SSL_free,但是自从实现这个以来,两个客户在OpenSSL中深陷崩溃(稍后调用SSL_accept时),所以我猜这可能不是最好的方法清理。
文档说SSL_shutdown用于正确清理,可能需要调用两次(尽管如果SSL_accept失败,我不认为会是这种情况)。 SSL_clear是另一种选择,但似乎更像是连接重置。
如果引用计数达到0,SSL_free会减少引用计数并删除连接。我知道我的代码没有任何引用,但“会话”可能会?
是否有使用OpenSSL完全关闭/关闭/释放SSL对象的明确方法?
答案 0 :(得分:3)
在SSL_free()
对象上调用SSL
后,您不应再次使用它。您需要确保使用SSL_new()
为后续SSL_accept()
创建新的SSL。