summaryrefslogtreecommitdiffstats
path: root/src/lib/krb5/krb/init_ctx.c
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@mit.edu>2004-04-24 21:09:44 +0000
committerKen Raeburn <raeburn@mit.edu>2004-04-24 21:09:44 +0000
commitfcf02bef88a17724aa230547459a9eaf1159d6c1 (patch)
tree7f9dd998b8e7baf61111f6bf0428da47de1291eb /src/lib/krb5/krb/init_ctx.c
parent3b4d753fc5169469da270c831654a8fae407cfdf (diff)
downloadkrb5-fcf02bef88a17724aa230547459a9eaf1159d6c1.tar.gz
krb5-fcf02bef88a17724aa230547459a9eaf1159d6c1.tar.xz
krb5-fcf02bef88a17724aa230547459a9eaf1159d6c1.zip
Added support for library initialization and finalization, and verification
that the initializer completed successfully. Delay initialization on POSIX until the first "verification" call. Currently specific to a few platforms, but should still build on others without thread support enabled. Use it to finish creating (if necessary) and destroy mutexes, and free some other storage "permanently" allocated by libraries (currently, libkrb5 cache/keytab type registries only). Change initialization of static mutexes to a two-step operation, a static "partial" initializer and a "finish_init" routine called from a thread-safe environment like library initialization is assumed to be. POSIX will use the former, Windows will use the latter, and the debug support will check that *both* have been used. Added init/fini functions to com_err, profile, krb5, and gssapi libraries. (The profile library one may need to be removed later.) The existing ones, not thread-safe, are still around. Use weak symbol support if available to figure out if the pthread library has been linked in, and avoid calling certain routines if the C library stubs are known not to exist or work. Stub declarations for thread-specific data. Minor bugfixes, whitespace changes. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@16268 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/krb5/krb/init_ctx.c')
-rw-r--r--src/lib/krb5/krb/init_ctx.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/lib/krb5/krb/init_ctx.c b/src/lib/krb5/krb/init_ctx.c
index 2740d8361..de6b22d50 100644
--- a/src/lib/krb5/krb/init_ctx.c
+++ b/src/lib/krb5/krb/init_ctx.c
@@ -128,7 +128,9 @@ init_common (krb5_context *context, krb5_boolean secure)
if (retval)
return retval;
#else /* assume UNIX for now */
- krb5int_initialize_library ();
+ retval = krb5int_initialize_library ();
+ if (retval)
+ return retval;
#endif
*context = 0;