Detect and handle OpenSSL 1.1
OpenSSL 1.1 supports most of the native threading libraries, including pthread. This means that only versions before 1.1 need the thread handling code.
This commit is contained in:
@ -203,6 +203,7 @@ const DEBUG_ARGUMENT debug_arguments[] =
|
||||
{NULL, NULL, NULL}
|
||||
};
|
||||
|
||||
#ifndef OPENSSL_1_1
|
||||
/** SSL multi-threading functions and structures */
|
||||
|
||||
static SPINLOCK* ssl_locks;
|
||||
@ -284,6 +285,7 @@ static void maxscale_ssl_id(CRYPTO_THREADID* id)
|
||||
CRYPTO_THREADID_set_numeric(id, pthread_self());
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Handler for SIGHUP signal. Reload the configuration for the
|
||||
@ -1734,6 +1736,7 @@ int main(int argc, char **argv)
|
||||
SSL_load_error_strings();
|
||||
OPENSSL_add_all_algorithms_noconf();
|
||||
|
||||
#ifndef OPENSSL_1_1
|
||||
numlocks = CRYPTO_num_locks();
|
||||
if ((ssl_locks = (SPINLOCK*)MXS_MALLOC(sizeof(SPINLOCK) * (numlocks + 1))) == NULL)
|
||||
{
|
||||
@ -1753,6 +1756,7 @@ int main(int argc, char **argv)
|
||||
CRYPTO_THREADID_set_callback(maxscale_ssl_id);
|
||||
#else
|
||||
CRYPTO_set_id_callback(pthread_self);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user