1 --- a/lib/dns/openssl_link.c 2017-07-07 09:02:06.000000000 -0600
2 +++ b/lib/dns/openssl_link.c 2017-08-07 10:23:18.886182931 -0600
3 @@ -177,6 +177,14 @@ mem_realloc(void *ptr, size_t size FLARG
7 +#if OPENSSL_VERSION_NUMBER >= 0x10000000L
9 +_set_thread_id(CRYPTO_THREADID *id)
11 + CRYPTO_THREADID_set_numeric(id, pthread_self());
16 dst__openssl_init(const char *engine) {
18 @@ -193,7 +203,7 @@ dst__openssl_init(const char *engine) {
19 CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
21 CRYPTO_set_mem_functions(mem_alloc, mem_realloc, mem_free);
22 -#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
23 +#if defined(OPENSSL_VERSION_NUMBER) || defined(LIBRESSL_VERSION_NUMBER)
24 nlocks = CRYPTO_num_locks();
25 locks = mem_alloc(sizeof(isc_mutex_t) * nlocks FILELINE);
27 @@ -202,7 +204,11 @@ dst__openssl_init(const char *engine) {
28 if (result != ISC_R_SUCCESS)
29 goto cleanup_mutexalloc;
30 CRYPTO_set_locking_callback(lock_callback);
31 +# if OPENSSL_VERSION_NUMBER >= 0x10000000L
32 + CRYPTO_THREADID_set_callback(_set_thread_id);
34 CRYPTO_set_id_callback(id_callback);
37 ERR_load_crypto_strings();
39 @@ -323,7 +335,9 @@ dst__openssl_destroy(void) {
40 CRYPTO_cleanup_all_ex_data();
43 -#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
44 +#if OPENSSL_VERSION >= 0x10000000L
45 + ERR_remove_thread_state(NULL);
46 +#elif OPENSSL_VERSION_NUMBER < 0x10000000L || defined(LIBRESSL_VERSION_NUMBER)