diff options
author | Miro Jurisic <meeroh@mit.edu> | 2000-01-22 04:04:36 +0000 |
---|---|---|
committer | Miro Jurisic <meeroh@mit.edu> | 2000-01-22 04:04:36 +0000 |
commit | 3954dd2c1f9919e2ac09f86f022063119b5dd8d3 (patch) | |
tree | 4918d63eb6cb7427d398d6cac70bfa325ad29025 /src/lib/krb5 | |
parent | 41ff7485d2775407c85fb2b90b26c3170b2ad4b5 (diff) | |
download | krb5-3954dd2c1f9919e2ac09f86f022063119b5dd8d3.zip krb5-3954dd2c1f9919e2ac09f86f022063119b5dd8d3.tar.gz krb5-3954dd2c1f9919e2ac09f86f022063119b5dd8d3.tar.bz2 |
Moved krb5, gss, and crypto library initialization/cleanup code into new dedicated functions; added code to release global state allocated in prng.c
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@11960 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/krb5')
-rw-r--r-- | src/lib/krb5/ChangeLog | 6 | ||||
-rw-r--r-- | src/lib/krb5/Makefile.in | 6 | ||||
-rw-r--r-- | src/lib/krb5/krb5_libinit.c | 46 | ||||
-rw-r--r-- | src/lib/krb5/krb5_libinit.h | 9 |
4 files changed, 67 insertions, 0 deletions
diff --git a/src/lib/krb5/ChangeLog b/src/lib/krb5/ChangeLog index b11d309..5cb8464 100644 --- a/src/lib/krb5/ChangeLog +++ b/src/lib/krb5/ChangeLog @@ -1,3 +1,9 @@ +Fri Jan 21 22:47:00 2000 Miro Jurisic <meeroh@mit.edu> + + * Makefile.in: added krb5_libinit.[co] + * krb5_libinit.[ch]: new files, contain library initialization + and cleanup code + 1999-12-01 Ken Raeburn <raeburn@mit.edu> * Makefile.in (LIBMINOR): Update to 2. diff --git a/src/lib/krb5/Makefile.in b/src/lib/krb5/Makefile.in index 4235d72..b03b623 100644 --- a/src/lib/krb5/Makefile.in +++ b/src/lib/krb5/Makefile.in @@ -45,6 +45,12 @@ STOBJLISTS= \ posix/OBJS.ST \ $(BUILDTOP)/util/profile/OBJS.ST +OBJS=\ + $(OUTPRE)krb5_libinit.$(OBJEXT) + +SRCS=\ + $(subdir)/krb5_libinit.c + RELDIR=krb5 SHLIB_EXPDEPS = \ $(TOPLIBD)/libk5crypto$(SHLIBEXT) \ diff --git a/src/lib/krb5/krb5_libinit.c b/src/lib/krb5/krb5_libinit.c new file mode 100644 index 0000000..584aa57 --- /dev/null +++ b/src/lib/krb5/krb5_libinit.c @@ -0,0 +1,46 @@ +#include <assert.h> + +#include "krb5.h" +#include "krb5_err.h" +#include "kv5m_err.h" +#include "asn1_err.h" +#include "kdb5_err.h" + +static int initialized = false; + +/* + * Initialize the Kerberos v5 library. + */ + +krb5_error_code krb5int_initialize_library (void) +{ + + if (!initialized) { + add_error_table(&et_krb5_error_table); + add_error_table(&et_kv5m_error_table); + add_error_table(&et_kdb5_error_table); + add_error_table(&et_asn1_error_table); + + initialized = true; + } + + return 0; +} + +/* + * Clean up the Kerberos v5 lirbary state + */ + +void krb5int_cleanup_library (void) +{ + assert (initialized); + + krb5_stdcc_shutdown(); + + remove_error_table(&et_krb5_error_table); + remove_error_table(&et_kv5m_error_table); + remove_error_table(&et_kdb5_error_table); + remove_error_table(&et_asn1_error_table); + + initialized = false; +}
\ No newline at end of file diff --git a/src/lib/krb5/krb5_libinit.h b/src/lib/krb5/krb5_libinit.h new file mode 100644 index 0000000..11d7248 --- /dev/null +++ b/src/lib/krb5/krb5_libinit.h @@ -0,0 +1,9 @@ +#ifndef KRB5_LIBINIT_H +#define KRB5_LIBINIT_H + +#include "krb5.h" + +krb5_error_code krb5int_initialize_library (void); +void krb5int_cleanup_library (void); + +#endif /* KRB5_LIBINIT_H */ |