Changed callbacks type

This commit is contained in:
Aris Adamantiadis
2010-09-12 21:45:53 +02:00
parent 9f02a817ff
commit b7af2b2959
3 changed files with 10 additions and 34 deletions

View File

@@ -41,7 +41,7 @@ static unsigned long threads_id_noop (void){
struct ssh_threads_callbacks_struct ssh_threads_noop =
{
.type=ssh_threads_type_noop,
.type="threads_noop",
.mutex_init=threads_noop,
.mutex_destroy=threads_noop,
.mutex_lock=threads_noop,
@@ -60,7 +60,11 @@ static struct gcry_thread_cbs gcrypt_threads_callbacks;
static int libgcrypt_thread_init(void){
if(user_callbacks == NULL)
return SSH_ERROR;
gcrypt_threads_callbacks.option= GCRY_THREAD_OPTION_VERSION << 8 || GCRY_THREAD_OPTION_USER;
if(user_callbacks == &ssh_threads_noop){
gcrypt_threads_callbacks.option= GCRY_THREAD_OPTION_VERSION << 8 || GCRY_THREAD_OPTION_DEFAULT;
} else {
gcrypt_threads_callbacks.option= GCRY_THREAD_OPTION_VERSION << 8 || GCRY_THREAD_OPTION_USER;
}
gcrypt_threads_callbacks.mutex_init=user_callbacks->mutex_init;
gcrypt_threads_callbacks.mutex_destroy=user_callbacks->mutex_destroy;
gcrypt_threads_callbacks.mutex_lock=user_callbacks->mutex_lock;
@@ -87,6 +91,8 @@ static void libcrypto_lock_callback(int mode, int i, const char *file, int line)
static int libcrypto_thread_init(){
int n=CRYPTO_num_locks();
int i;
if(user_callbacks == &ssh_threads_noop)
return SSH_OK;
libcrypto_mutexes=malloc(sizeof(void *) * n);
if (libcrypto_mutexes == NULL)
return SSH_ERROR;

View File

@@ -80,7 +80,7 @@ static unsigned long ssh_pthread_thread_id (void){
struct ssh_threads_callbacks_struct ssh_threads_pthread =
{
.type=ssh_threads_type_pthread,
.type="threads_pthread",
.mutex_init=ssh_pthread_mutex_init,
.mutex_destroy=ssh_pthread_mutex_destroy,
.mutex_lock=ssh_pthread_mutex_lock,
@@ -88,16 +88,4 @@ struct ssh_threads_callbacks_struct ssh_threads_pthread =
.thread_id=ssh_pthread_thread_id
};
#ifdef THREAD_NATIVE_PTHREAD
struct ssh_threads_callbacks_struct ssh_threads_native =
{
.type=ssh_threads_type_pthread,
.mutex_init=ssh_pthread_mutex_init,
.mutex_destroy=ssh_pthread_mutex_destroy,
.mutex_lock=ssh_pthread_mutex_lock,
.mutex_unlock=ssh_pthread_mutex_unlock,
.thread_id=ssh_pthread_thread_id
};
#endif
#endif /* HAVE_PTHREAD */