From efdc1bd5f475b8935f8e92739b78066c21e59dee Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Wed, 5 Jan 2005 07:51:46 +0000 Subject: 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/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 ++++++++++++++++++++++++++++++++++++++++ 5 files changed, 52 insertions(+) create mode 100644 src/lib/krb5/os/thread_safe.c (limited to 'src/lib/krb5') 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 +} -- cgit