.recvmsg = NULL,
};
-static int wrap_gcry_mutex_lock(void** m)
-{
- return gnutls_mutex_lock(*m);
-}
-
-static int wrap_gcry_mutex_unlock(void** m)
-{
- return gnutls_mutex_unlock(*m);
-}
-
-static int wrap_gcry_mutex_deinit(void** m)
-{
- gnutls_mutex_deinit(*m);
- return 0;
-}
-
int gnutls_crypto_init(void)
{
/* Initialize libgcrypt if it hasn't already been initialized. */
if (gnutls_mutex_init != NULL)
{
gct.mutex_init = gnutls_mutex_init;
- gct.mutex_destroy = wrap_gcry_mutex_deinit;
- gct.mutex_lock = wrap_gcry_mutex_lock;
- gct.mutex_unlock = wrap_gcry_mutex_unlock;
+ gct.mutex_destroy = gnutls_mutex_deinit;
+ gct.mutex_lock = gnutls_mutex_lock;
+ gct.mutex_unlock = gnutls_mutex_unlock;
gcry_control (GCRYCTL_SET_THREAD_CBS, &gct);
}
void gnutls_global_deinit (void);
typedef int (*mutex_init_func)(void** mutex);
- typedef int (*mutex_lock_func)(void* mutex);
- typedef int (*mutex_unlock_func)(void* mutex);
- typedef void (*mutex_deinit_func)(void* mutex);
+ typedef int (*mutex_lock_func)(void** mutex);
+ typedef int (*mutex_unlock_func)(void** mutex);
+ typedef int (*mutex_deinit_func)(void** mutex);
void gnutls_global_set_mutex(mutex_init_func init, mutex_deinit_func,
mutex_lock_func, mutex_unlock_func);
return 0;
}
-static void gnutls_system_mutex_deinit (void *priv)
+static int gnutls_system_mutex_deinit (void **priv)
{
- DeleteCriticalSection(priv);
- free(priv);
+ DeleteCriticalSection((CRITICAL_SECTION*)*priv);
+ free(*priv);
+
+ return 0;
}
-static int gnutls_system_mutex_lock (void *priv)
+static int gnutls_system_mutex_lock (void **priv)
{
- EnterCriticalSection(priv);
+ EnterCriticalSection((CRITICAL_SECTION*)*priv);
return 0;
}
-static int gnutls_system_mutex_unlock (void *priv)
+static int gnutls_system_mutex_unlock (void **priv)
{
- LeaveCriticalSection(priv);
+ LeaveCriticalSection((CRITICAL_SECTION*)*priv);
return 0;
}
return 0;
}
-static void gnutls_system_mutex_deinit (void *priv)
+static int gnutls_system_mutex_deinit (void **priv)
{
- pthread_mutex_destroy(priv);
- free(priv);
+ pthread_mutex_destroy((pthread_mutex_t*)*priv);
+ free(*priv);
+ return 0;
}
-static int gnutls_system_mutex_lock (void *priv)
+static int gnutls_system_mutex_lock (void **priv)
{
- if (pthread_mutex_lock(priv))
+ if (pthread_mutex_lock((pthread_mutex_t*)*priv))
{
gnutls_assert();
return GNUTLS_E_LOCKING_ERROR;
return 0;
}
-static int gnutls_system_mutex_unlock (void *priv)
+static int gnutls_system_mutex_unlock (void **priv)
{
- if (pthread_mutex_unlock(priv))
+ if (pthread_mutex_unlock((pthread_mutex_t*)*priv))
{
gnutls_assert();
return GNUTLS_E_LOCKING_ERROR;
return 0;
}
-static void gnutls_system_mutex_deinit (void *priv)
+static int gnutls_system_mutex_deinit (void **priv)
{
- return;
+ return 0;
}
-static int gnutls_system_mutex_lock (void *priv)
+static int gnutls_system_mutex_lock (void **priv)
{
return 0;
}
-static int gnutls_system_mutex_unlock (void *priv)
+static int gnutls_system_mutex_unlock (void **priv)
{
return 0;
}