On Fri, Nov 21, 2014, Barbe, Charles wrote:
> Thanks for the response... here is the code that runs when my connection
> closes:
>
> void OpensslConnection::cleanup()
> {
> if(ssl != NULL)
> {
> if(isConnected)
> {
> while(SSL_shutdown(ssl) == 0)
> ;
> }
> SSL_free(ssl);
> ERR_remove_state(0);
> ssl = NULL;
> }
>
> isConnected = false;
> }
>
> And here is the code that runs to shut down my SSL library:
>
> static void
> openSslShutdown ()
> {
> CONF_modules_free();
> ERR_remove_state(0);
> CONF_modules_unload(1);
> ERR_free_strings();
> EVP_cleanup();
> CRYPTO_cleanup_all_ex_data();
>
> if (opensslLocks != NULL)
> {
> for(int i = 0; i < CRYPTO_num_locks(); i++)
> {
> PAL_mutexDestroy (opensslLocks[i]);
> }
>
> IST_FREE (opensslLocks);
> }
> }
>
> Also, I have numerous worker threads handling connections and they all do the
> following before they exit:
>
> ERR_remove_thread_state(0);
>
You are calling SSL_CTX_free aren't you?
Steve.
--
Dr Stephen N. Henson. OpenSSL project core developer.
Commercial tech support now available see: http://www.openssl.org
______________________________________________________________________
OpenSSL Project http://www.openssl.org
User Support Mailing List [email protected]
Automated List Manager [email protected]