[2230] in Kerberos_V5_Development

home help back first fref pref prev next nref lref last post

WARNING: new comerr in recent NT check-in

daemon@ATHENA.MIT.EDU (Richard Basch)
Sat Feb 15 19:01:08 1997

Date: Sat, 15 Feb 1997 19:00:18 -0500
To: krbdev@MIT.EDU
From: "Richard Basch" <basch@lehman.com>

I just completed another substantial check-in for NT related changes
into the mainline.  There are a couple things you should all be aware
of:

Instead of registering an error table by modifying a global linked list
and variable, there are now functions to register and remove error tables:

	add_error_table(struct error_table *)
	remove_error_table(struct error_table *)

The generated error table .c and .h files now refer to these instead of
referencing _et_list directly.  Also, the generated files include a
routine to remove the error table.  So, there will be:

	initialize_XXX_error_table(void)
	cleanup_XXX_error_table(void)

The Windows DLL will initialize and cleanup the error tables in the krb5
and gssapi libraries.  krb5_finish_ets(krb5_context) has been added to
complement the existing krb5_init_ets(krb5_context), and will call the
cleanup functions.  krb5_init_context still calls krb5_init_ets, but
krb5_finish_context does not call krb5_finish_ets, because multiple
contexts may be in use simultaneously.  Under Windows, these calls to
the krb5_init_ets and krb5_finish_ets functions are done in the DLL
entry/exit routines, and extra calls will not hurt matters.  This is one
area in need of clean-up (but at least it is functional)!!!

What to watch out for
---------------------
For Kerberos developers:
	You must remove all existing generated error table files; the
	Unix make procedure does not detect that they need rebuilding
	because et_[ch].awk have been updated.  Failure to rebuild
	these files will result in "undefined" objects during linking.

For Windows Users (release notes):
	The error table handling has been separated out of the core
	Kerberos library and is now handled by a separate DLL.
	Applications must be re-linked against the new comerr library
	(comerr16.lib for 16-bit applications and comerr32.lib for
	32-bit applications).  The new DLLs (comerr16.dll for 16-bit
	and comerr32.dll for 32-bit) must also be copied either
	to the Windows system directory or the directory in which
	the applications are being executed.

-- 
Richard Basch                   
Sr. Developer/Analyst, DSO      URL: http://web.mit.edu/basch/www/home.html
Lehman Brothers, Inc.           Email: basch@lehman.com, basch@mit.edu
101 Hudson St., 38th Floor      Fax:   +1-201-524-5828
Jersey City, NJ 07302-3988      Voice: +1-201-524-5049


home help back first fref pref prev next nref lref last post