You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Alan Dunn (JIRA)" <ji...@apache.org> on 2014/03/30 19:43:14 UTC

[jira] [Updated] (THRIFT-2433) Allow manual control of OpenSSL initialization/cleanup

     [ https://issues.apache.org/jira/browse/THRIFT-2433?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alan Dunn updated THRIFT-2433:
------------------------------

    Attachment: 0003-Add-unit-test-for-OpenSSL-manual-initialization.patch
                0002-Add-ability-to-take-control-of-OpenSSL-initializatio.patch
                0001-Expose-OpenSSL-initialization-functions.patch

Patchset that adds this improvement.  Can reformat as one patch (as per contributing rules) if desired, but it seemed multiple smaller logical patches might be a good idea.

> Allow manual control of OpenSSL initialization/cleanup
> ------------------------------------------------------
>
>                 Key: THRIFT-2433
>                 URL: https://issues.apache.org/jira/browse/THRIFT-2433
>             Project: Thrift
>          Issue Type: Improvement
>          Components: C++ - Library
>    Affects Versions: 0.9.1
>            Reporter: Alan Dunn
>         Attachments: 0001-Expose-OpenSSL-initialization-functions.patch, 0002-Add-ability-to-take-control-of-OpenSSL-initializatio.patch, 0003-Add-unit-test-for-OpenSSL-manual-initialization.patch
>
>
> Thrift's C++ TSSLSocketFactory controls OpenSSL library initialization/cleanup.  It initializes OpenSSL itself and de-initializes OpenSSL after the last TSSLSocketFactory is destroyed.  However, programs may need to initialize OpenSSL themselves (e.g. they have other dependencies that want to use OpenSSL) and may depend on OpenSSL functionality after the last TSSLSocketFactory is destroyed.
> I propose a mechanism to set TSSLSocketFactory to allow manual OpenSSL initialization/cleanup, and to expose the initializeOpenSSL/cleanupOpenSSL functions to the user.  As a result, a user can choose when OpenSSL is initialized and cleaned up, and can even use the prior Thrift code for performing this initialization/cleanup if it is sufficient for their needs.  However, by default, OpenSSL initialization/cleanup will be automatic, so only people who care about taking control of OpenSSL initialization/cleanup will need to do anything.



--
This message was sent by Atlassian JIRA
(v6.2#6252)