Oh :)
I forgot to mention that I instantiated those variables (it was like obvious
for me). Here is the
initialization code:
int Server::TLS_init()
{
int i;
mutex_buf = (pthread_mutex_t*) malloc(CRYPTO_num_locks() *
sizeof(pthread_mutex_t));
if (mutex_buf == NULL) {
return -1;
}
for (i = 0; i < CRYPTO_num_locks(); i ) {
pthread_mutex_init(&mutex_buf[i], NULL);
}
CRYPTO_set_locking_callback(locking_function);
CRYPTO_set_id_callback(id_function);
SSL_library_init();
SSL_load_error_strings();
return 0;
}
int Server::TLS_cleanup()
{
int i;
if (mutex_buf == NULL) {
return 0;
}
CRYPTO_set_locking_callback(NULL);
CRYPTO_set_id_callback(NULL);
for (i = 0; i < CRYPTO_num_locks(); i ) {
pthread_mutex_destroy(&mutex_buf[i]);
}
free(mutex_buf);
mutex_buf = NULL;
return 0;
}
I'm calling TLS_init in server's constructor and TLS_cleanup in server's
destructor.
-----------------------------------
Nirvana
__________________________________
Whozin - Are you in?
We pay you to read your own e-mail!
Primul webmail adevărat în limba română !