2005-11-14  Jeffrey Altman <jaltman@mit.edu>

	* rc_io.c: include k5-int.h instead of krb5.h

2005-01-15  Jeffrey Altman <jaltman@mit.edu>

        * rc_dfl.c: Move the extraction of the struct dfl_data
          from the krb5_rcache after obtaining the lock, not before.

2004-08-03  Ken Raeburn  <raeburn@mit.edu>

	* rc-int.h (struct _krb5_rc_ops): Add new member,
	recover_or_init.
	* rc_dfl.c (krb5_rc_dfl_init_locked): New function, with most of
	the content of old krb5_rc_dfl_init.
	(krb5_rc_dfl_init): Call it.
	(krb5_rc_dfl_recover_or_init): New function.
	* rc_dfl.h (krb5_rc_dfl_recover_or_init): Declare.
	* rcdef.c (krb5_rc_dfl_ops): Initialize new field.
	* rc_none.c (krb5_rc_none_recover_or_init): New macro.
	(krb5_rc_none_ops): Initialize new field.
	* rcfns.c (krb5_rc_recover_or_initialize): New function.

2004-07-30  Ken Raeburn  <raeburn@mit.edu>

	* rc_none.c: New file.
	* Makefile.in (SRCS, STLIBOBJS, OBJS): Build it.
	* rc-int.h (krb5_rc_none_ops): Declare.
	* rc_base.c (none): New variable.
	(krb5_rc_typelist_dfl): Add it into the linked list.

2004-07-16  Ken Raeburn  <raeburn@mit.edu>

	* rc_io.c: Don't check for macsock.h.

2004-06-22  Ken Raeburn  <raeburn@mit.edu>

	* rc_io.c (krb5_rc_io_move, krb5_rc_io_sync): Don't test
	macintosh.

2004-06-15  Ken Raeburn  <raeburn@mit.edu>

	* rc_io.c (dir, dirlen): Top-level variables deleted.
	(getdir): Now returns the pointer, doesn't set top-level
	variables.
	(GETDIR): Set local variables dir and dirlen using the function's
	return value.
	(krb5_rc_io_creat, krb5_rc_io_open_internal): Add the new local
	variables.

2004-06-02  Ken Raeburn  <raeburn@mit.edu>

	* rc-int.h (struct krb5_rc_st, struct _krb5_rc_ops, krb5_rc_ops):
	Move type definitions here from k5-int.h.
	(krb5_rc_register_type, krb5_rc_dfl_ops): Move declarations here
	from k5-int.h.
	* rc_dfl.c, rcdef.c, rcfns.c: Include rc-int.h.

2004-05-27  Ezra Peisach  <epeisach@mit.edu>

	* rc_base.c: Include rc-int.h

	* rc-int.h: Create file with prototypes for krb5int_rc_finish_init and 
	krb5int_rc_terminate.

2004-05-24  Ezra Peisach  <epeisach@mit.edu>

	* rc_io.c (krb5_rc_io_open_internal): If file could not be open,
	do not invoke close negative argument.

2004-05-03  Kenneth Raeburn  <raeburn@mit.edu>

	* rc_dfl.c (krb5_rc_dfl_expunge_locked): Declare before use.

2004-04-30  Ken Raeburn  <raeburn@mit.edu>

	* rc_base.c (krb5_rc_resolve_type): Initialize the mutex in the
	replay cache structure.
	(krb5_rc_default, krb5_rc_resolve_full): Destroy it if creation of
	the replay cache fails.
	* rc_dfl.c (krb5_rc_dfl_get_span, krb5_rc_dfl_init): Lock the
	mutex while operating on the replay cache object.
	(krb5_rc_dfl_expunge_locked): Renamed from krb5_rc_dfl_expunge and
	made static.  Call krb5_rc_dfl_recover_locked.
	(krb5_rc_dfl_expunge): New wrapper function, locks the mutex.
	(krb5_rc_dfl_recover_locked): Renamed from krb5_rc_dfl_recover and
	made static.  Call krb5_rc_dfl_expunge_locked.
	(krb5_rc_dfl_recover): New wrapper function, locks the mutex.
	(krb5_rc_dfl_store): Lock the mutex.  Call _expunge_locked.

2004-04-24  Ken Raeburn  <raeburn@mit.edu>

	* rc_base.c (rc_typelist_lock): Use new partial initializer.
	(krb5int_rc_finish_init): New function, finish the mutex
	initialization.
	(krb5int_rc_terminate): New function, destroy the mutex and free
	storage associated with registered types.

2004-03-05  Ken Raeburn  <raeburn@mit.edu>

	* rc_base.c: Include k5-thread.h.
	(rc_typelist_lock): New mutex var.
	(krb5_rc_register_type, krb5_rc_resolve_type): Lock it while
	working with the type list.

2004-03-03  Ken Raeburn  <raeburn@mit.edu>

	* rc_base.c: Delete unused and untested semaphore support.

2003-08-26  Ken Raeburn  <raeburn@mit.edu>

	* rc_dfl.c (alive): Take a timestamp argument instead of the
	context, and don't check the current time here.  All callers
	changed to pass in the current time.
	(rc_store): Take a timestamp argument.  All callers changed to
	pass in the current time.

2003-07-17  Ken Raeburn  <raeburn@mit.edu>

	* Makefile.in (LIBNAME) [##WIN16##]: Don't define.

2003-01-10  Ken Raeburn  <raeburn@mit.edu>

	* Makefile.in: Add AC_SUBST_FILE marker for libobj_frag.

2003-01-07  Ken Raeburn  <raeburn@mit.edu>

	* rc_base.c (struct krb5_rc_typelist): Field "ops" now points to
	const.
	(krb5_rc_register_type): Likewise for "ops" argument.
	* rcdef.c (krb5_rc_dfl_ops): Now const.
	* rc_dfl.h (krb5_rc_dfl_ops): Declaration deleted.

2002-09-05  Ken Raeburn  <raeburn@mit.edu>

	* rc_io.c (krb5_rc_io_move): Missed a variable name change.

2002-09-03  Ken Raeburn  <raeburn@mit.edu>

	* rc_base.c, rc_conv.c, rc_io.c, ser_rc.c: Use prototype style
	function definitions.

	* rc_io.c (errno): Don't declare.
	(krb5_rc_io_move): Avoid variable name "new".
	* rc_dfl.c (cmp, alive): Avoid variable name "new".

2002-08-29  Ken Raeburn  <raeburn@mit.edu>

	* Makefile.in: Revert $(S)=>/ change, for Windows support.

2002-08-23  Ken Raeburn  <raeburn@mit.edu>

	* Makefile.in: Change $(S)=>/ and $(U)=>.. globally.

2002-06-14  Miro Jurisic  <meeroh@mit.edu>

	* rc_io.c, rc_dfl.c: use "" includes for krb5.h and k5-int.h
	[pullup from 1-2-2-branch]

2001-10-09  Ken Raeburn  <raeburn@mit.edu>

	* rc_dfl.h, rc_io.h, ser_rc.c: Make prototypes unconditional.

2001-10-05  Ken Raeburn  <raeburn@mit.edu>

	* rc_io.c: Drop _MSDOS support.

	* rcfns.c: Don't explicitly declare pointers FAR any more.

2001-10-03  Ken Raeburn  <raeburn@mit.edu>

	* ser_rc.c: Don't use KRB5_DLLIMP.

2001-07-24  Ezra Peisach  <epeisach@mit.edu>

	* rc_dfl.c (krb5_rc_io_fetch): Once length element read from
	cache, and verified to be positive, put into unsigned int variable
	for passing to other functions that expect such.

2001-07-04  Ezra Peisach  <epeisach@mit.edu>

	* rc_io.c: Declare krb5_rc_io_open_internal static.

2001-06-21  Danilo Almeida  <dalmeida@mit.edu>

	* rc_io.c (krb5_rc_io_creat): Make cleanup code easier to read.
	(krb5_rc_io_open_internal): Include code previously in
	krb5_rc_open().  Add a new full pathname parameter so that a file
	can be opened by its full pathname.  Make cleanup code easier to
	read.
	(krb5_rc_io_open): Call krb5_rc_io_open_internal().
	(krb5_rc_io_move): Fix Windows implementation so that it works
	where it is used (only called by krb5_rc_dfl_expunge()).
	(krb5_rc_io_sync): Fix function header to comply with coding
	standard.  Add implementation for Windows.
	(krb5_rc_io_close): Close file descriptor only if it is not -1.
	Set file descriptor to -1 if it is successfully closed.

	* rc_dfl.c (krb5_rc_dfl_close_no_free): Leave file descriptor
	check for krb5_rc_io_close().
	(krb5_rc_dfl_expunge): Do better resource cleanup on error.

2001-06-20  Danilo Almeida  <dalmeida@mit.edu>

	* rc_dfl.c, rc_io.c: More compliance with coding standards: use
	ANSI function declarations, use curly braces to fix up #ifdef
	reindenting under Emacs, reindent code, strip trailing whitespace,
	wrap lines, fix commans.  Not finished: fix indenting of curly
	braces in control structures.

2001-01-23  Tom Yu  <tlyu@mit.edu>

	* rc_io.c (getdir): Subtract one from dirlen, since sizeof
	includes the terminating NUL character.  Avoid redundant path
	separators.
	(krb5_rc_io_move): When renaming OLD to NEW, don't copy the
	filename.  This was causing temporary files to get leaked.
	(krb5_rc_io_close): Don't FREE if d->fn is NULL.

2001-01-16  Ken Raeburn  <raeburn@mit.edu>

	* rcfns.c: New file, with function versions of former dispatch
	macros from krb5.h.
	* Makefile.in (STLIBOBJS, OBJS, SRCS): Add it.

2000-09-21  Ezra Peisach  <epeisach@mit.edu>

	* rc_io.h (struct krb5_rc_iostuff): Internal structure - change
	position in file from long to off_t (as argument for lseek). 

	* rc_io.c (krb5_rc_io_read, krb5_rc_io_write): Unsigned vs signed
	warnings cleanup.

	* rc_dfl.c (alive): Do not shadow time() with variable named for same. 

	* rc_base.c (krb5_rc_resolve_full): Cleanup unsigned vs. signed
	warnings.

	
2000-06-29  Ezra Peisach  <epeisach@engrailed.mit.edu>

	* rc_io.c (krb5_rc_io_creat): Cast getpid() to int.
	(Use of a long might overflow buffer if pid_t is 64 bits */

2000-04-28  Nalin Dahyabhai  <nalin@redhat.com>

	* rc_io.c (getdir): Don't check dirlen again, the call sites
	always do.  Fix dirlen calculation.

1999-10-26  Wilfredo Sanchez  <tritan@mit.edu>

	* Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
	LOCAL_INCLUDES such that one can override CFLAGS from the command
	line without losing CPP search patchs and defines. Some associated
	Makefile cleanup.

1999-09-21  Ken Raeburn  <raeburn@mit.edu>

	* rc_dfl.c (krb5_rc_io_fetch): Set client and server fields to
	NULL after freeing them in the error case.

Mon May 10 15:26:53 1999  Danilo Almeida  <dalmeida@mit.edu>

	* Makefile.in: Do win32 build in subdir.

Tue Apr  6 16:10:44 1999  Theodore Y. Ts'o  <tytso@mit.edu>

	* rc_io.c (krb5_rc_io_move): Workaround the fact that Windows has
		really poor emulation of POSIX functions such as rename.
		(In fact, it has completely different semantics for this
		call!)  Fix supplied by Tom Sanfilippo (txn# 2184 in krb5dev)

1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Makefile.in: Set the myfulldir and mydir variables (which are
		relative to buildtop and thisconfigdir, respectively.)

Fri Feb 27 18:03:33 1998  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Makefile.in: Changed thisconfigdir to point at the lib/krb5
 		directory, since we've moved the configure.in tests in
 		this directory to the toplevel lib/krb5 configure.in

Wed Feb 18 16:25:34 1998  Tom Yu  <tlyu@mit.edu>

	* Makefile.in: Remove trailing slash from thisconfigdir.  Fix up
	BUILDTOP for new conventions.

Mon Feb  2 17:01:50 1998  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Makefile.in: Define BUILDTOP and thisconfigdir in the Makefile

Thu Sep 25 21:28:41 1997  Tom Yu  <tlyu@mit.edu>

	* rc_io.c: Replace KRB5_USE_INET with something more sane.

Tue Mar 25 01:15:39 1997  Theodore Y. Ts'o  <tytso@mit.edu>

	* rc_io.c (krb5_rc_io_open): rcache owner should be checked against
		the effective uid, not the real uid.  [krb5-libs/366]

Sat Feb 22 22:44:15 1997  Richard Basch  <basch@lehman.com>

	* Makefile.in: Use some of the new library list build rules in
		win-post.in

Thu Nov 21 11:55:16 EST 1996    Richard Basch   <basch@lehman.com>

        * Makefile.in: win32 build

	* rc_dfl.c, rc_dfl.h: Win32/DLL calling conventions for rcache
		functions.  (Most rcache routines are still not exported
		pending an API review).

Thu Jan  2 17:21:44 1997  Tom Yu  <tlyu@mit.edu>

	* Makefile.in:
	* configure.in: Update to new library build procedure.

Mon Nov 18 15:25:51 1996  Theodore Y. Ts'o  <tytso@mit.edu>

	* rc_dfl.c: Apply jik's fix to allow the expunging of the replay
		cache to happen correctly. [174,132]

Mon Jun 10 21:52:38 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* rc_io.c: Change _WINDOWS to _MSDOS, and add check for _WIN32.

Sat Feb 24 18:53:33 1996  Theodore Y. Ts'o  <tytso@dcl>

	* rc_io.c (krb5_rc_io_creat, krb5_rc_io_open): Use Windows path
		separator, if appropriate.  Under Windows also use the
		environment variables TEMP and TMP for the replay cache.

Fri Dec  1 17:07:24 1995  Theodore Y. Ts'o  <tytso@dcl>

	* rc_io.c (krb5_rc_io_creat): In case of permission problems,
		don't unlink the old replay cache; make it a hard
		(repeatable) error.  This also reduces the chance we
		accidentally delete valuable data.

Mon Nov 27 14:52:23 1995  Tom Yu  <tlyu@dragons-lair.MIT.EDU>

	* rc_dfl.c (krb5_rc_dfl_init): default lifespan to
		context->clockskew in case some app can't get at the
		internals of the context struct.

Fri Oct  6 22:05:31 1995  Theodore Y. Ts'o  <tytso@dcl>

	* Makefile.in: Remove ##DOS!include of config/windows.in.
		config/windows.in is now included by wconfig.

Mon Sep 25 16:58:40 1995  Theodore Y. Ts'o  <tytso@dcl>

	* Makefile.in: Removed "foo:: foo-$(WHAT)" lines from the
		Makefile. 

Wed Sep  6 12:00:00 1995  James Mattly  <mattly@fusion.com>
	* rc_io.c:  turn off a call to fsync which MACINTOSH doesn't support


Thu Aug 31 14:13:21 EDT 1995	Paul Park	(pjpark@mit.edu)
	* rc_base.c - Set magic number in rcache structure after successfully
		resolving the replay cache.


Tue Aug 29 14:19:54 EDT 1995	Paul Park	(pjpark@mit.edu)
	* Makefile.in, .Sanitize, ser_rc.c - Add routines to serialize rcache.

Fri Aug  4 22:07:46 1995  Tom Yu  <tlyu@dragons-lair.MIT.EDU>

	* rc_conv.c (krb5_auth_to_rep): Add parens to shut up gcc -Wall

	* rc_io.c: Add parens to shut up gcc -Wall

	* rc_dfl.c: Add parens to shut up gcc -Wall

	* rc_base.c: Add parens to shut up gcc -Wall

Thu Jul 20 22:34:47 1995  Mark Eichin  <eichin@cygnus.com>

	* rc_dfl.c (rc_store): rename from store() to avoid conflict with
	dbm function of same name (and different prototype.)

Wed July  5 15:52:31 1995  James Mattly  <mattly@fusion.com>
	* rc_io.c added HAVE_MACSOCK_H, change open to THREEPARAMOPEN

Fri Jun  9 19:34:38 1995    <tytso@rsx-11.mit.edu>

	* configure.in: Remove standardized set of autoconf macros, which
		are now handled by CONFIG_RULES.

Fri May 26 20:21:19 1995  Theodore Y. Ts'o  (tytso@dcl)

	* configure.in, Makefile.in: Add support for building shared libraries.

Tue May 23 16:30:29 1995  Theodore Y. Ts'o  (tytso@dcl)

	* rc_io.c: Rearrange #include files so that krb5.h gets included
		first, so that the debugging information can be more
		efficiently collapsed since the type numbers will be the
		same.

Mon May  1 23:10:26 1995  Theodore Y. Ts'o  (tytso@dcl)

	* rc_dfl.c (krb5_rc_dfl_recover): Fix memory leaks in this
		function.  The krb5_donot_replay structure was not being
		freed properly.

Thu Apr 13 15:49:16 1995 Keith Vetter (keithv@fusion.com)

	* *.[ch]: removed unneeded INTERFACE from non-api functions.

Fri Mar 31 16:44:34 1995  Theodore Y. Ts'o  (tytso@dcl)

	* rc_dfl.c (krb5_rc_dfl_expunage): Close the old, temporary reply
		cache after we're done expunging it.

	* rc_io.c (krb5_rc_io_move): Make duplicate copies of the filename
		and the file descriptor (via malloc/strcpy and dup), so
		that the old rc_io object can be cleanly closed without
		affecting the new rc_io object.

Fri Mar 17 20:27:41 1995  John Gilmore  (gnu at toad.com)

	* Makefile.in (LDFLAGS):  Eliminate duplicate of config/pre.in.

Tue Mar 7 21:40:18 1995 Keith Vetter (keithv@fusion.com)

	* Makefile.in: changed library name for the PC.

Tue Mar  7 19:54:32 1995  Mark Eichin  <eichin@cygnus.com>

	* configure.in: take out ISODE_DEFS, ISODE_INCLUDE.

Tue Mar 7 12:33:29 1995 Keith Vetter (keithv@fusion.com)

	* rc_io.c: moved the enabling defines for low-level io, e.g. read,
           write, lseek, etc., out of here and into k5-config.h.

Thu Mar 2 11:55:00 1995 Keith Vetter (keithv@fusion.com)

	* rc_io.c: changed NEED_WINSOCK_H to NEED_SOCKETS

Wed Mar 1 12:03:30 1995 Keith Vetter (keithv@fusion.com)

	* *.c, *.h Added windows INTERFACE keyword
	* Makefile.in: made to work on the PC.
        * rc_dfl.c: Some int/long changes for the PC
        * rc_io.c: hack to get Microsoft C in std-c mode to allow
           low-level i/o routines. Probably not a permanent solution
           but keep until we decide on a better method.
        * rc_io.h: added 2 missing prototypes
        * rc_dfl.h: added 2 missing prototypes

Tue Feb 28 01:03:34 1995  John Gilmore  (gnu at toad.com)

	* *.c:  Avoid <krb5/...> includes.

Fri Jan 13 15:23:47 1995  Chris Provenzano (proven@mit.edu)

    * Added krb5_context to all krb5_routines

Thu Dec 22 15:44:50 1994  Theodore Y. Ts'o  (tytso@dcl)

	* configure.in: Add test for uid_t.

Fri Oct 14 23:12:00 1994  Theodore Y. Ts'o  (tytso@dcl)

	* configure.in: Add ISODE_DEFS rule.

Mon Oct  3 19:32:59 1994  Theodore Y. Ts'o  (tytso@dcl)

	* rc_def.c (krb5_rc_dfl_recover): krb5_rc_io_size was being called
		(still) with the wrong type argument.  Should have been &t->d.

Fri Sep 30 21:59:08 1994  Theodore Y. Ts'o  (tytso@dcl)

	* rc_def.c (krb5_rc_dfl_ops): Add placeholder for magic number

Thu Sep 29 22:11:20 1994  Theodore Y. Ts'o  (tytso@dcl)

	* rc_dfl.c (krb5_rc_dfl_recover): krb5_rc_io_size was being called
		with the wrong type argument.  I have no idea how it was


Thu Sep  8 23:34:53 1994  Theodore Y. Ts'o  (tytso@pinata)

	* rc_io.c: The variables dirlen and dir were declared global, and
		didn't need to be; changed to be static.

Sat Aug 20 00:09:37 1994  Theodore Y. Ts'o  (tytso at tsx-11)

	* rc_dfl.c (krb5_rc_dfl_expunge): name (t->name) was getting freed
	and we tried to use it.  Clear t->name to stop it from being
	freed, and then free it later.

Mon Jun 20 19:37:13 1994  Theodore Y. Ts'o  (tytso at tsx-11)

	* rc_base.h: #include <krb5/osconf.h> so that build works using	imake. 

