我使用openSSL来实现一个安全的服务器,但我在文档上有点挣扎。
对于服务器I的每个连接:
mp_ssl = SSL_new(...)
BIO* lp_bio = BIO_new_socket(..., BIO_NOCLOSE);
SSL_set_bio(mp_ssl, lp_bio, lp_bio);
SSL_accept(mp_ssl);
连接终止时
SSL_free(mp_ssl);
现在一切正常,但我的内存泄漏了。我想知道是否有人可以向我解释是否和/或何时我需要自己清理BIO *,或者这可能是在SSL_free(...)
时完成的?
FWIW - 我在完成TCP / IP接受后在(主)线程中创建SSL *,但BIO和SSL_Accept是使用工作线程完成的(我有一些时间问题,设置SSL握手是阻塞的我的主线太长了)