#include <unistd.h>
#include <pthread.h>
#include <openssl/err.h>
+#include <openssl/opensslv.h>
#include <cynara-client.h>
#define MUTEX_TYPE pthread_mutex_t
return ((unsigned long)THREAD_ID);
}
+#if (OPENSSL_VERSION_NUMBER >= 0x10000000L)
+static void threadid_function(CRYPTO_THREADID *threadid)
+{
+ CRYPTO_THREADID_set_numeric(threadid, id_function());
+}
+#endif
+
int thread_setup(void)
{
int index = 0;
for (index = 0; index < CRYPTO_num_locks(); index++)
MUTEX_SETUP(mutex_buf[index]);
+#if (OPENSSL_VERSION_NUMBER >= 0x10000000L)
+ CRYPTO_THREADID_set_callback(threadid_function);
+#else
CRYPTO_set_id_callback(id_function);
+#endif
CRYPTO_set_locking_callback(locking_function);
return 1;