diff -up ccrtp-2.0.5/src/ccrtp/crypto/gcrypt/InitializeGcrypt.cpp.threadcbs ccrtp-2.0.5/src/ccrtp/crypto/gcrypt/InitializeGcrypt.cpp --- ccrtp-2.0.5/src/ccrtp/crypto/gcrypt/InitializeGcrypt.cpp.threadcbs 2012-06-18 17:19:04.000000000 +0200 +++ ccrtp-2.0.5/src/ccrtp/crypto/gcrypt/InitializeGcrypt.cpp 2014-04-22 21:28:21.857233486 +0200 @@ -16,67 +16,18 @@ */ #include - #include -#include #include #include - -/* - * The following macro was copied from gcrypt.h and modified to explicitly - * cast the pointer types to keep the compiler happy. - */ -#define GCRY_THREAD_OPTION_PTHREAD_CPP_IMPL \ -static int gcry_pthread_mutex_init (void **priv) \ -{ \ - int err = 0; \ - pthread_mutex_t *lock = (pthread_mutex_t *)malloc (sizeof (pthread_mutex_t)); \ - \ - if (!lock) \ - err = ENOMEM; \ - if (!err) \ -{ \ - err = pthread_mutex_init (lock, NULL); \ - if (err) \ - free (lock); \ - else \ - *priv = lock; \ -} \ - return err; \ -} \ -static int gcry_pthread_mutex_destroy (void **lock) \ -{ int err = pthread_mutex_destroy ((pthread_mutex_t *)*lock); free (*lock); return err; } \ -static int gcry_pthread_mutex_lock (void **lock) \ -{ return pthread_mutex_lock ((pthread_mutex_t *)*lock); } \ -static int gcry_pthread_mutex_unlock (void **lock) \ -{ return pthread_mutex_unlock ((pthread_mutex_t *)*lock); } \ - \ -static struct gcry_thread_cbs gcry_threads_pthread = \ -{ GCRY_THREAD_OPTION_PTHREAD, NULL, \ - gcry_pthread_mutex_init, gcry_pthread_mutex_destroy, \ - gcry_pthread_mutex_lock, gcry_pthread_mutex_unlock } - -/** Implement the locking callback functions for libgcrypt. - * - */ static int initialized = 0; -#ifdef __cplusplus -extern "C" { -#endif -GCRY_THREAD_OPTION_PTHREAD_CPP_IMPL; -#ifdef __cplusplus -} -#endif - int initializeGcrypt () { if (initialized) { return 1; } - gcry_control(GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread); gcry_check_version(NULL); gcry_control(GCRYCTL_DISABLE_SECMEM); initialized = 1;