我需要让用户能够在 SSL 和非 SSL 通信之间切换。为此,SSL 代码查找特定的命令包,关闭 SSL 内容并开始正常的 TCP/IP 通信。这工作正常。但是,当我尝试重新启动一切以在 SSL 模式下运行时,我从 SSL_accept 收到 -2 错误。一定有什么东西我没有清理,但是经过大量搜索清理建议后我没有找到它,所有这些我都扔了,如下所示:
SSL_shutdown(ssl);
SSL_CTX_free(ctx);
BIO_free(acc);
CONF_modules_unload(1);
OBJ_cleanup();
EVP_cleanup();
ENGINE_cleanup();
CRYPTO_cleanup_all_ex_data();
ERR_remove_state(0);
ERR_free_strings();
很难相信在那之后还有什么需要清理的!