From efdc1bd5f475b8935f8e92739b78066c21e59dee Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Wed, 5 Jan 2005 07:51:46 +0000 Subject: [PATCH] Add new function krb5_boolean krb5_is_thread_safe(void) to library. This function simply reports whether or not ENABLE_THREADS was specified at compile time. It is meant to be used by applications which need to know whether or not multithread libraries must be initialized OR whether or not calls to Kerberos library functions from multi-threaded applications must be protected by an application global mutex. ticket: new tags: pullup git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@17003 dc483132-0cff-0310-8789-dd5450dbe970 --- src/include/ChangeLog | 4 ++++ src/include/krb5.hin | 2 ++ src/lib/ChangeLog | 4 ++++ src/lib/krb5/ChangeLog | 4 ++++ src/lib/krb5/libkrb5.exports | 1 + src/lib/krb5/os/ChangeLog | 4 ++++ src/lib/krb5/os/Makefile.in | 3 +++ src/lib/krb5/os/thread_safe.c | 40 +++++++++++++++++++++++++++++++++++ src/lib/krb5_32.def | 1 + 9 files changed, 63 insertions(+) create mode 100644 src/lib/krb5/os/thread_safe.c diff --git a/src/include/ChangeLog b/src/include/ChangeLog index c6fad11f7..2df928059 100644 --- a/src/include/ChangeLog +++ b/src/include/ChangeLog @@ -1,3 +1,7 @@ +2005-01-04 Jeffrey Altman + + * krb5.hin: add prototype for krb5_is_thread_safe + 2005-01-04 Jeffrey Altman * win-mac.h: define NEED_INSIXADDR_ANY for ipv6 symbol diff --git a/src/include/krb5.hin b/src/include/krb5.hin index 6f26072ce..230295d01 100644 --- a/src/include/krb5.hin +++ b/src/include/krb5.hin @@ -1372,6 +1372,8 @@ krb5_boolean krb5_is_permitted_enctype (krb5_context, krb5_enctype); #endif +krb5_boolean KRB5_CALLCONV krb5_is_thread_safe(void); + /* libkrb.spec */ #if KRB5_PRIVATE krb5_error_code krb5_kdc_rep_decrypt_proc diff --git a/src/lib/ChangeLog b/src/lib/ChangeLog index 11239044d..10a156572 100644 --- a/src/lib/ChangeLog +++ b/src/lib/ChangeLog @@ -1,3 +1,7 @@ +2005-01-03 Jeffrey Altman + + * krb5_32.def: export krb5_is_thread_safe() + 2004-12-18 Jeffrey Altman * krb5_32.def: mark krb5_principal2salt as using the wrong diff --git a/src/lib/krb5/ChangeLog b/src/lib/krb5/ChangeLog index e1ca4dfea..97a7fe32c 100644 --- a/src/lib/krb5/ChangeLog +++ b/src/lib/krb5/ChangeLog @@ -1,3 +1,7 @@ +2005-01-04 Jeffrey Altman + + * libkrb5.exports: add krb5_is_thread_safe + 2004-11-18 Ken Raeburn * Makefile.in (SHLIB_EXPLIBS): Remove -ldl accidentally added in diff --git a/src/lib/krb5/libkrb5.exports b/src/lib/krb5/libkrb5.exports index 204296aa3..f16b45cf8 100644 --- a/src/lib/krb5/libkrb5.exports +++ b/src/lib/krb5/libkrb5.exports @@ -458,6 +458,7 @@ krb5_init_keyblock krb5_init_secure_context krb5_internalize_opaque krb5_is_permitted_enctype +krb5_is_thread_safe krb5_kdc_rep_decrypt_proc krb5_kt_add_entry krb5_kt_close diff --git a/src/lib/krb5/os/ChangeLog b/src/lib/krb5/os/ChangeLog index 1c0876503..00b7cb835 100644 --- a/src/lib/krb5/os/ChangeLog +++ b/src/lib/krb5/os/ChangeLog @@ -1,3 +1,7 @@ +2005-01-03 Jeffrey Altman + + * thread_safe.c: (new file) krb5_is_thread_safe() + 2004-12-08 Ken Raeburn * accessor.c (krb5int_accessor): Set new field use_dns_kdc. diff --git a/src/lib/krb5/os/Makefile.in b/src/lib/krb5/os/Makefile.in index a971ba211..ade99dd90 100644 --- a/src/lib/krb5/os/Makefile.in +++ b/src/lib/krb5/os/Makefile.in @@ -49,6 +49,7 @@ STLIBOBJS= \ send524.o \ sendto_kdc.o \ sn2princ.o \ + thread_safe.o \ timeofday.o \ toffset.o \ unlck_file.o \ @@ -94,6 +95,7 @@ OBJS= \ $(OUTPRE)send524.$(OBJEXT) \ $(OUTPRE)sendto_kdc.$(OBJEXT) \ $(OUTPRE)sn2princ.$(OBJEXT) \ + $(OUTPRE)thread_safe.$(OBJEXT) \ $(OUTPRE)timeofday.$(OBJEXT) \ $(OUTPRE)toffset.$(OBJEXT) \ $(OUTPRE)unlck_file.$(OBJEXT) \ @@ -139,6 +141,7 @@ SRCS= \ $(srcdir)/send524.c \ $(srcdir)/sendto_kdc.c \ $(srcdir)/sn2princ.c \ + $(srcdir)/thread_safe.c \ $(srcdir)/timeofday.c \ $(srcdir)/toffset.c \ $(srcdir)/unlck_file.c \ diff --git a/src/lib/krb5/os/thread_safe.c b/src/lib/krb5/os/thread_safe.c new file mode 100644 index 000000000..faac234f9 --- /dev/null +++ b/src/lib/krb5/os/thread_safe.c @@ -0,0 +1,40 @@ +/* + * lib/krb5/os/thread_safec + * + * Copyright 2005 by the Massachusetts Institute of Technology. + * All Rights Reserved. + * + * Export of this software from the United States of America may + * require a specific license from the United States Government. + * It is the responsibility of any person or organization contemplating + * export to obtain such a license before exporting. + * + * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and + * distribute this software and its documentation for any purpose and + * without fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright notice and + * this permission notice appear in supporting documentation, and that + * the name of M.I.T. not be used in advertising or publicity pertaining + * to distribution of the software without specific, written prior + * permission. Furthermore if you modify this software you must label + * your software as modified software and not distribute it in such a + * fashion that it might be confused with the original M.I.T. software. + * M.I.T. makes no representations about the suitability of + * this software for any purpose. It is provided "as is" without express + * or implied warranty. + * + * + * krb5_is_thread_safe() function. + */ + +#include "k5-int.h" + +krb5_boolean KRB5_CALLCONV +krb5_is_thread_safe(void) +{ +#if defined(ENABLE_THREADS) + return 1; +#else + return 0; +#endif +} diff --git a/src/lib/krb5_32.def b/src/lib/krb5_32.def index 95f814672..0125d2630 100644 --- a/src/lib/krb5_32.def +++ b/src/lib/krb5_32.def @@ -168,6 +168,7 @@ krb5_c_string_to_key_with_params krb5_init_keyblock krb5_init_random_key krb5_init_secure_context + krb5_is_thread_safe krb5_kt_add_entry krb5_kt_close krb5_kt_default -- 2.26.2