Commit cbc80a42 authored by Mark Andrews's avatar Mark Andrews
Browse files

4676. [cleanup] Allow BIND to be built using OpenSSL 1.0.X with

                        deprecated functions removed. [RT #45706]
parent f4eb664c
4676. [cleanup] Allow BIND to be built using OpenSSL 1.0.X with
deprecated functions removed. [RT #45706]
4675. [cleanup] Don't use C++ keyword class. [RT #45726]
4674. [func] "dig +sigchase", and related options "+topdown" and
......
......@@ -104,7 +104,7 @@ entropy_add(const void *buf, int num, double entropy) {
}
#endif
#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
#if OPENSSL_VERSION_NUMBER >= 0x10000000L && OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
static void
lock_callback(int mode, int type, const char *file, int line) {
UNUSED(file);
......@@ -114,7 +114,9 @@ lock_callback(int mode, int type, const char *file, int line) {
else
UNLOCK(&locks[type]);
}
#endif
#if OPENSSL_VERSION_NUMBER < 0x10000000L
static unsigned long
id_callback(void) {
return ((unsigned long)isc_thread_self());
......@@ -178,6 +180,14 @@ mem_realloc(void *ptr, size_t size FLARG) {
#endif
}
#if OPENSSL_VERSION_NUMBER >= 0x10000000L && OPENSSL_VERSION_NUMBER < 0x10100000L
static void
_set_thread_id(CRYPTO_THREADID *id)
{
CRYPTO_THREADID_set_numeric(id, (unsigned long)pthread_self());
}
#endif
isc_result_t
dst__openssl_init(const char *engine) {
isc_result_t result;
......@@ -203,7 +213,11 @@ dst__openssl_init(const char *engine) {
if (result != ISC_R_SUCCESS)
goto cleanup_mutexalloc;
CRYPTO_set_locking_callback(lock_callback);
# if OPENSSL_VERSION_NUMBER >= 0x10000000L
CRYPTO_THREADID_set_callback(_set_thread_id);
# else
CRYPTO_set_id_callback(id_callback);
# endif
ERR_load_crypto_strings();
#endif
......@@ -324,7 +338,9 @@ dst__openssl_destroy(void) {
CRYPTO_cleanup_all_ex_data();
#endif
ERR_clear_error();
#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
#if OPENSSL_VERSION_NUMBER >= 0x10000000L && OPENSSL_VERSION_NUMBER < 0x10100000L
ERR_remove_thread_state(NULL);
#elif OPENSSL_VERSION_NUMBER < 0x10000000L || defined(LIBRESSL_VERSION_NUMBER)
ERR_remove_state(0);
#endif
ERR_free_strings();
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment