diff options
Diffstat (limited to 'lib/locks.c')
-rw-r--r-- | lib/locks.c | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/lib/locks.c b/lib/locks.c new file mode 100644 index 0000000..8888ed6 --- /dev/null +++ b/lib/locks.c @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2010-2012 Free Software Foundation, Inc. + * + * Author: Nikos Mavrogiannopoulos + * + * This file is part of GnuTLS. + * + * The GnuTLS is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/> + * + */ + +#include "gnutls_int.h" +#include "errors.h" +#include <libtasn1.h> +#include <dh.h> +#include <random.h> + +#include <locks.h> + + +/** + * gnutls_global_set_mutex: + * @init: mutex initialization function + * @deinit: mutex deinitialization function + * @lock: mutex locking function + * @unlock: mutex unlocking function + * + * With this function you are allowed to override the default mutex + * locks used in some parts of gnutls and dependent libraries. This function + * should be used if you have complete control of your program and libraries. + * Do not call this function from a library, or preferably from any application + * unless really needed to. GnuTLS will use the appropriate locks for the running + * system. + * + * This function must be called prior to any other GnuTLS function; otherwise + * the behavior is undefined. + * + * Deprecated: This function is discouraged on GnuTLS 3.7.3 or later. + * + * Since: 2.12.0 + **/ +void +gnutls_global_set_mutex(mutex_init_func init, mutex_deinit_func deinit, + mutex_lock_func lock, mutex_unlock_func unlock) +{ + if (init == NULL || deinit == NULL || lock == NULL || unlock == NULL) { + return; + } + + gnutls_mutex_init = init; + gnutls_mutex_deinit = deinit; + gnutls_mutex_lock = lock; + gnutls_mutex_unlock = unlock; +} |