openssl: Only use CRYPTO_set_id_callback on OpenSSL < 1.0.0
authorMartin Storsjö <martin@martin.st>
Sat, 5 Nov 2011 23:50:03 +0000 (01:50 +0200)
committerMartin Storsjö <martin@martin.st>
Sun, 6 Nov 2011 16:31:44 +0000 (18:31 +0200)
Since 1.0.0, this function is deprecated. A new function,
CRYPTO_THREADID_set_callback is available, but if not set at all,
it uses the address of errno as thread id, which should be
sufficient for most systems.

On windows, it never was necessary to use this function even
before 1.0.0, it used the right win32 API function for this
by default.

Signed-off-by: Martin Storsjö <martin@martin.st>
libavformat/network.c

index d50e1e7..d84dcaf 100644 (file)
@@ -45,7 +45,7 @@ static void openssl_lock(int mode, int type, const char *file, int line)
     else
         pthread_mutex_unlock(&openssl_mutexes[type]);
 }
-#ifndef WIN32
+#if !defined(WIN32) && OPENSSL_VERSION_NUMBER < 0x10000000
 static unsigned long openssl_thread_id(void)
 {
     return (intptr_t) pthread_self();
@@ -78,7 +78,7 @@ void ff_tls_init(void)
             for (i = 0; i < CRYPTO_num_locks(); i++)
                 pthread_mutex_init(&openssl_mutexes[i], NULL);
             CRYPTO_set_locking_callback(openssl_lock);
-#ifndef WIN32
+#if !defined(WIN32) && OPENSSL_VERSION_NUMBER < 0x10000000
             CRYPTO_set_id_callback(openssl_thread_id);
 #endif
         }