On 6/13/06, david reid <[EMAIL PROTECTED]> wrote:
+static int sslInit = 0;
+
+static void initOpenSSL(void)
+{
+ SSL_library_init();
+ OpenSSL_add_all_algorithms();
+ OpenSSL_add_all_digests();
+ SSL_load_error_strings();
+
+ sslInit = 1;
+}
FWIW, for serf, we settled upon the following invocation as the most
reliable sequence:
CRYPTO_malloc_init();
ERR_load_crypto_strings();
SSL_load_error_strings();
OpenSSL_add_all_algorithms();
(We use the same static var trick too.)
http://svn.webdav.org/repos/projects/serf/trunk/buckets/ssl_buckets.c
I know neon uses a different sequence too:
SSL_load_error_strings();
SSL_library_init();
OpenSSL_add_all_algorithms();
...thread safe callback inits...
http://svn.webdav.org/repos/projects/neon/trunk/src/ne_openssl.c
If there's a reason or rationale to use a particular init sequence,
I'd love to know.
But, the one for serf was the only one I could get that worked with
every OpenSSL version.
HTH. -- justin