[
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)