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                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to