2005-01-12  Tom Yu  <tlyu@mit.edu>

	* dnsglue.c (krb5int_dns_fini): Reorder to make more correct.
	(krb5int_dns_init): Rework error handling.  Call res_ndestroy() or
	res_nclose() as appropriate to avoid leaking resources allocated
	by res_ninit().

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

        * thread_safe.c: (new file) krb5_is_thread_safe()

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

	* accessor.c (krb5int_accessor): Set new field use_dns_kdc.

2004-12-06  Tom Yu  <tlyu@mit.edu>

	* locate_kdc.c (krb5_locate_srv_dns_1): Don't compile if
	KRB5_DNS_LOOKUP is not defined.

2004-11-19  Ken Raeburn  <raeburn@mit.edu>

	* locate_kdc.c (krb5int_add_host_to_list): If debugging, log the
	requested family and socket type.  If AI_NUMERICSERV is defined,
	set it in ai_flags.  If getaddrinfo returns an error with
	debugging enabled, log the error.
	(krb5_locate_srv_conf_1): When logging an error from
	add_host_to_list, include the corresponding error string.

	* t_locate_kdc.c: Include port-sockets.h, instead of sys/socket.h,
	netdb.h, netinet/in.h, and arpa/inet.h.
	* Makefile.in ($(OUTPRE)t_locate_kdc.exe): New target.

2004-10-20  Ken Raeburn  <raeburn@mit.edu>

	* locate_kdc.c: Include stdarg.h.
	(Tprintf): New function, prints to stderr or not depending on TEST
	macro.
	(add_addrinfo_to_list, krb5int_add_host_to_list,
	krb5_locate_srv_conf_1, krb5_locate_srv_dns_1,
	krb5int_locate_server): Call it instead of conditionally calling
	fprintf.

2004-10-19  Ken Raeburn  <raeburn@mit.edu>

	* dnssrv.c (krb5int_make_srv_query_realm): Append a dot to the
	hostname, if there's room in the buffer, to avoid domain search
	paths.

2004-10-19  Tom Yu  <tlyu@mit.edu>

	* dnsglue.c (initparse): Skip query type and class when we lack
	ns_initparse().
	(krb5int_dns_nextans) [!HAVE_NS_INITPARSE]: Pass correct pointer
	to dn_skipname().  Actually skip the RR name.

2004-10-18  Ken Raeburn  <raeburn@mit.edu>

	* Makefile.in (TEST_PROGS): Add t_locate_kdc.
	(check-unix): Run t_locate_kdc to test fetching DNS SRV records.
	(EXTRADEPSRCS): Define.

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

	* localaddr.c (foreach_localaddr): Be more careful not to walk
	past the end of the ifreq array.
	(get_ifreq_array): Return 0 in success case, not errno.
	(print_addr): If getnameinfo returns EAI_SYSTEM, report what the
	system error is.

	* localaddr.c (get_ifreq_array): Split out from foreach_localaddr
	general version.
	(foreach_localaddr): Call it.

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

	* localaddr.c (foreach_localaddr) [HAVE_STRUCT_IF_LADDRCONF && 0]:
	Fix if_laddrreq.iflr_name field name not properly adjusted.  The
	iflr_addr field is an HP-UX specific sockaddr_ext with sa_ field
	name prefixes.

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

	* localaddr.c (get_if_laddrconf, foreach_localaddr): New
	implementation for HP-UX 11, based on Solaris support and
	information from Doug Engert.  Disabled for now, until it can be
	tested.

2004-09-30  Jeffrey Altman <jaltman@mit.edu>

        * hst_realm.c: provide definition for MAXDNAME if 
          KRB5_DNS_LOOKUP is not defined.

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

	* Makefile.in (T_STD_CONF_OBJS): Include dnsglue.o.

2004-09-21  Tom Yu  <tlyu@mit.edu>

	* dnsglue.c: Conditionalize some stuff on ns_initparse() instead
	of assuming that the presence of res_nsearch() means
	ns_initparse() is available.

2004-09-20  Tom Yu  <tlyu@mit.edu>

	* Makefile.in (STLIBOBJS, OBJS, SRCS): Add dnsglue.c.

	* dnsglue.c: New file.  Implement resolver glue layer to abstract
	away the details of calling res_search or res_nsearch, and of
	parsing the reply packet.

	* dnsglue.h: New file.

	* dnssrv.c (krb5int_make_srv_query_realm): Use dnsglue.  Use
	MAXDNAME from dnsglue.h or resolv.h instead of MAX_DNS_NAMELEN.

	* hst_realm.c (krb5_try_realm_txt_rr): Use dnsglue.  Use MAXDNAME
	from dnsglue.h or resolv.h instead of MAX_DNS_NAMELEN.

2004-09-13  Tom Yu  <tlyu@mit.edu>

	* dnssrv.c: 
	* hst_realm.c: 
	* locate_kdc.c: Include netinet/in.h as a prerequisite for
	resolv.h.

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

	* sendto_kdc.c (start_connection) [DEBUG]: Log the local socket
	address.

2004-08-12  Alexandra Ellwood  <lxs@mit.edu>

        * ccdefname.c (krb5_cc_set_default_name, krb5_cc_default_name):
        Look up the default ccache name in krb5_cc_default_name, not
        krb5_cc_set_default_name so that krb5_init_context doesn't
        have to do work it might never use.

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

	* localaddr.c (get_lifconf): Define only if "struct lifconf" is
	available.
	(foreach_localaddr): Use get_lifconf only if "struct lifconf" is
	available.

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

	* genaddrs.c, localaddr.c, lock_file.c, mk_faddr.c: Don't check
	for macsock.h.

2004-07-15  Alexandra Ellwood  <lxs@mit.edu>

	* init_os_ctx.c (krb5_os_init_context, krb5_os_free_context) 
          ccdefname.c (krb5_cc_set_default_name):
        Removed default_ccprincipal field from krb5_context

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

	* dnssrv.c (krb5int_make_srv_query_realm) [HAVE_RES_NSEARCH]: Use
	res_nsearch instead of res_search.
	* hst_realm.c (krb5_try_realm_txt_rr) [HAVE_RES_NSEARCH]:
	Likewise.

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

	* an_to_ln.c: Include string.h.

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

	* an_to_ln.c (db_an_to_ln): Don't test macintosh.
	* krbfileio.c (krb5_sync_disk_file): Likewise.
	* kuserok.c: Likewise.
	* prompter.c: Likewise.
	* promptusr.c: Likewise.
	* read_pwd.c: Likewise.

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

	* c_ustime.c: Include k5-thread.h.
	(get_time_now): New function, holds system-dependent code.
	(krb5int_us_time_mutex): New mutex.
	(struct time_now): New type.
	(last_time): New variable, replaces old last_tv, last_sec,
	last_usec.
	(krb5_crypto_us_timeofday): Rewrite.  Do locking around access to
	previously returned value, and ensure that we don't return
	duplicate values.
	* os-proto.h: Include k5-thread.h.
	(krb5int_us_time_mutex): Declare.

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

	* kuserok.c (krb5_kuserok): Handle draft POSIX versions of
	getpwnam_r.

2004-06-02  Tom Yu  <tlyu@mit.edu>

	* an_to_ln.c (do_replacement): Patch from Bill Dodd to fix missing
	braces in previous security patch.

2004-06-01  Sam Hartman  <hartmans@mit.edu>

	* an_to_ln.c (rule_an_to_ln): Fix buffer overflow when parsing
	principal names into components. 
	(do_replacement): likewise
	(aname_replacer): Support error return from do_replacement

2004-05-07  Sam Hartman  <hartmans@mit.edu>

	* an_to_ln.c: Patch from Matt Crawford  to allow matching on
	realms of cross-realm principals.

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

	* localaddr.c: Incorporate foreach_localaddr implementation.
	Export it as krb5int_foreach_localaddr.  Include foreachaddr.h,
	not foreachaddr.c.

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

	* sendto_kdc.c (krb5int_sendto): Initialize select_state.end_time.
	(get_so_error): New function.
	(service_tcp_fd): Call it for write fds as well as exception fds.

2004-03-18  Ezra Peisach  <epeisach@mit.edu>

	* sendto_kdc.c (krb5_sendto_kdc): Change passing pointer to value of
	use_master parameter to krb5_locate_kdc.

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

	* lock_file.c (krb5_lock_file): Initialize flock data on entry,
	but don't bother with a static version to copy from.

2004-02-26  Jeffrey Altman <jaltman@mit.edu>

    * sendto_kdc.c, send524.c:
      The use_master parameter of sendto_kdc is now an in/out 
      parameter used to report to the caller whether or not
      the responding KDC was in fact the master.  This is 
      necessary to allow callers to prevent making an unnecessary
      additional call to query the master if the original 
      query did not explicitly state that the master should be 
      queried.

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

	* sendto_kdc.c (start_connection): Close socket if connect() call
	fails for an unexpected reason.

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

	* genaddrs.c: Don't specify defaults for
	GET{PEER,SOCK}NAME_ARG{2,3}_TYPE macros.

2004-02-09  Sam Hartman  <hartmans@mit.edu>

	* changepw.c (krb5_locate_kpasswd): Run htons on the default port

2003-12-22  Jeffrey Altman <jaltman@mit.edu>

    * dnssrv.c:  wrap within #ifdef KRB5_DNS_LOOKUP to prevent references
      to resolver functions when DNS support is not being compiled 

2003-12-19  Ken Raeburn  <raeburn@mit.edu>

	* realm_iter.c (krb5_realm_iterator_create): Array NAMES is now
	const.

	* prompter.c (catch_signals, restore_signals): Take pointer to old
	signal handler info as new argument.
	(osiginfo): New typedef.
	(setup_tty, restore_tty): Take pointer to old signal handler info
	and old termios settings as new arguments.
	(krb5_prompter_posix): Pass the extra arguments, addresses of new
	automatic variables.
	(osigint, saveparm): Variables deleted.

	* Makefile.in (STLIBOBJS, OBJS, SRCS): Don't build promptusr.c.

	* sendto_kdc.c (default_debug_handler, put, putstr): Define only
	if DEBUG is defined.
	(DEBUG): Don't define.
	(krb5int_sendtokdc_debug_handler): Initialize to null if DEBUG is
	not defined.

2003-12-18  Jeffrey Altman <jaltman@mit.edu>

    * accessor.c: Add new functions for use by gssapi

2003-12-12  Tom Yu  <tlyu@mit.edu>

	* an_to_ln.c (krb5_aname_to_localname): Don't write one byte past
	the end of a string.  Found by Christopher Nebergall.

2003-10-27  Jeffrey Altman <jaltman@mit.edu>

    * sendto_kdc.c: sockets must be closed with closesocket() and 
      and not close() in order to ensure portability among different
      operating systems.

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

	* dnssrv.c: New file; split out DNS SRV RR query support...
	* locate_kdc.c: ...from here.  Always compile in the calls.
	* Makefile.in (STLIBOBJS, OBJS, SRCS): Add it.

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

	* locate_kdc.c (krb5_locate_kdc): Always pass 0 to locate_server
	as the get_masters argument.  Instead, if get_masters is set,
	look up "master_kdc" in the config file instead of "kdc".

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

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

2003-07-09  Alexandra Ellwood  <lxs@mit.edu>

        * toffset.c: Export krb5_set_real_time for Samba.

2003-06-06  Ken Raeburn  <raeburn@mit.edu>

	* locate_kdc.c (struct srv_dns_entry): Moved to k5-int.h.
	(krb5int_make_srv_query_realm): Renamed from make_srv_query_realm.
	(krb5int_free_srv_dns_data): New function.
	(krb5_locate_srv_dns_1): Use it.

	* accessor.c (krb5int_accessor): Fill in make_srv_query_realm and
	free_srv_dns_data fields.

2003-06-05  Ken Raeburn  <raeburn@mit.edu>

	* locate_kdc.c (make_srv_query_realm): Punt if strdup fails.
	Always return what data we can, even if memory allocation or other
	problems prevent us from returning more.
	(krb5_locate_srv_dns_1): Always return what data we can.  Fix
	memory leak.  Free up temporary storage as quickly as possible,
	while building up address list to return.

2003-06-03  Ken Raeburn  <raeburn@mit.edu>

	* accessor.c (krb5int_accessor): Initialize restored locate_server
	field.

	* locate_kdc.c (struct srv_dns_entry): Move to top level.
	(make_srv_query_realm): Separate from krb5_locate_srv_dns_1; just
	do query and return results.
	(krb5_locate_srv_dns_1): Call it, and build addlist entries.
	Check for one RR with a target of ".", and return an error.
	(krb5_locate_srv_dns): Deleted.

	* t_locate_kdc.c (main): Call krb5_locate_srv_dns_1.

	* changepw.c (krb5_locate_kpasswd): Check specifically for certain
	errors before using fallback heuristics.

2003-06-03  Alexandra Ellwood  <lxs@mit.edu>

        * init_os_ctx.c: Included header to get __KLAllowHomeDirectoryAccess().

2003-05-27  Ken Raeburn  <raeburn@mit.edu>

	* send524.c (krb5int_524_sendto_kdc): Enable support on Windows
	always.

2003-05-24  Ken Raeburn  <raeburn@mit.edu>

	* send524.c: New file, moved from krb524/sendmsg.c.  Rename
	function to have krb5int_ prefix.  If KRB5_KRB4_COMPAT not
	defined, return an error.
	* accessor.c (krb5int_accessor): Update for deleted and added
	fields.  If KRB5_KRB4_COMPAT is not defined, just use null
	pointers for the new fields.

2003-05-06  Alexandra Ellwood  <lxs@mit.edu>

        * init_os_ctx.c: Added support for KLL's __KLAllowHomeDirectoryAccess()
        function so that krb4, krb5 and gssapi will not access the user's homedir
        if the application forbids it.

2003-04-28  Sam Hartman  <hartmans@mit.edu>

	* changepw.c (krb5_change_set_password): Locate server in realm of
	creds.server, not in realm of target principal because target
	principal is null in the  changepw case.

2003-04-28  Ken Raeburn  <raeburn@mit.edu>

	* init_os_ctx.c (krb5_os_init_context, krb5_os_free_context):
	Don't allocate or free the os_context, since it's now a direct
	member of the krb5_context, not separately allocated storage.

2003-04-27  Sam Hartman  <hartmans@mit.edu>

	* changepw.c (krb5_change_set_password): Call
	krb5_setpw_result_code_string not krb5_setpw_result_code_string  

2003-04-24  Sam Hartman  <hartmans@mit.edu>

	* changepw.c (krb5_change_set_password): return error from
	auth_con_setaddrs not last socket errno if auth_con_setaddrs fails 

2003-04-15  Sam Hartman  <hartmans@mit.edu>

	* changepw.c (krb5_change_set_password): Patches from Paul Nelson
	to implement Microsoft set password protocol  
	(krb5_set_password_using_ccache): Use kadmin/changepw in target realm, not local realm and use a two-component principal
	(krb5_change_set_password): Find the kpasswd server for the realm
	of the target principal not the client 

2003-04-13  Ken Raeburn  <raeburn@mit.edu>

	* read_pwd.c (krb5_read_password): Always free temporary storage
	used for verification version of password.

2003-03-06  Alexandra Ellwood <lxs@mit.edu>

    * c_ustime.c: Removed Mac OS 9 code.
    
    * ccdefname.c: Conditionalize on USE_CCAPI and not TARGET_OS_MAC
    so Darwin builds work.
    
    * init_os_ctx.c: Modified to use DEFAULT_SECURE_PROFILE_PATH and
    DEFAULT_PROFILE_PATH for KfM homedir-relative config files.
    
    * read_pwd.c: Cast to remove const warnings.
    
    * timeofday.c: Do the same thing on the Mac as on Unix.

2003-03-04  Sam Hartman  <hartmans@mit.edu>

	* sendto_kdc.c (service_tcp_fd): Don't call shutdown on end of write because some implementations cannot deal with half-closed TCP sockets.

2003-02-08  Tom Yu  <tlyu@mit.edu>

	* prompter.c (krb5_prompter_posix): Kill echo before printing
	prompt to avoid possible race conditions in test suite.

2003-02-06  Tom Yu  <tlyu@mit.edu>

	* prompter.c (krb5_prompter_posix, setup_tty, restore_tty): Fix to
	use the actual file descriptor we dup()'ed to in case tcsetattr()
	doesn't actually change the underlying device modes and instead
	only affects the specific file descriptor.

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

	* locate_kdc.c (translate_ai_error): Handle EAI_ADDRFAMILY like
	EAI_NONAME.
	(krb5int_add_host_to_list): Translate errors returned from the
	second getaddrinfo call.

2003-02-04  Tom Yu  <tlyu@mit.edu>

	* prompter.c (krb5_prompter_posix): Rewrite to no longer use
	longjmp(), as well as to get a non-buffered stdio stream on stdin
	to avoid passwords staying around in stdio buffers.  This does
	have the side effect of possibly losing pre-buffered input from an
	application that reads from stdin using stdio functions prior to
	calling the prompter, but hopefully those are rare.

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>

	* sendto_kdc.c (state_strings): Now const.

2002-12-06  Tom Yu  <tlyu@mit.edu>

	* accessor.c (krb5int_accessor): Add add_host_to_list.

	* changepw.c (krb5_locate_kpasswd): Update calls to
	krb5_locate_kdc().

	* locate_kdc.c (add_host_to_list): Renamed to
	krb5int_add_host_to_list(), with macro to deal with existing
	callers in this file.  Now takes an argument to indicate protocol
	family.  Callers updated accordingly to also take protocol family
	arguments.

	* os-proto.h: Update prototype of krb5_locate_kdc().

	* sendto_kdc.c (krb5_sendto_kdc): Update calls to
	krb5_locate_kdc().
	(krb5int_sendto): UDP reply length is in.pos-in.buf, not
	in.bufsize.

	* t_locate_kdc.c (main): Update call to krb5_locate_kdc().

	* t_std_conf.c (test_locate_kdc): Update call to krb5_locate_kdc().

2002-11-14  Tom Yu  <tlyu@mit.edu>

	* changepw.c: Remove reference to adm_err.h.

2002-11-12  Ken Raeburn  <raeburn@mit.edu>

	* Makefile.in (t_locate_kdc): Use normal CC_LINK rule for linking
	test program.

2002-10-28  Ken Raeburn  <raeburn@mit.edu>

	* localaddr.c (print_addr) [TEST]: Don't mix size_t and socklen_t,
	just assume socklen macro will return a socklen_t value.  Cast
	buffer size to socklen_t in getnameinfo call.

2002-10-22  Ezra Peisach  <epeisach@bu.edu>

	* sendto_kdc.c (service_tcp_fd): If DEBUG defined, ensure that
	initialization of variable not bypassed by goto.

2002-10-15  Tom Yu  <tlyu@mit.edu>

	* hst_realm.c (krb5_try_realm_txt_rr): Apply patch from Nalin
	Dahyabhai to bounds-check return value from res_search().

	* locate_kdc.c (krb5_locate_srv_dns_1): Apply patch from Nalin
	Dahyabhai to bounds-check return value from res_search().

2002-10-11  Tom Yu  <tlyu@mit.edu>

	* read_pwd.c (krb5_read_password): Restore name of size_return.
	Set *size_return after successful call to krb5_prompter_posix,
	since some callers were actually checking, e.g. kadm5.

2002-10-10  Sam Hartman  <hartmans@mit.edu>

	* read_pwd.c (krb5_read_password): Reimplement in terms of krb5_prompter_posix for unix


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

	* sendto_kdc.c (krb5int_cm_call_select): Fix last change.


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

	* sendto_kdc.c (krb5int_cm_call_select): If timeout value has
	tv_sec==0, treat it as meaning "no timeout".
	(krb5int_debug_fprint): Handle null timeval pointer.

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

	* sendto_kdc.c: Include cm.h.
	(struct select_state, SSF_READ, SSF_WRITE, SSF_EXCEPTION): Moved
	to cm.h.
	(DEBUG): Define.
	(krb5int_debug_sendto_kdc): Initialize to zero.
	(default_debug_handler, put, putstr): New functions.
	(krb5int_sendtokdc_debug_handler): New variable.
	(krb5int_debug_fprint): Don't write to stderr; instead, pass
	strings to the debug output handlers above.
	(struct incoming_krb5_message): Broken out from struct
	conn_state.
	(krb5int_cm_call_select): Renamed from call_select; callers
	updated.  Now extern.  Display max fd number in debugging call,
	not nfds.

2002-09-17  Sam Hartman  <hartmans@mit.edu>

	* genaddrs.c (krb5_auth_con_genaddrs): Return errno if getpeername fails

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

	* sendto_kdc.c (service_fds): Fix bug in last change.
	(krb5int_debug_fprint): Use 'out' consistently, minimize explicit
	references to stderr.  Flush output before returning.
	(dperror) [_WIN32]: Shorten message.
	(start_connection, service_tcp_fd, service_fds, krb5int_sendto):
	Use dprint instead of dfprintf.

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

	* sendto_kdc.c (struct conn_state): Add new function pointer field
	'service' for the fd service routine.
	(setup_connection): Initialize it.
	(service_fd): Deleted.
	(service_fds): Incorporate debug output from service_fd.  Call
	service routine indicated in connection info.  Decrement select fd
	count for each flag set for a file descriptor.  Ensure that the
	index into the conns array doesn't run off the end.
	(krb5int_debug_fprint): Fetch correct type for %E.

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

	* locate_kdc.c (get_port): Skip service name lookup, just use the
	supplied numbers.
	(add_host_to_list): If a second port number is supplied, look up
	AF_INET addresses only, and only for SOCK_DGRAM type entries.
	Ignore errors in the second address lookup.
	(krb5_locate_srv_conf_1) [TEST]: More debugging code.

	* t_locate_kdc.c (main): Add new argument -m for looking up master
	KDC addresses.


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

	* accessor.c, an_to_ln.c, c_ustime.c, ccdefname.c, changepw.c,
	def_realm.c, free_hstrl.c, free_krbhs.c, full_ipadr.c, gen_port.c,
	gen_rname.c, genaddrs.c, get_krbhst.c, gmt_mktime.c, hostaddr.c,
	hst_realm.c, init_os_ctx.c, krbfileio.c, ktdefname.c, kuserok.c,
	localaddr.c, locate_kdc.c, lock_file.c, mk_faddr.c, net_read.c,
	net_write.c, port2ip.c, prompter.c, promptusr.c, read_msg.c,
	read_pwd.c, realm_dom.c, realm_iter.c, sendto_kdc.c, sn2princ.c,
	t_an_to_ln.c, t_gifconf.c, t_locate_kdc.c, t_realm_iter.c,
	t_std_conf.c, timeofday.c, toffset.c, unlck_file.c, ustime.c,
	write_msg.c: Use prototype-style function definitions.

	* c_ustime.c, timeofday.c: Don't declare errno.
	* hst_realm.c (krb5_try_realm_txt_rr), locate_kdc.c
	(krb5_locate_srv_dns_1): Avoid variable name "class".
	* sendto_kdc.c (enum conn_states): Define separately from
	conn_state 'state' field declaration.

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

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

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

	* sendto_kdc.c (merge_addrlists): Truncate source address list
	after copying its data into the destination list.

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

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

	* locate_kdc.c (krb5int_grow_addrlist): Renamed from grow_list,
	now external.
	(grow_list): New macro.
	(krb5_locate_kdc): Don't look up kerberos-sec for TCP service.

	* sendto_kdc.c (MAX_PASS, dprint): New macros.
	(krb5int_debug_fprint, merge_addrlists): New function.
	(krb5int_debug_sendto_kdc): New variable.
	(krb5_sendto_kdc): Use dprint.  Call krb5int_locate_kdc in two
	places, with socket type selection done separately.
	(debug_log_connect): Function deleted; use dprint instead.
	(dperror): Use dprint.
	(print_fdsets): Function deleted; use dprint instead.
	(struct conn_state): Use struct instead of union so incoming and
	outgoing buffer pointers can co-exist.  Add INITIALIZING state.
	(state_strings): Add INITIALIZING.
	(krb5int_sendto_udp, krb5int_sendto_tcp): Functions integrated
	into krb5int_sendto.
	(call_select): Use dprint.
	(setup_connection): New function, handles data structure
	initialization.
	(start_connection): Renamed from start_tcp_connection.  Don't do
	data structure initialization, just start connection, and transmit
	UDP datagrams.  Use dprint.
	(maybe_send): Create socket for "INITIALIZING" connections;
	transmit datagrams.
	(kill_conn): New function split out from service_tcp_fd.
	(SSF_READ, SSF_WRITE, SSF_EXCEPTION): New macros.
	(service_tcp_fd): Accept a flag word rather than separate int
	arguments for read, write, exception.  Use dprint.
	(service_udp_fd): New function.
	(service_fd): New function, calls one of the above two.
	(service_fds): Call it.  Use a flag word instead of separate r/w/x
	values.
	* accessor.c (krb5int_accessor): Use krb5int_sendto instead of
	krb5int_sendto_udp.

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

	* sendto_kdc.c (DEFAULT_UDP_PREF_LIMIT, HARD_UDP_LIMIT): New
	macros.
	(debug_log_connect): Look up "udp_preference_limit" in libdefaults
	part of profile; try TCP before UDP if the packet size is larger
	than specified.  Don't try UDP at all if the packet is over about
	32K.

2002-07-23  Ezra Peisach  <epeisach@bu.edu>

	* localaddr.c (get_localaddrs): Add prototype before being used
	for static function.

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

	* sn2princ.c: Include fake-addrinfo.h.
	(krb5_sname_to_principal): Use getaddrinfo and getnameinfo instead
	of gethostbyname and gethostbyaddr.

	* hst_realm.c (krb5_get_host_realm): Return KRB5_ERR_NUMERIC_REALM
	if the hostname is a numeric-address form.

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

	* localaddr.c (get_localaddrs): Split out main body of
	krb5_os_localaddr, add an argument to indicate whether addresses
	listed in the profile should be included.
	(krb5_os_localaddr): Call it.
	(krb5int_local_addresses): Call get_localaddrs but skip
	profile-listed addresses.

	* sendto_kdc.c (krb5int_sendto_udp): Accept new args for optional
	location to store local address used to contact server.
	(krb5_sendto_kdc): Update call to pass 0.

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

	* sendto_kdc.c (service_tcp_fd): sockerrlen should have type
	socklen_t.

2002-07-03  Alexandra Ellwood <lxs@mit.edu>

	* init_os_ctx.c: krb4 needs to get the os config files so it can use
	the profile too.  Define these functions on Mac OS X now.

	* init_os_ctx.c: Removed use of FSSpecs because these cause serious
	performance problems on Mac OS X.  We now search paths the same way
	the rest of the Unix platforms do.

	[pullups from 1-2-2-branch]

2002-06-22  Tom Yu  <tlyu@mit.edu>

	* c_ustime.c: Remove various things missed in 1-2-2-branch MacOS
	microseconds timer removal.

2001-06-22  Miro Jurisic <meeroh@mit.edu>

	* c_ustime.c: punted the accurate microseconds timing code because it
	wasn't so accurate after all.
	[pullup from 1-2-2-branch]

2002-06-22  Alexandra Ellwood <lxs@mit.edu>

	* init_os_ctx.c: Add CoreServices.h before k5-int.h so we don't get 
	multiple definitions for FSSpec.  Also removed an unused variable in
	Mac OS X code and added casts for Mac OS X code so FSSpecs are cast
	to profile file types (code deals properly on the other side)

	* timeofday.c: Added casts to remove warnings

	* ccdefname.c, init_os_ctx.c, timeofday.c: Updated Mac OS X
	headers to new framework layout and updated Mac OS macros

	* read_pwd.c: Removed #defines for Mac OS X (__MACH__) because we 
	now export krb5_read_password on Mac OS X

	[pullups from 1-2-2-branch]

2002-06-19  Ken Raeburn  <raeburn@mit.edu>

	* init_os_ctx.c: Don't include sys/ioctl.h or sys/filio.h.
	(krb5_os_init_context): Drop /dev/[u]random support, the Yarrow
	code will deal with that now.

2002-06-18  Danilo Almeida  <dalmeida@mit.edu>

	* toffset.c (krb5_get_time_offsets), an_to_ln.c
	(krb5_aname_to_localname): Make KRB5_CALLCONV.
	[pullup from 1-2-2-branch]

2002-06-18  Ken Raeburn  <raeburn@mit.edu>

	* changepw.c (ECONNABORTED, ECONNREFUSED, EHOSTUNREACH,
	ETIMEDOUT): Don't define here now that they're defined in
	port-sockets.h.
	* read_msg.c (ECONNABORTED): Ditto.

	* sendto_kdc.c: Include sys/timeb.h on Windows.
	(ENABLE_TCP): Macro deleted, always enable code.
	(krb5_sendto_kdc): Don't try UDP if outgoing message is 1500
	bytes or larger.  Print info on arguments if DEBUG defined.
	(bogus_strerror) [_WIN32 && DEBUG]: New function.
	(dperror, dfprintf): New macros.
	(krb5int_sendto_udp): Use SOCKET_ERRNO where appropriate.  Log
	more info if DEBUG defined; use dperror and dfprintf.
	(struct conn_state): Use new scatter-gather definitions from
	port-sockets.h.  Don't try to reuse data structures for both
	input and output.
	(struct select_state): Add exception fd set.
	(print_fdsets) [DEBUG]: Print exception fd set; callers changed.
	(getcurtime): New function.
	(call_select): Call it.  Pass exception fd set to select.
	(make_nonblocking, iov_advance): Deleted.
	(start_tcp_connection): Expand non-blocking setting inline; set
	linger period to zero.  Use new scatter-gather framework.  Log
	more info if DEBUG defined.
	(service_tcp_fd): New argument indicates exception; handle
	exception fd set.  Print more info if DEBUG.  Use SOCKET_*
	macros, scatter-gather support, SHUTDOWN_* macros.  Adjust for
	new conn_state definitions.
	(krb5int_sendto_tcp): Set up exception fd set.  Adjust for new
	conn_state definitions.  Use new scatter-gather support.

2002-06-11  Ken Raeburn  <raeburn@mit.edu>

	* sendto_kdc.c: Include sys/ioctl.h and sys/filio.h only if
	ENABLE_TCP is set and _WIN32 is not defined.

2002-06-10  Ken Raeburn  <raeburn@mit.edu>

	* sendto_kdc.c: Include sys/ioctl.h and sys/filio.h if
	available.  Define ENABLE_TCP as 0 on Windows, 1 otherwise.
	(debug_log_connect): New function.
	(dperror, dfprintf): New macros.
	(krb5int_sendto_udp): Use dperror, dfprintf, and
	debug_log_connect.
	(state_strings): New variable.
	(struct conn_state, struct select_state): New types.
	(print_fdsets, call_select, make_nonblocking,
	start_tcp_connection, iov_advance, service_tcp_fd, service_fds,
	krb5int_sendto_tcp): New functions.
	(krb5_sendto_kdc): New argument TCP_ONLY.  Try UDP first unless
	told otherwise, then try TCP.

	* t_std_conf.c: Include fake-addrinfo.h.
	(test_locate_kdc): Update arg list to locate_kdc.  Print IPv6 as
	well as IPv4 addresses.

	* t_locate_kdc.c (main): Free storage allocated by library before
	exiting.

2002-06-04  Ken Raeburn  <raeburn@mit.edu>

	* locate_kdc.c (krb5_locate_srv_conf_1): New argument socktype
	indicates what type of addrinfo entries to add.
	(krb5int_locate_server): Change argument is_stream to socktype.
	Pass the value to krb5_locate_srv_conf_1.
	(krb5_locate_kdc): New argument socktype.
	* sendto_kdc.c (krb5int_sendto_udp): New function, containing most
	of the network code from krb5_sendto_kdc.
	(krb5_sendto_kdc): Call it.
	* accessor.c (krb5int_accessor): Set new sendto_udp field.
	* os-proto.h (krb5_locate_kdc): Update prototype.  Add forward
	declaration for struct addrlist.
	* t_locate_kdc.c (main): Update call to krb5_locate_kdc.

	* locate_kdc.c: Include fake-addrinfo.h before k5-int.h.
	(grow_list, krb5int_free_addrlist)
	(add_addrinfo_to_list): Incorporate list-updating code from
	add_sockaddr_to_list.  Store an addrinfo pointer, and set the
	ai_next field to null.
	(add_host_to_list): New arg SOCKTYPE.  Write port numbers into
	buffers and let getaddrinfo fill in the sin*_port fields.  Call
	getaddrinfo twice, and use two loops to add entries to the
	addrlist structure.
	(add_sockaddr_to_list, set_port_num): Deleted.
	(krb5_locate_srv_conf_1, krb5_locate_srv_dns_1): Pass extra arg
	to add_host_to_list.
	(krb5int_locate_server): New value 2 for is_stream arg means
	accept both UDP and TCP.
	* changepw.c: Include fake-addrinfo.h.
	(krb5_locate_passwd, krb5_change_password): Update for addrlist
	changes.
	* sendto_kdc.c: Include fake-addrinfo.h.
	(krb5_sendto_kdc): Update for addrlist changes.  Skip any
	addresses that are not SOCK_DGRAM.
	* t_locate_kdc.c (stypename): New function.
	(print_addrs): Update for addrlist changes.  Print socket type
	with address and port.

2002-04-12  Ken Raeburn  <raeburn@mit.edu>

	* lock_file.c (krb5_lock_file) [POSIX_FILE_LOCKS]: Make static
	"zero" variable const.

	* prompter.c (krb5_prompter_posix): Initialize 'i' and make it
	volatile.

	* locate_kdc.c (add_addrinfo_to_list) [TEST]: Print out socket
	type before returning.
	(add_host_to_list): Don't need to initialize err.  Supply
	getaddrinfo hint to select datagram addresses only.  Delete AIX
	bug workaround code.

2002-04-10  Danilo Almeida  <dalmeida@mit.edu>

	* locate_kdc.c (translate_ai_error), hst_realm.c
	(krb5int_translate_gai_error): Test some EAI_ error definitions
	so that we will also build correctly on Win32 (Winsock 2).

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

	* hostaddr.c (FAI_PREFIX): Delete.
	* hst_realm.c (FAI_PREFIX): Delete.
	* localaddr.c [TEST || DEBUG]: Include fake-addrinfo.h, not
	fake-addrinfo.c.
	(FAI_PREFIX) [TEST || DEBUG]: Delete.
	* locate_kdc.c: Include fake-addrinfo.h, not fake-addrinfo.c.
	(FAI_PREFIX): Delete.

2002-02-20  Ken Raeburn  <raeburn@mit.edu>

	* localaddr.c: Include foreachaddr.c.
	(printaddr, printifaddr, addr_eq, grow_or_free, get_ifconf,
	get_lifconf, get_linux_ipv6_addrs, foreach_localaddr): Deleted.
	* Makefile.in (localaddr.o): Update dependencies.

2002-02-10  Ken Raeburn  <raeburn@mit.edu>

	* localaddr.c (LINUX_IPV6_HACK) [__linux__&& KRB5_USE_INET6]:
	Define macro.
	(get_linux_ipv6_addrs) [LINUX_IPV6_HACK]: New function, reads
	addresses from /proc/net/if_inet6.
	(foreach_localaddr) [!HAVE_IFADDRS_H && !SIOCGLIFNUM &&
	LINUX_IPV6_HACK]: Include ipv6 addresses.

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

	* hst_realm.c (EAFNOSUPPORT): On Windows, translate to
	WSAEAFNOSUPPORT.

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

	* hst_realm.c (krb5int_get_fq_hostname): New function.  Use
	getaddrinfo instead of gethostbyname.
	(krb5int_get_fq_local_hostname): New function.
	(krb5_get_host_realm): Call it.
	* def_realm.c (krb5_get_default_realm): Call it.

	* Makefile.in (t_localaddr): Link against $(LIBS).

2001-12-05  Ezra Peisach  <epeisach@mit.edu>

	* sendto_kdc.c (krb5_sendto_kdc): Get rid of unecessary casts.

2001-10-24  Sam Hartman  <hartmans@mit.edu>

	* accessor.c (krb5int_accessor):  Add fields for struct version 4

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

	* locate_kdc.c (add_host_to_list): If sa_len field exists and is
	zero, try to fill it in.  Another AIX 4.3.3 bug workaround.

	* sendto_kdc.c (krb5_sendto_kdc) [DEBUG]: More fprintf calls for
	tracing through.

2001-10-10  Ezra Peisach  <epeisach@mit.edu>

	* localaddr.c (krb5_os_localaddr_profile): Cast argument to
	isspace() to int.

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

	* os-proto.h: Make prototypes unconditional.

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

	* an_to_ln.c, c_ustime.c, ccdefname.c, init_os_ctx.c, ktdefname.c,
	kuserok.c, localaddr.c, lock_file.c, prompter.c, promptusr.c,
	read_pwd.c: Drop _MSDOS support.

	* ccdefname.c, def_realm.c, free_hstrl.c, hst_realm.c,
	ktdefname.c, localaddr.c, mk_faddr.c, read_pwd.c, sn2princ.c,
	timeofday.c, ustime.c: Don't explicitly declare pointers FAR any
	more.

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

	* accessor.c, ccdefname.c, changepw.c, def_realm.c, free_hstrl.c,
	genaddrs.c, hst_realm.c, init_os_ctx.c, ktdefname.c, localaddr.c,
	prompter.c, realm_dom.c, realm_iter.c, sn2princ.c, timeofday.c,
	ustime.c: Don't use KRB5_DLLIMP.

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

	* locate_kdc.c (add_host_to_list): If address family in sockaddr
	structure is zero, copy it in from the addrinfo structure.  Bug
	workaround for AIX 4.3.3.

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

	* localaddr.c: Retrieve IPv6 addresses on Solaris 8.
	(get_lifconf) [SIOCGLIFCONF]: New function.
	(foreach_localaddr) [SIOCFLIGNUM]: New section, using new lifconf
	and lifreq structures and related ioctls.
	(Tprintf, Tperror): New macros.  Print stuff if TEST is defined,
	otherwise be silent but cause same evaluations to happen.

	* localaddr.c (TEST || DEBUG): Include fake-addrinfo.c, not
	fake-addrinfo.h.

2001-08-31  Ken Raeburn  <raeburn@mit.edu>

	* hostaddr.c (krb5_os_hostaddr): Don't use AI_DEFAULT.

	* genaddrs.c (struct addrpair): New type.
	(cvtaddr): New function.  Fills in krb5_address structures
	referencing port and address parts of a sockaddr.  Converts
	IPv4-mapped IPv6 addresses to plain IPv4 addresses.
	(krb5_auth_con_genaddrs): Use sockaddr_storage for addresses.  Use
	addrpairs to pass to cvtaddr, then set up pointers to the elements
	as needed.

2001-08-30  Ken Raeburn  <raeburn@mit.edu>

	* locate_kdc.c: Include fake-addrinfo.c instead of
	fake-addrinfo.h.
	(FAI_IMPLEMENTATION): Deleted.

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

	* localaddr.c: Include ctype.h.
	[TEST || DEBUG]: Defined FAI_PREFIX and include fake-addrinfo.h.
	(foreach_localaddr) [TEST]: Change whitespace in some debug
	messages.
	(print_addr) [TEST]: Delete non-getnameinfo version of code.
	Change some messages.
	(struct localaddr_data): New field CUR_SIZE.
	(allocate): Grow existing storage, if already allocated.
	(krb5_os_localaddr_profile): New function.  Looks up
	"extra_addresses" in "libdefaults" section, separates on
	whitespace, looks up addresses, adds them to the list.
	(krb5_os_localaddr): Call krb5_os_localaddr_profile first; ignore
	any errors it reports.
	(krb5_os_localaddr) [DEBUG]: More debugging code.

	* hostaddr.c (krb5_os_hostaddr): Only retry non-numeric lookup
	after numeric lookup if AI_NUMERICHOST is nonzero.

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

	* genaddrs.c: Use GETPEERNAME_ARG2_TYPE, GETPEERNAME_ARG3_TYPE
	instead of assuming types. 

	* changepw.c: Use GETSOCKNAME_ARG3_TYPE instead of int in casts.

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

	* gen_port.c (krb5_gen_portaddr): Add const to cast of
	krb5_const_pointer to maintain const status.

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

	* sn2princ.c: Do not cast away const char * in call to strdup.

2001-07-24  Jeffrey Altman <jaltman@columbia.edu>

        * def_realm.c: 
            krb5_get_default_realm() required a profile file
            even when KRB5_DNS_LOOKUP was defined.  

2001-07-19  Ken Raeburn  <raeburn@mit.edu>

	* hostaddr.c: Include fake-addrinfo.h.
	(FAI_PREFIX): Define macro.
	(krb5_os_hostaddr): Use getaddrinfo, to get ipv6 support and
	thread safety.  Support numeric addresses as well.

	* t_locate_kdc.c: New file.
	* Makefile.in (t_locate_kdc.o, t_locate_kdc): New targets.

	* locate_kdc.c: Include fake-addrinfo.h.
	(FAI_PREFIX, FAI_IMPLEMENTATION): Define macros.
	(get_port, add_sockaddr_to_list, add_host_to_list): Drop
	gethostbyname/getservbyname support, always use getnameinfo, which
	should be thread-safe.
	(translate_ai_error, set_port_num): Now always defined.
	(set_port_num): Only check for AF_INET6 if KRB5_USE_INET6.

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

	* sn2princ.c (krb5_sname_to_principal): Cast tolower argument to int. 

	* hst_realm.c (krb5_get_host_realm): Cast argument to toupper and
	tolower to int.

2001-06-21  Ezra Peisach  <epeisach@mit.edu>

	* t_std_conf.c (test_locate_kdc): Get rid of unused variable.

2001-06-20  Ezra Peisach  <epeisach@mit.edu>

	* t_std_conf.c (test_locate_kdc): Update to new krb5_locate_kdc
	interface.

2001-06-19  Ken Raeburn  <raeburn@mit.edu>

	* locate_kdc.c (struct addrlist, ADDRLIST_INIT): Moved to
	k5-int.h.
	(krb5int_free_addrlist): Renamed from free_list; no longer
	static.
	(krb5_locate_srv_conf, krb5_locate_srv_dns, krb5int_locate_server,
	krb5_locate_kdc): Use addrlist in interface.

	* sendto_kdc.c (krb5_sendto_kdc): Use new struct addrlist
	interface.

	* changepw.c (krb5_locate_kpasswd): Use addrlist structure in
	interface and implementation.
	(krb5_change_password): Likewise.

	* accessor.c (krb5int_accessor): Fill in free_addrlist function
	pointer field.

	* os-proto.h (krb5_locate_kdc): Update prototype.

2001-06-12  Ezra Peisach  <epeisach@mit.edu>

	* sn2princ.c, hst_realm.c, an_to_ln.c: Cast argument to
	isupper()/isspace()/islower() to int.

	* t_std_conf.c (test_locate_kdc): krb5_locate_kdc expects a struct
	sockaddr *** as a third argument instead of sockaddr **.

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

	* ktdefname.c (krb5_kt_default_name): Get rid of a variable that
	was set in a conditional but never used.

2001-05-08  Danilo Almeida  <dalmeida@mit.edu>

	* locate_kdc.c (add_host_to_list): Initialize stack variable err
	which would otherwise get returned without being set in certain
	circumstances.

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

	* locate_kdc.c (add_sockaddr_to_list) [TEST]: If getnameinfo is
	available, use it instead of inet_ntoa to get the printable
	address.
	(add_host_to_list): Share declaration sections as much as
	possible.  Propagate errors back correctly from gethostbyname
	path.

2001-04-26  Ken Raeburn  <raeburn@mit.edu>

	* hst_realm.c (T_TXT): Define if not defined by header files.

	* locate_kdc.c (krb5int_locate_server): New function, replaces
	functionality of krb5_locate_srv_conf and _dns, including checking
	whether DNS lookup is desired.
	(krb5_locate_srv_conf, krb5_locate_srv_dns): Define only if macro
	TEST is defined.  Added another level of indirection in the
	address pointer argument.
	(krb5_locate_srv_dns_1, krb5_locate_srv_conf_1,
	translate_ai_error, get_port, struct addrlist, ADDRLIST_INIT,
	grow_list, free_list, add_sockaddr_to_list, add_addrinfo_to_list,
	set_port_num, add_host_to_list): New helper functions.
	(krb5_locate_kdc): Added another level of indirection in the
	address pointer argument.  Call krb5int_locate_server.
	(KPASSWD_PORTNAME): Deleted.

	* os-proto.h (krb5_locate_kdc): Updated prototype.

	* sendto_kdc.c (krb5_sendto_kdc): Updates for change in
	krb5_locate_kdc interface.

	* changepw.c (krb5_locate_kpasswd): Call krb5int_locate_server.
	Add another level of indirection in address pointer.  Now gives
	preference to _kpasswd info from DNS over admin_server info in
	config file, if kpasswd_server is not set.
	(krb5_change_password): Use struct sockaddr_storage for all
	automatic address variables.  Ignore any non-IPv4 addresses
	returned from krb5_locate_kpasswd; return an error if all
	addresses are non-IPv4.  Update for new krb5_locate_kpasswd
	interface.

	* accessor.c (krb5int_accessor): Set krb5_locate_server field.

2001-04-25  Ken Raeburn  <raeburn@mit.edu>

	* localaddr.c (socklen_t, socklen): Deleted; definitions now in
	k5-int.h instead.
	(foreach_localaddr): Use SIOCGIFNUM if it's available and
	SIOCGSIZIFCONF is not (e.g., Solaris 7 and 8).
	(print_addr) [!HAVE_GETNAMEINFO]: Only declare variable buf if
	AF_INET6 is defined.

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

	* t_gifconf.c: New file.

2001-03-10  Ezra Peisach  <epeisach@mit.edu>

	* def_realm.c: Move prototype for krb5_try_realm_txt_rr() to
	os-proto.h.

	* init_os_ctx.c: Include os-proto.h

	* changepw.c, locate_kdc.c: Do not shadow sin() with local
	variable name.

	* os-proto.h: Add prototypes for krb5_try_realm_txt_rr() and the
	obsolete krb5_secure_config_files().

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

	* localaddr.c (krb5_os_localaddr): Don't look for -1 return value
	from foreach_localaddr.
	(print_addr): Only process AF_INET6 addresses if AF_INET6 is
	defined.

	* gmt_mktime.c (gmt_mktime): Handle years earlier than 1970.
	(main) [TEST_LEAP]: New routine, driver for testing.
	* Makefile.in (t_mktime): New target.

2001-03-05  Sam Hartman  <hartmans@mit.edu>

	* kuserok.c: Set max_username to 65 not 10.  65 should be enough
	for a null terminated string from most current Unixes usernames.
	The previous limit of 10 was too low.  I don't know how the
	previous limit was chosen nor why this is not a dynamic buffer.

2001-03-05  Tom Yu  <tlyu@mit.edu>

	* init_os_ctx.c: Get sys/ioctl.h for Solaris to get FIONBIO.

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

	* init_os_ctx.c: If not Mac or Windows, define USE_RANDOM_DEVICE
	and include sys/ioctl.h.
	(krb5_os_init_context) [USE_RANDOM_DEVICE]: Read some bytes from
	/dev/urandom or /dev/random and use them to re-seed the PRNG.

2001-02-05  Tom Yu  <tlyu@mit.edu>

	* prompter.c (krb5_prompter_posix): Fix up terminal modes if we're
	interrupted. [reported by Booker Bense]

2000-12-18  Ken Raeburn  <raeburn@mit.edu>

	* Makefile.in (LCLINT, LCLINTOPTS): New variables.
	(lclint-localaddr): New target.

	* localaddr.c (grow_or_free, get_ifconf, make_addr): Split out
	from foreach_localaddr and friends for simpler lclint analysis.
	(socklen): New function.
	(print_addr): Use getnameinfo if available.
	(struct localaddr_data, count_addrs, allocate, add_addr,
	make_addr): Define only if not testing.
	(foreach_addr): Call new functions.  Annotate for lclint.

2000-10-17  Ezra Peisach  <epeisach@mit.edu>

	* changepw.c: Cast length argument to recvfrom/sendto to int.

	* os-proto.h: Moved extern definition of krb5_max_dgram_size,
	krb5_max_skdc_timeout, krb5_skdc_timeout_shift,
	krb5_skdc_timeout_1 here.

	* accessor.c: Definition for krb5_max_dgram_size,
	krb5_max_skdc_timeout, krb5_skdc_timeout_shift,
	krb5_skdc_timeout_1 moved to os-proto.h

	* osconfig.c: Changed definition for krb5_max_dgram_size,
	krb5_max_skdc_timeout, krb5_skdc_timeout_shift,
	krb5_skdc_timeout_1 to unsigned int.

	* get_krbhst.c, init_os_context.c, locate_kdc.c, prompter.c:
	Unsigned/signed int cleanup.

	* read_pwd.c (krb5_read_password): Change size_return to unsigned
	int *.

	* sendto_kdc.c: Remove definition for krb5_max_dgram_size,
	krb5_max_skdc_timeout, krb5_skdc_timeout_shift,
	krb5_skdc_timeout_1. (moved to os-proto.h). Cast arguments to int
	for send() and recv().

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

	Support for getifaddrs() interface added in BSD.
	* localaddr.c (printaddr, printifaddr) [HAVE_IFADDRS_H && DEBUG]:
	New functions for debugging new ifaddrs code.
	(addr_eq) [HAVE_IFADDRS_H]: New function, for comparing addresses
	found with getifaddrs.
	(foreach_localaddr) [HAVE_IFADDRS_H]: New implementation, relies
	on C library function to retrieve data.
	(foreach_localaddr) [!HAVE_IFADDRS_H && TEST]: Print info about
	each address and why it might not be used.
	(print_addr, main) [TEST]: Print out the local addresses.
	* Makefile.in (t_localaddr): New target.

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

	* an_to_ln.c: Unsigned vs signed int fixes.

	* t_std_conf.c: Declare local functions static, do not shadow
	sin() with local variable.

2000-08-31  Jeffrey Altman <jaltman@columbia.edu>

        * locate_kdc.c: krb5_locate_srv_dns() 
          Ensure that res_search() is called with a query string
          that is terminated by a '.' in order to disable the
          expansion of dns-search lists.

2000-07-22  Tom Yu  <tlyu@mit.edu>

	* accessor.c: Add NEED_SOCKETS in order to get prototype for
	krb5_locate_kdc().

2000-07-19  Danilo Almeida  <dalmeida@mit.edu>

	* accessor.c (krb5int_accessor): Add krb5int_accessor() to access
	internal krb5 functions from outside the library (so that we don't
	have to export them for the krb525 and gssapi libraries).  The
	goal is to make this function eventually do nothing.

	* Makefile.in: Compile accessor.c.

2000-07-18  Ezra Peisach  <epeisach@mit.edu>

	* locate_kdc.c, hst_realm.c, def_realm.c, changepw.c: Include
	os-proto.h for internal prototypes.

	* os-proto.h: Prototypes for _krb5_use_dns_realm(),
	_krb5_use_dns_kdc(), _krb5_conf_boolean().

	* t_std_conf.c: Include k5-int.h for internal function prototypes.

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

	* t_an_to_ln.c: Include <stdio.h> for prototypes.

	* locate_kdc.c (krb5_locate_srv_dns): Remove unused variable.

	* changepw.c, sendto_kdc.c, sn2princ.c: Add parentheses around
	assignment used as truth value.

	* ccdefname.c (get_from_os): Cast return from getuid() to long and
	indicate use of format in sprintf.

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

	* def_realm.c: Add newline at end of file.

	* gmt_mktime.c: Define days_in_month as type int.

	* locate_kdc.c (krb5_locate_srv_dns): Cleanup unused variables.

2000-06-23  Miro Jurisic  <meeroh@mit.edu>

	* init_os_ctx.c (os_get_default_config_files): Return ENOENT when
	file is not found on MacOS (not ENFILE).  Use Kerberos Preferences
	library to locate the config files on Mac OS.  Eliminated some
	dead code.

2000-06-23  Nalin Dahyabhai  <nalin@redhat.com>

	* an_to_ln.c (do_replacement):  Don't overflow buffers "in" or "out".
	* hst_realm.c (krb5_try_realm_txt_rr):  Don't overfill "host" when
	malformed DNS responses are received.

	* ccdefname.c (get_from_os): Don't overflow buffer "name_buf".
	* kuserok.c (krb5_kuserok): Don't overflow buffer "pbuf".

2000-06-23  Ken Raeburn  <raeburn@mit.edu>

	* localaddr.c: Include stddef.h.
	(foreach_localaddr): Check each address against previously used
	addresses, and skip duplicates, in case multiple interfaces have
	the same address.  If called functions fail, drop out of loop and
	return nonzero.  Use SIOCGSIZIFCONF ioctl if available to get the
	buffer size needed for SIOCGIFCONF, and skip the silly heuristics
	if it returns a reasonable value.
	(krb5_os_localaddr): Increment count of addresses to include null
	pointer terminator.  Delete check for zero count.

	* locate_kdc.c (maybe_use_dns): Renamed from _krb5_use_dns.  Now
	takes an arg to indicate a key to look up in krb5.conf, falling
	back to "dns_fallback", and an arg indicating the default value if
	no config file entries match.
	(_krb5_use_dns_realm): New routine; use "dns_lookup_realm" and
	KRB5_DNS_LOOKUP_REALM setting.
	(_krb5_use_dns_kdc): New routine; use "dns_lookup_kdc" and
	KRB5_DNS_LOOKUP_KDC.
	(krb5_locate_kdc): Call _krb5_use_dns_kdc.
	* changepw.c (krb5_locate_kpasswd): Call _krb5_use_dns_kdc.
	* def_realm.c (krb5_get_default_realm): Call _krb5_use_dns_realm.
	* hst_realm.c (krb5_get_host_realm): Call _krb5_use_dns_realm.

2000-06-23	Alexandra Ellwood <lxs@mit.edu>

	* ccdefname.c: Added support to store a krb5_principal in the os_context 
	along with the default ccache name (if known, this principal is the same 
	as the last time we looked at the ccache.

2000-05-09	Alexandra Ellwood <lxs@mit.edu>

	*localaddr.c: Fixed the local_addr_fallback_kludge so that it actually does something.
	Before that the error code it was handling was blowing it away in cleanup.

2000-04-29  Jeffrey Altman <jaltman@columbia.edu>

        * hst_realm.c (krb5_get_host_realm)
          remove the searchlist and defaultrealm _kerberos queries

2000-04-18  Danilo Almeida  <dalmeida@mit.edu>

	* prompter.c (krb5int_set_prompt_types): Set to actual value
	intead of 0.

2000-4-13	Alexandra Ellwood <lxs@mit.edu>

	* init_os_ctx.c: Added support to store a krb5_principal in the os_context 
	along with the default ccache name (if known, this principal is the same 
	as the last time we looked at the ccache.

2000-03-20  Miro Jurisic  <meeroh@mit.edu>

	* def_realm.c (krb5_free_default_realm): Added, use to free
	result of krb5_get_default_realm

2000-03-15  Danilo Almeida  <dalmeida@mit.edu>

	* prompter.c: Add krb5int_set_prompt_types() and
	krb5_get_prompt_types().

2000-03-14  Ken Raeburn  <raeburn@mit.edu>

	* init_os_ctx.c (os_get_default_config_files): Remove unused
	variable.

	* def_realm.c: Include netinet/in.h if available.

2000-02-25  Ken Raeburn  <raeburn@mit.edu>

	* localaddr.c (foreach_localaddr): Broken out from old
	krb5_os_localaddr.  Iterates over all active interface addresses,
	invoking callback functions; knows nothing about Kerberos.
	(count_addrs, allocate, add_addr): New callback functions.
	(krb5_os_localaddr): Use the above.
	(allocate): Make room for NULL value at the end.

2000-02-16  Ken Raeburn  <raeburn@mit.edu>

	* localaddr.c (krb5_os_localaddr): Dynamically grow buffer used
	for SIOCGIFCONF until it appears to have been big enough.
	Dynamically grow internal address pointer array as needed.

2000-02-11  Marshall Vale  <mjv@mit.edu>

	* init_os_ctx.c (os_get_default_config_files.c): Added new
	file name "Kerberos Preferences" to the of valid configuration
	file names on Mac OS. The others will be removed at a later 
	date.

2000-02-08  Marshall Vale  <mjv@mit.edu>

	* init_os_ctx.c (os_get_default_config_files.c): Added
	Application Support folder to list of locations to look
	for krb5 configuration file. Only looks at top level which
	needs to be improved.
	(GetMacProfileFileSpec): Added a parameter to declare which
	folder constants to use for file spec creation. Previously it
	had assumed just the Preferences folder.

2000-02-07  Scott McGuire  <smcguire@mit.edu>

    * changepw.c (krb5_locate_kpasswd): fixed memory trashing
       caused by incorrect pointer arithmetic when assigning
       DEFAULT_KPASSWD_PORT in DNS code also.

2000-02-04  Scott McGuire  <smcguire@mit.edu>

    * changepw.c (krb5_locate_kpasswd): fixed memory trashing
       caused by incorrect pointer arithmetic when assigning
       DEFAULT_KPASSWD_PORT in non-DNS code.
   
1999-12-03  Danilo Almeida  <dalmeida@mit.edu>

	* changepw.c: Define ETIMEDOUT for Windows.

1999-12-01  Ken Raeburn  <raeburn@mit.edu>

	* init_os_ctx.c (krb5_secure_config_files): Do define; always
	return an error, but perform old functionality in case the error
	is ignored.  Delete when we can make a major version number
	change.

1999-11-23  Ken Raeburn  <raeburn@mit.edu>

	* an_to_ln.c (default_an_to_ln): Avoid stomping byte after
	supplied buffer.  Thanks to Matt Crawford.

	* init_os_ctx.c (os_init_paths): Delete SECURE argument; read the
	value from the profile structure instead.
	(krb5_os_init_context, krb5_get_profile): Don't pass SECURE
	argument.
	(os_init_paths, krb5_get_profile): Cast first arg to
	profile_init.
	(krb5_secure_config_files): Don't define.

1999-11-22  Miro Jurisic  <meeroh@mit.edu>

	* ccdefname.c (get_from_os): Replaced Kerberos5GlobalsLib calls
	with CCAPI v3 calls

1999-11-02  Ken Raeburn  <raeburn@mit.edu>

	* localaddr.c (krb5_os_localaddr): Conditionalize INET6 support on
	new KRB5_USE_INET6 macro.

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-10-22  Ken Raeburn  <raeburn@mit.edu>

	* prompter.c (krb5_prompter_posix): Make ointrfunc, fd, and
	errcode volatile.
	* promptusr.c (krb5_os_get_tty_uio): Make ointrfunc and retval
	volatile.
	* read_pwd.c (krb5_read_password): Make ointrfunc volatile.  Fix
	volatile decl for readin_string (pointer is volatile, doesn't
	point to volatile).

	* changepw.c (krb5_change_password): Wait only two minutes, not
	indefinitely, for a response from the kpasswd server.

1999-10-18  Ken Raeburn  <raeburn@mit.edu>

	* localaddr.c (krb5_os_localaddr): Don't bother trying to create
	inet6 socket; any socket type will do.

1999-10-17  Ken Raeburn  <raeburn@mit.edu>

	* localaddr.c (krb5_os_localaddr): Raise buffer size to 10K.
	Handle INET6 addresses.  If INET6 support is built in but the
	socket creation fails, fall back to INET.

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

	* changepw.c (krb5_locate_kpasswd): Declare local variable i even
	when DNS code is not in use.
	(krb5_locate_srv_conf, krb5_locate_srv_dns): Delete declarations.

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

	Changes from Jeffrey Altman to look up kpasswd server using DNS.
	* changepw.c: (krb5_locate_kpasswd): New function, split out from
	krb5_change_password.  Calls krb5_locate_srv_dns if use of DNS is
	desired, and krb5_locate_srv_conf to check config file.
	(krb5_change_password): Call it to find the server.
	* locate_kdc.c (krb5_locate_srv_conf): No longer static.  Choose
	default port numbers based on service name rather than a single
	hard-coded value.
	(krb5_locate_srv_dns): No longer static.

1999-09-17  Tom Yu  <tlyu@mit.edu>

	* def_realm.c: Patch from jaltman@columbia.edu to allow compiling
	under non-Windows platforms with DNS lookup enabled.

1999-09-01  Danilo Almeida  <dalmeida@mit.edu>

	* kuserok.c (krb5_kuserok): Fix improper negation in
	non-Unix localname check.  Also fix calling convention
	before this function is exported by the Windows DLL.

	* localaddr.c (krb5_os_localaddr): Fix memset to clear
	right address list.  (Thanks to jaltman@columbia.edu).

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

	* get_krbhst.c (krb5_get_krbhst): Fix double-indirection
	confusion.  Do actually copy string contents to newly allocated
	storage.

1999-08-21  Danilo Almeida  <dalmeida@mit.edu>

	* localaddr.c (krb5_os_localaddr): Use multiple addresses, if
	present, on Mac and Windows.

1999-08-10	Alexandra Ellwood	<lxs@mit.edu>

	* changepw.c (krb5_change_password):
		Reorganized code so that krb5_change_password actually frees
		everything it allocated on error.  Also fixed some memory 
		leaks which happened even without an error occurring.

1999-08-09  Danilo Almeida  <dalmeida@mit.edu>

	* prompter.c (krb5_prompter_posix): Provide Win32 implementation
	so that kinit and such work under Win32.

1999-08-06  Danilo Almeida  <dalmeida@mit.edu>

	* def_realm.c (krb5_get_default_realm): 
	* hst_realm.c (krb5_get_host_realm): Make sure we have FQDN
	in the case where we use gethostname.

	* def_realm.c (krb5_get_default_realm): Check that we have
	a realm before trying to copy it (since profile_get_string
	may return no error but not get anything).

	* init_os_ctx.c (krb5_get_profile): Fix calling convention.

1999-08-05  Danilo Almeida  <dalmeida@mit.edu>

	* t_std_conf.c (test_get_krbhst): Use krb5_free_krbhst to
	free buffers allocated by krb5_get_krbhst.

	* locate_kdc.c (_krb5_use_dns): Add _krb_use_dns to abstract
	away looking up of whether we use DNS or not in the profile.

	* ktdefname.c (krb5_kt_default_name): Use profile_release_string
	instead of free to free string allocated by profile_get_string.

	* get_krbhst.c (krb5_get_krbhst): Copy results from profile_get_values
	into malloc'ed buffers so we can safely free them later.  Also call
	profile_free_list on the original values.

	* locate_kdc.c (krb5_locate_kdc): 
	* hst_realm.c (krb5_get_host_realm): 
	* def_realm.c (krb5_get_default_realm): Use _krb5_use_dns to figure
	out whether to use DNS or not instead of directly reading the 
	profile in this routine.

	* realm_dom.c (krb5_get_realm_domain): 
	* hst_realm.c (krb5_get_host_realm): 
	* def_realm.c (krb5_get_default_realm): Copy results of 
	profile_get_string into malloc'ed buffer so it can safely be free'd
	later.

	* locate_kdc.c (krb5_locate_srv_conf):
	* def_realm.c (krb5_get_default_realm): 
	* changepw.c (krb5_change_password): 
	* an_to_ln.c (krb5_aname_to_localname): Use profile_free_list
	to free values allocated by profile_get_values.

1999-08-04  Danilo Almeida  <dalmeida@mit.edu>

	* init_os_ctx.c (os_init_paths): Wrap use of ctx->profile_in_memory
	with KRB5_DNS_LOOKUP.  Use pointer value to determine whether to free 
	files by checking the files value rather than depending on the 
	return value.

1999-07-27  Miro Jurisic  <meeroh@mit.edu>

	* init_os_ctx.c (GetMacProfileFileSpec): removed bogus string conversion

1999-07-26  Miro Jurisic  <meeroh@mit.edu>

	* c_ustime.c (krb5_crypto_us_timeofday): Merged in changes from the
	Mac_V2_0_derivatives branch -- microseconds support and guaranteed 
	monotonically increasing microseconds on MacOS

	* init_os_ctx.c (os_get_default_config_files): Merged in changes from the
	Mac_V2_0_derivatives branch -- NRL config file name

	* init_os_ctx.c (krb5_get_profile): added krb5_get_profile

1999-07-22 Jeffrey Altman <jaltman@columbia.edu>

        * init_os_ctx.c (os_init_paths)
          If profile_init() is unable to open a profile and returns ENOENT,
          remember in the context that the profile_in_memory and then 
          call profile_init() with a NULL filespec.

        * def_realm.c (krb5_get_default_realm)
        * hst_realm.c (krb5_get_host_realm)
        * locate_kdc.c (krb5_locate_kdc)
          Use the profile entry [libdefaults] dns_fallback to determine
          if DNS SRV and TXT records should be used to find realms and
          servers if they are not found in the profile.
   

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

	* init_os_ctx.c (os_get_default_config_files): Fix some typos and
	missed name changes in the patch Miro just checked in but forgot
	to mention here, in which Mac filespecs are used instead of
	filenames.
	(krb5_free_config_files): Ditto.

1999-06-30  Ken Raeburn  <raeburn@mit.edu>

	* locate_kdc.c (krb5_locate_kdc): Kerberos admin service name is
	"kerberos-adm", not "kadmin", so look up "_kerberos-adm._tcp" in
	DNS.

1999-06-21  Ken Raeburn  <raeburn@mit.edu>
	and Jeffrey Altman and Ken Hornstein

	* def_realm.c (MAXHOSTNAMELEN) [KRB5_DNS_LOOKUP]: Define if not
	already defined.
	(MAX_DNS_NAMELEN) [KRB5_DNS_LOOKUP]: New macro.
	(krb5_get_default_realm): Return an error if an empty realm name
	is found.
	(krb5_get_default_realm) [KRB5_DNS_LOOKUP]: Use
	krb5_try_realm_txt_rr to determine the realm of the local host or
	domain.

	* hst_realm.c [KRB5_DNS_LOOKUP]: Pull in some extra header files
	for resolver functionality.
	(MAX_DNS_NAMELEN): New macro.
	(krb5_try_realm_txt_rr) [KRB5_DNS_LOOKUP]: New function; looks up
	a TXT record.
	(krb5_get_host_realm): Use MAX_DNS_NAMELEN for buffer size.
	(krb5_get_host_realm) [KRB5_DNS_LOOKUP]: Use DNS lookup if config
	file doesn't contain a match.

	* locate_kdc.c [KRB5_DNS_LOOKUP]: Pull in some extra header files
	for resolver functionality.
	(MAXHOSTNAMELEN) [KRB5_DNS_LOOKUP]: Define if not already
	defined.
	(MAX_DNS_NAMELEN) [KRB5_DNS_LOOKUP]: New macro.
	(krb5_locate_srv_conf): Renamed from krb5_locate_kdc; now static;
	extra char* argument replaces fixed "kdc" in array of names to
	look up in profile.
	(krb5_locate_srv_dns) [KRB5_DNS_LOOKUP]: New function; looks up
	SRV records, and returns addresses sorted by priority.
	(krb5_locate_kdc): New function, calls above routines.

1999-06-16  Danilo Almeida  <dalmeida@mit.edu>

	* ccdefname.c (get_from_registry_indirect, try_dir, get_from_os): 
		Extra robustness to win32 code.

	* init_os_ctx.c (krb5_get_config_files, krb5_free_config_files):
		Add function to get config files being used for current 
		context with corresponding free function.

1999-06-16  Danilo Almeida  <dalmeida@mit.edu>

	* init_os_ctx.c (os_init_paths): Enhance win32 heuristics to use 
		environment variable (like Unix) and to use the registry
		too.  Will try executable's dir before windows dir if 
		not secure.

	* ccdefname.c (get_from_os): Enhance win32 heuristics to use 
		registry properly, default to API: properly,
		and to use temp dirs before the windows dir.

1999-06-11  Miro Jurisic  <meeroh@mit.edu>

	* init_os_ctx.c (os_init_paths): added NRL config file name correctly
		(thanks dalmeida)

1999-06-09  Miro Jurisic  <meeroh@mit.edu>

	* c_ustime.c (krb5_crypto_us_timeofday): fixed Mac PPC #ifdef

1999-06-09  Miro Jurisic  <meeroh@mit.edu>

	* c_ustime.c (krb5_crypto_us_timeofday): #ifdefed microseconds on Mac to be
		PPC-only

1999-06-09  Miro Jurisic  <meeroh@mit.edu>

	* c_ustime.c (AbsoluteToSecsNanosecs): Fixed the UInt64 division
	* c_ustime.c (krb5_crypto_us_timeofday): now returning the correct value

1999-06-09  Miro Jurisic  <meeroh@mit.edu>

	* c_ustime.c (AbsoluteToSecsNanosecs): Fixed the UInt64 comparison

1999-06-09  Miro Jurisic  <meeroh@mit.edu>

	* net_read.c, net_write.c: now setting errno on Mac too
	
1999-06-09  Miro Jurisic  <meeroh@mit.edu>

	* c_ustime.c (krb5_crypto_us_timeofday, HaveAccurateTime,
		AbsoluteToSecsNanosecs): Added support for microseconds or
		better timers on the Mac when available

	* c_ustime.c (krb5_crypto_us_timeofday): fixed usecs counting bug
		(From Chas Williams)

	* init_os_ctx.c (GetMacProfilePathname): removed hardcoded config file name
		(From Chas Williams)
	
	* init_os_ctx.c (os_init_paths): added NRL config file name
		(From Chas Williams)

Tue Jun  8 15:26:21 1999  Alexandra Ellwood  <lxs@mit.edu>

	* changepw.c: Changed errno to SOCKET_ERRNO/SOCKET_SET_ERRNO
	    after socket operations to work with new Mac OT SocketsLib.
	
	* hst_realm.c: Changed errno to SOCKET_ERRNO/SOCKET_SET_ERRNO
	    after socket operations to work with new Mac OT SocketsLib.
	
	* localaddr.c: Changed errno to SOCKET_ERRNO/SOCKET_SET_ERRNO
	    after socket operations to work with new Mac OT SocketsLib.
	
	* net_read.c: Changed errno to SOCKET_ERRNO/SOCKET_SET_ERRNO
	    after socket operations to work with new Mac OT SocketsLib.
	
	* net_write.c: Changed errno to SOCKET_ERRNO/SOCKET_SET_ERRNO
	    after socket operations to work with new Mac OT SocketsLib.
	
	* sn2princ.c: Changed errno to SOCKET_ERRNO/SOCKET_SET_ERRNO
	    after socket operations to work with new Mac OT SocketsLib.

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

	* Makefile.in: Do win32 build in subdir.

Fri May  7 18:04:48 1999  Danilo D Almeida  <dalmeida@mit.edu>

	* locate_kdc.c (krb5_locate_kdc): Fixed typo.

Fri May  7 14:39:08 1999  Theodore Y. Ts'o  <tytso@mit.edu>

	* locate_kdc.c (krb5_locate_kdc): Return KRB5_REALM_UNKNOWN if
 		profile_get_values returns PROF_NO_RELATION or
 		PROF_NO_SECTION.

1999-04-01  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* prompter.c (krb5_prompter_posix): Update to use new prompter
		prototype which takes an extra argument for the window
		titlebar name.  (From Frank Cusack) [krb5-kdc/662]

Thu Mar 25 18:45:48 1999  Tom Yu  <tlyu@mit.edu>

	* promptusr.c (krb5_os_get_tty_uio): getchar() returns int, not
	char.

1999-03-12  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* init_os_ctx.c (krb5_os_init_context, krb5_os_free_context):
		Sample the ccdefault name at the time when we create the
		context.  Free the ccdefault name when we free the os
		context.

	* ccdefname.c (krb5_cc_default_name, krb5_cc_set_default_name):
		Check to make sure the context is valid and return an
		error if it isn't.

1999-03-11  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* ccdefname.c (get_from_os): Add missing call to get_from_registry
		under windows.

Fri Feb 19 20:49:18 1999  Tom Yu  <tlyu@mit.edu>

	* ccdefname.c (get_from_os): Add missing close-paren; also replace
	#elif just in case.

Fri Feb  5 01:05:43 1999  Theodore Y. Ts'o  <tytso@mit.edu>

	* ccdefname.c (get_from_os): On the Windows platform,
		automatically generate the correct default cache name
		based on what krb5_cc_dfl_ops is set to.

	* realm_dom.c (krb5_get_realm_domain): Add modifiers so that this
		function can get exported in a Windows DLL.

Tue Feb  2 16:01:58 1999  Tom Yu  <tlyu@mit.edu>

	* read_pwd.c: Remove reference to CPP symbol "unix".

1999-01-29  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* ccdefname.c: Add a new function krb5_cc_set_default_name(),
		which is used set the default ccname stored in the
		krb5_context.  All of the OS-specific functions to
		determine the default ccname is moved to this function.
		The krb5_cc_default_name() function now just reads the
		default ccname from the os_context, and will call
		krb5_cc_set_default_name() to set the default ccname if
		necessary.

	* t_std_conf: Added functions to test krb5_cc_default_name and
		krb5_cc_set_default_name().  Fixed the call to
		krb5_locate_kdc to support the new variables added by
		the Cygnus initial ticket API merge.

1999-01-27  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* localaddr.c: On the macintosh, check to see if getmyipaddr
		returns NULL, and return an error in that case.

Tue Jan  5 00:11:49 1999  Theodore Y. Ts'o  <tytso@mit.edu>

	* sn2princ.c (krb5_sname_to_principal): Windows NT5's broken
 	 	 resolver gratuitously tacks on a trailing period to the
 	 	 hostname (at least it does in Beta2).  Deal with this
 	 	 brain-damage.

Tue Dec 22 01:22:24 1998  Theodore Y. Ts'o  <tytso@mit.edu>

	* changepw.c: Add a test for _WIN16 as well as _WIN32 for sockets
 		workaround (in case we do want to build the 16 bit library
 		again someday)

Sat Dec  5 01:12:25 1998  Theodore Y. Ts'o  <tytso@mit.edu>

	* localaddr.c: Added missing KRB5_DLLIMP and KRB5_CALLCONF macros
		from the function definition.

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

	* realm_iter.c: New function which iterators over the realms in
		the krb5.conf file.

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.)

	* lock_file.c (krb5_lock_file): Fix bug where if the fcntl-style
		lock succeeded, we should return immediately instead of
		trying to do flock-style locking.  Also check for
		HAVE_FCNTL_H and defined(F_SETLKW) and
		defined(F_RDLCK) instead of POSIX_FILE_LOCKS (so we
		can get rid of a non-standard autoconf symbol.)

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

	* lock_file.c (krb5_lock_file): Move the flock() fallback code
		from fcc_maybe.c into krb5_lock_file().  This works around
		the bug that certain lossy operating systems (mainly from
		our good friends at SunSoft) do not support
		POSIX_FILE_LOCKS on all filesystems (namely tmpfs) but do
		support flock on those filesystems.

1998-10-27  Marc Horowitz  <marc@mit.edu>

	* c_ustime.c, localaddr.c: moved here from lib/crypto

	* ktdefname.c (krb5_kt_default_name): there is code in the tree
	(notably, the admin server code) which uses globals to set the
	keytab which will be used by gssapi.  this is gross, and we need a
	better answer.  However, even that didn't work if there was an env
	var or krb5.conf variable, since those override krb5_defkeyname.
	Add a new global, krb5_overridekeyname, which really does override
	all the other keytab locators.  While I'm at it, make the buffer
	overflow checks sane.

Fri Sep 25 22:32:16 1998  Theodore Y. Ts'o  <tytso@mit.edu>

	* ccdefname.c: We shouldn't try to use the CCache API on Unix
		systems.  (The maze of #ifdef's was confusing.)

Tue Sep  1 15:44:11 1998  Theodore Y. Ts'o  <tytso@mit.edu>

	* ccdefname.c (krb5_cc_default_name): Changed the PC version to
 		use the CCache API by default.  Removed the old Macintosh
 		code that had been commented out.  (If we need to
 		ressurect it, we'll get it from CVS.)

Fri Aug 21 17:37:00 1998  Miro Jurisic  <meeroh@mit.edu>

	* ccdefname.c.c (krb5_cc_default_name): Changed the Mac
			version to use CCache API by default.

Thu Jul 16 09:59:34 1998  Ezra Peisach  <epeisach@mit.edu>

	* changepw.c (krb5_change_password): Changes casts from char * to
         	krb5_octet * to match krb5_address structure elements.

Wed Jul  1 17:54:56 1998  Theodore Y. Ts'o  <tytso@mit.edu>

	* macsock.c(inet_ntoa): Fix obvious bug where we were returning a
 		pointer to an automatic variable which should have been a
 		static.  Fortunately nothing in the Mac tree was using
 		inet_ntoa()....

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

	* t_std_conf.c (main): POSIX states that getopt returns -1
		when it is done parsing options, not EOF.

Wed Sep 24 12:10:29 1997 Marshall Vale <mjv@mit.edu> (Checked in 1/13/98)

	* init_os_ctx.c: Changed all PBGetCatInfo to PBGetCatInfoSync for new
		Universal Headers.
		
	* ccdefname.c: Changed all PBGetCatInfo to PBGetCatInfoSync for new
		Universal Headers.

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:24:39 1998  Tom Yu  <tlyu@mit.edu>

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

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

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

Fri Jan 30 15:56:15 1998  Tom Yu  <tlyu@mit.edu>

	* changepw.c (krb5_change_password): KRB5_USE_INET ->
	HAVE_NETINET_IN_H.

Fri Jan  2 21:28:56 1998  Tom Yu  <tlyu@mit.edu>

	* locate_kdc.c (krb5_locate_kdc): Check return of
	malloc. [krb5-libs/518]

	* changepw.c (krb5_change_password): Check return of
	malloc. [krb5-libs/518]

Tue Dec 16 11:00:18 1997  Ezra Peisach  <epeisach@mit.edu>

	* locate_kdc.c (krb5_locate_kdc): Free hostlist array elements
		when finished with them.

Sat Dec  6 23:12:23 1997  Ezra Peisach  <epeisach@mit.edu>

	* locate_kdc.c (krb5_locate_kdc): Get rid of extra krb5_xfree
	which caused freeing of memory twice.

Sat Dec  6 02:34:50 1997  Tom Yu  <tlyu@mit.edu>

	* Makefile.in: Add changepw.c, prompter.c.

	* changepw.c: New file; Cygnus password changing protocol.

	* locate_kdc.c: Add parameter to indicate master KDC.

	* os-proto.h: Reflect changes to locate_kdc.

	* prompter.c: New file; Cygnus initial creds.

	* sendto_kdc.c: Add parameter to indicate master KDC.

Mon Oct  6 11:40:11 1997  Ezra Peisach  <epeisach@kangaroo.mit.edu>

	* t_std_conf.c (main): Call krb5_free_context when done.

Wed Oct  1 04:58:34 1997  Tom Yu  <tlyu@mit.edu>

	* configure.in: Punt some things that are otherwise gotten from
	include/krb5/configure.in.

	* gmt_mktime.c: Get k5-int.h to get some autoconf symbols.

Tue Sep 30 19:57:27 1997  Tom Yu  <tlyu@mit.edu>

	* timeofday.c: Replaace erroneously named POSIX_TYPES and timetype
	with plain old time_t, since we're using AC_CHECK_TYPE now to
	handle it.

Thu Sep 25 21:24:54 1997  Tom Yu  <tlyu@mit.edu>

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

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

	* os-proto.h: Replace KRB5_USE_INET with something more sane.

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

	* genaddrs.c (krb5_auth_con_genaddrs): Replace KRB5_USE_INET with
	something more sane.

	* gen_port.c (krb5_gen_portaddr): Replace KRB5_USE_INET with
	something more sane.

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

Thu Sep 18 17:56:00 1997  Tom Yu  <tlyu@mit.edu>

	* hst_realm.c: Replace USE_STRING_H with something more sane.

Mon Sep 15 15:21:12 1997  Ezra Peisach  <epeisach@mit.edu>

	* ccdefname.c (krb5_cc_default_name): Returns a const char *.

Sat Aug 16 10:11:20 1997  Ezra Peisach  <epeisach@kangaroo.mit.edu>

	* gmt_mktime.c (days_in_month): Now const.
	  Originally by raeburn@cygnus.com from the Kerbnet release

Tue Feb 25 00:29:33 1997  Richard Basch  <basch@lehman.com>

	* read_pwd.c: Define Windows interface for krb5_read_password
	* win-pwd.rc: Resource file for Windows password dialog box
	* win-pwd.h: Support definitions for Windows krb5_read_password

Sat Feb 22 22:41:02 1997  Richard Basch  <basch@lehman.com>

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

Fri Feb 21 20:06:55 1997  Ezra Peisach  <epeisach@mit.edu>

	* def_realm.c: Remove extern declaration of un-used krb5_config_file.

Fri Feb  7 11:11:18 1997  Richard Basch  <basch@lehman.com>

	* mk_faddr.c (krb5_make_fulladdr): Add FAR declarations (win16)

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

	* Makefile.in: win32 build

	* ccdefname.c, def_realm.c, free_hstrl.c, genaddrs.c, hst_realm.c,
	init_os_ctx.c, ktdefname.c, localaddr.c, sn2princ.c, timeofday.c,
	ustime.c
		DLL export several more common functions (see lib/krb5.def
		for the full list of functions exported)

Thu Feb  6 15:46:24 1997  Tom Yu  <tlyu@mit.edu>

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

Thu Jan  2 17:19:11 1997  Tom Yu  <tlyu@mit.edu>

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

Wed Nov 13 02:53:31 1996  Tom Yu  <tlyu@mit.edu>

	* osconfig.c: Add warning re: global variables.

	* ktdefname.c, osconfig.c: Revert previous kt_default_name
	changes.

	* ktdefname.c (krb5_kt_default_name): Fix a few memory-leak type
	problems in previous changes.

Tue Nov 12 22:07:55 1996  Tom Yu  <tlyu@mit.edu>

	* osconfig.c: Remove krb5_defkeyname to catch other things that
	may break.

	* ktdefname.c (krb5_kt_default_name): Change logic to no longer
	use a global variable; also add krb5_kt_set_default_name() to
	allow for the changing of the default keytab name in the context.

Wed Nov  6 16:24:56 1996  Theodore Y. Ts'o  <tytso@mit.edu>

	* init_os_ctx.c (os_init_paths): Don't ignore errors found from
		parsing the config file.  Currently, we return an error if
		the profile isn't found.  In the future we can maybe do
		something better with intelligent defaulting if krb5.conf
		doesn't exist, but we don't have this today.

Thu Aug 22 15:19:47 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* an_to_ln.c (db_an_to_ln): Remove references to dead BERK_DB_DBM
	 	code.

Tue Jul 30 19:15:55 1996  Sam Hartman  <hartmans@tertius.mit.edu>

	* Makefile.in (check-unix): Comment out an_2_ln tests that use
        database.

	* an_to_ln.c (krb5_aname_to_localname): Make the db lookup verison
        of aname_2_localname optional.

Sun Jul 28 22:39:12 1996  Tom Yu  <tlyu@mit.edu>

	* an_to_ln.c (aname_do_match): #elif HAVE_REGEXP_H should have
		been HAVE_REGEXPR_H

Fri Jul 26 15:58:32 1996  Marc Horowitz  <marc@mit.edu>

	* configure.in, an_to_ln.c (do_replacement, aname_do_match): use
 	the compile() function in -lgen on solaris.  Check for the
 	relevant stuff at configure-time

Fri Jul 12 21:38:15 1996  Marc Horowitz  <marc@mit.edu>

	* ktdefname.c (krb5_kt_default_name): allow the default keytab name
	to be specified in the config file.

Wed Jun 12 01:12:32 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* net_read.c (krb5_net_read):
	* net_write.c (krb5_net_write): In case of an error, on Windows
		machines, set errno from SOCKET_ERRNO, since the interface
		assumes the error is passed back the errno global
		varaible.  This really needs to be fixed sometime...

	* read_msg.c: If ECONNABORTED is not defined, try using the
		Winsock version of the error code (WSAECONNABORTED).

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

	* read_pwd.c:
	* promptusr.c:
	* lock_file.c:
	* kuserok.c:
	* ktdefname.c (krb5_kt_default_name): 
	* init_os_ctx.c (os_init_paths): 
	* ccdefname.c: 
	* an_to_ln.c (db_an_to_ln): Change _WINDOWS to _MSDOS, and add
	 	check for _WIN32.

Thu Apr 18 16:24:44 1996  Theodore Y. Ts'o  <tytso@mit.edu>

	* macsock.c (getsockname, getpeername): Correctly implement
 		getsockname(), so it does getsockname(), not
 		getpeername(), and add the function getpeername().

Sat May 11 10:08:15 1996  Ezra Peisach  <epeisach@kangaroo.mit.edu>

	* configure.in: Need to include sys/types.h before regexp.h in
		test to see if regcomp works.
		Add V5_USE_SHARED_LIB for the tests that are built.

Tue Apr 30 17:51:47 1996  Ken Raeburn  <raeburn@cygnus.com>

	* configure.in: Test that regcomp actually works.

	* Makefile.in (check-unix): Use $(RM).

	* t_an_to_ln.c (main): Print principal name when an error is
	detected.

Thu Apr 11 22:15:44 1996  Theodore Y. Ts'o  <tytso@dcl>

	* ustime.c (krb5_us_timeofday): When doing the time offset
		adjustments, make sure the microseconds field doesn't go
		negative.

Thu Mar 28 17:20:12 1996  Theodore Y. Ts'o  <tytso@dcl>

	* DNR.c: Replace eight-year-old version of this file with the
		latest version from the Code Warrior MacTCP files.  

	* macsock.c: Use new MacTCP header files.

Wed Mar 27 18:31:44 1996  Theodore Y. Ts'o  <tytso@dcl>

	* macsock.c (gethostbyname, gethostbyaddr): Use universal
		procedure pointers (UPP), which are required on the Mac
		Power PC.

Mon Mar 18 21:49:39 1996  Ezra Peisach  <epeisach@kangaroo.mit.edu>

	* configure.in: Add KRB5_RUN_FLAGS

	* Makefile.in: Use runtime flags.

Mon Mar 18 17:30:54 1996  Ezra Peisach  <epeisach@kangaroo.mit.edu>

	* sn2princ.c (krb5_sname_to_principal): Add casting to avoid warnings.

Mon Mar 18 14:18:58 EST 1996  Richard Basch  <basch@lehman.com>

	* sn2princ.c: Do not try to re-assign const variables.

Sun Mar 17 20:42:17 1996  Ezra Peisach  <epeisach@mit.edu>

        * configure.in: Add USE_ANAME, KRB5_LIBRARIES

	* Makefile.in: Properly use libraries as specified by configure

Wed Mar 13 13:11:49 1996  Ezra Peisach  <epeisach@kangaroo.mit.edu>

	* t_std_conf.c: Include string.h

Thu Feb 29 16:14:46 1996  Theodore Y. Ts'o  <tytso@dcl>

	* sendto_kdc.c (krb5_sendto_kdc): Take out calls to
		SOCKET_INITIALIZE and SOCKET_CLEANUP.  This gets done in
		win_glue.c, and we only need to do this once.  (XXX What
		about Macintosh?)

Tue Feb 27 18:48:03 1996  Theodore Y. Ts'o  <tytso@dcl>

	* hostaddr.c (krb5_os_hostaddr): Use #define NEED_SOCKETS instead
		of #including <netdb.h>  (this breaks under windows).

Mon Feb 26 17:04:26 1996  Theodore Y. Ts'o  <tytso@dcl>

	* promptusr.c: Don't compile promptusr for Windows or Macintosh.

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

	* ktdefname.c (krb5_kt_default_name): Under Windows, assume that
		the keytab file is located in the Windows directory.

Thu Feb 22 13:16:16 1996  Ezra Peisach  <epeisach@kangaroo.mit.edu>

	* Makefile.in (check-unix): Set LD_LIBRARY_PATH for kdb5_anadd.

	* hostaddr.c (krb5_os_hostaddr): Set magic number in structure.

	* full_ipadr.c (krb5_make_full_ipaddr): Set magic number in structure.

Sat Feb 17 00:05:38 1996  Theodore Y. Ts'o  <tytso@pao.MIT.EDU>

	* def_realm.c (krb5_get_default_realm): If the configuration file
		does not exist (context->profile == NULL) return
		KRB5_CONFIG_CANTOPEN; if the default realm is not defined
		in the configuration file, return an error message saying
		so.   These changes just make the diagnostic error
		messages more clear.

Thu Jan 11 18:32:54 1996  Ezra Peisach  (epeisach@paris)

	* Makefile.in (check-unix): Ultrix test does not support -x.

Fri Jan  5 09:00:47 1996  Ezra Peisach  <epeisach@kangaroo.mit.edu>

	* locate_kdc.c (krb5_locate_kdc): Add parrentheses for assignment
		in conditional. (gcc -Wall)

	* init_os_ctx.c (krb5_os_init_context): Remove unused variables

	* an_to_ln.c (aname_do_match): Initialize local variable before
		referenced. 

Thu Jan  4 22:23:04 1996  Theodore Y. Ts'o  <tytso@dcl>

	* hostaddr.c (krb5_os_hostaddr): New function which takes a
		hostname and returns a list of krb5 addresses.  (This is
		basically a glue routine that converts the result of
		gethostbyname() to krb5 addresses.)

Thu Dec 21 17:51:58 1995  Theodore Y. Ts'o  <tytso@dcl>

	* Makefile.in (t_an_to_ln): Use $(LD) instead of $(CC) to link
		final executables, so that we can more easily use purify.

	* hst_realm.c (krb5_get_host_realm): Eliminate memory leak; realm
		was already being allocated by the profile library; no
		reason to reallocate it again.

Wed Nov 15 10:53:16 1995    <tytso@rsts-11.mit.edu>

	* promptusr.c: New function for doing generic tty input and output.
		Eventually read_password should use this function.

Wed Nov 15 20:40:03 1995  Mark Eichin  <eichin@cygnus.com>

	* lock_file.c (krb5_lock_file): initialize lock_arg to a copy of a
 	static (thus zero) struct flock, to avoid panic'ing sunos 4.1.4.

Sun Nov 12 05:31:21 1995  Mark W. Eichin  <eichin@cygnus.com>

	* def_realm.c (krb5_get_default_realm): check for PROF_NO_PROFILE
	and return KRB5_CONFIG_CANTOPEN instead of BADFORMAT so that the
	user in the end knows what is going on.

Mon Oct  9 19:05:24 1995  Ezra Peisach  <epeisach@kangaroo.mit.edu>

	* ktdefname.c (krb5_kt_default_name): If profile_secure flag is
		set in the context then do not allow changing the location
		of the default keytab with an environment variable.

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

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

Thu Oct  5 07:49:26 1995  Ezra Peisach  <epeisach@kangaroo.mit.edu>

	* init_os_ctx.c (krb5_secure_config_files): New function that 
		will set flag and path to prevent user from overriding
		configuration files with environment variables.

Mon Oct  2 17:36:38 1995  Ezra Peisach  <epeisach@kangaroo.mit.edu>

	* init_os_ctx.c (krb5_os_init_context): Put back in the
		KRB5_CONFIG environment before setting to default.

Tue Sep 26 22:46:01 1995  Mark Eichin  <eichin@cygnus.com>

	* init_os_ctx.c (krb5_os_init_context): use profile_init_path for
	unix, and DEFAULT_PROFILE_PATH.

Fri Sep 29 16:31:47 1995  Theodore Y. Ts'o  <tytso@dcl>

	* osconfig.c: Remove krb5_lname_file; it's not used any more.

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

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

Fri Sep 22 15:57:33 1995  Mark Eichin  <eichin@cygnus.com>

	* write_msg.c (krb5_write_message): check the real length
	variable, not the net version.

Wed Sep 20 12:00:00 1995  James Mattly  <mattly@fusion.com>

	* macsock.c:  Added TCP streams to the emulation package.  gethostname
		now no longer returns true cannonical hostnames.

Wed Sep 13 11:01:18 1995 Keith Vetter (keithv@fusion.com)

	* Makefile.in: had to define away DBFLAGS for the PC.

Mon Sep 11 17:46:18 1995  Ezra Peisach  <epeisach@kangaroo.mit.edu>

	* genaddrs.c (krb5_auth_con_genaddrs): Replace function
		declaration back to int instead of SOCKET due to prototype
		mismatching. 

Sun Sep 10 12:00:00 1995  James Mattly  <mattly@fusion.com>

	* ustime.c: use the version of getTimeZoneOffset in :os:crypto: for
		_MACINTOSH.

Wed Sep  6 12:00:00 1995  James Mattly  <mattly@fusion.com>

	* localaddr.c changed name to oslocaladdr.c for metrowerks project
		file management.

	* ustime.c:  changed mac version of krb5_crypto_us_timeofday to compile
		with contemporary header files for metrowerks

	* macsock.c:  added tcp stream support to suppliment the udp.  Added
		getsockname.  Fixed gethostname to stop appending '.' to the
		end of a connonical hostname.

	* net_write.c:  need to cast file descriptors to SOCKETs

	* net_read.c:  need to cast file descriptors to SOCKETs

	* krbfileio.c:  mac doesn't support fsync, define the usage out

	* init_os_cxt.c:  move the default location of the krb conf file to
		the preferences folder.  Added some routines to take a 
		mac FSSpec and turn it into a mac pathname string.

	* hst_realm.c:  assign a NULL to retrealms to clean up a warning.

	* genaddrs.c:  support getsockname from macsock

	* ccdefname.c:  move the cred cache to the preferneces folder for mac

	* an_to_ln.c:  turn functions off because I don't have a dbm library

	* timeofday.c:  make krb5_timeofday use krb5_crypto_us_timeofday to 
		incorperate the epoch difference between mac and unix.

Fri Sep  1 00:47:27 1995  Theodore Y. Ts'o  <tytso@dcl>

	* Makefile.in (check-unix): Add a test case to make sure
		krb5_get_host_realm does something sane when passed in a
		hostname which doesn't have a default domain.

	* hst_realm.c (krb5_get_host_realm): If an hostname does not have
		a domain, don't try to get a domain default (which
		results in a strange error being returned).

	* toffset.c: Added new file which implements the abstract
		interfaces for manipulating the time offset fields in the
		os context.

	* ustime.c (krb5_us_timeofday): Add support for using the time
		offset fields in the os context.

	* timeofday.c (krb5_timeofday): Add support for using the time
		offset fields in the os context.

	* init_os_ctx.c (krb5_os_init_context): Initialize the time offset
		and flags fields in the os context.

Thu Aug 31 17:24:48 EDT 1995	Paul Park	(pjpark@mit.edu)

	* t_an_to_ln.c - Translate until error and return status.
	* Makefile.in - Test aname_to_lname under check-unix.

Thu Aug 24 18:56:35 1995  Theodore Y. Ts'o  <tytso@dcl>

	* .Sanitize: Update file list.

Wed Aug 16 02:45:19 1995  Chris Provenzano <proven@mit.edu>

        * lock_file.c (krb5_lock_file()), unlck_file.c (krb5_unlock_file()):
		Pass the fd in instead of converting it from FILE *.

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

	* kuserok.c (krb5_kuserok): Add parens to shut up gcc -Wall

	* genaddrs.c (krb5_auth_con_genaddrs): Add parens to shut up gcc
		-Wall

	* an_to_ln.c: Include ctype.h to get some prototypes; also add
		parens to shut up gcc -Wall

Fri Jul 28 23:28:11 1995  Sam Hartman  <hartmans@tertius.mit.edu>

	* sn2princ.c (krb5_sname_to_principal): GDon't use default realm
        just because we are on local machine. Instead, go through normal
        translations.

Fri Jul 7 16:32:41 EDT 1995	Paul Park	(pjpark@mit.edu)
	* Makefile.in - Find com_err in TOPLIBD.

Thu Jul  6 17:26:03 1995  Tom Yu  <tlyu@lothlorien.MIT.EDU>

	* localaddr.c: moved to lib/crypto/os; just a stub here.

	* ustime.c: moved to lib/crypto/os; just a stub here.

Thu Jul  6 09:56:56 1995  Ezra Peisach  <epeisach@kangaroo.mit.edu>

	* Makefile.in (clean): Remove t_an_to_ln.o

Wed July  5 15:52:31 1995  James Mattly  <mattly@fusion.com>
	* an_to_ln.c added _MACINTOSH conditions
	* genaddrs.c added HAS_MACSOCK_H conditions
	* krbfileio.c added THREEPARAMOPEN
	* kuserok.c added THREEPARAMOPEN
	* macsock.c added stub for gethostnameA
	* mk_faddr.c added HAS_MACSOCK_H conditions
	* read_pwd.c added _MACINTOSH condition
	* sys_log.c added _MACINTOSH condition

Fri Jun 30 14:44:17 EDT 1995	Paul Park	(pjpark@mit.edu)
	* an_to_ln.c - Add profile logic to aname_to_lname.  We can now
		specify databases, rules and explicit mappings to convert
		between auth name and local name.
	* t_an_to_ln.c - Rudimentary test procedure.  Needs work to be automatic
	* configure.in - Add --with-aname-dbm to select between Berkeley and
		DBM aname database format.
	* Makefile.in - Add definitions to select aname rules.

Tue Jun 27 15:48:41 EDT 1995	Paul Park	(pjpark@mit.edu)
	* read_pwd.c(intr_routine) - Add signal name argument to signal handler
		to conform to prototype.

Sat Jun 10 23:07:27 1995  Tom Yu  (tlyu@dragons-lair)

	* genaddrs.c: krb5_auth_context redefinitions

Fri Jun  9 22:08:33 1995  Theodore Y. Ts'o  <tytso@dcl>

	* gmt_mktime.c (gmt_mktime): Change assertion to check to make
		sure that the day of the month is >= 1, not 0.

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

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

Wed Jun  7 14:43:56 1995    <tytso@rsx-11.mit.edu>

	* def_realm.c (krb5_get_default_realm), get_krbhst.c
		(krb5_get_krbhst), hst_realm.c (krb5_get_host_realm), 
		init_os_ctx.c (krb5_os_init_context), osconfig.c, 
		realm_dom.c (krb5_get_realm_domain): Remove old ifdef'ed
		code which read in krb.conf and krb.realms.

	* read_pwd.c (krb5_read_password): Remove old #ifdef notdef code.
		Significantly simplified and cleaned up function.
		Removed BSD 4.3 compatibility code.  (If we ever need
		to make this work on a non-POSIX system, we'll supply
		POSIX termios emulation functions in src/lib/krb5/posix.)

Fri Jun 2 17:54:12 1995 Keith Vetter (keithv@fusion.com)

	* net_read.c, net_write.c: made to work with sockets.

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

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

Thu May 25 15:33:45 1995 Keith Vetter (keithv@fusion.com)

	* os-proto.h: moved prototype for krb5_make_fulladdr to
	   los-proto.h since it's needed by the krb directory.
	* ktdefnam.c: fixed signed/unsigned mismatch.
	* read_pwd.c: pc stub didn't track changes to the real routines
	   parameter list (const was added).

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

	* t_std_conf.c, timeofday.c, unlck_file.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.

Tue May 16 10:33:03 EDT 1995	Paul Park	(pjpark@mit.edu)
	* gmt_mktime.c	- Use the actual year instead of the number of years
			  since 1900 when determining if a year has a leapday.
			  Makes dates after February in the year 2000 correct.

Mon May 15 05:08:05 1995    <tytso@rsx-11.mit.edu>

	* ktdefname.c (krb5_kt_default_name): Use the KRB5_KTNAME
		environment variable to override the default location of
		the keytab.

Mon May  8 22:19:23 1995  Ezra Peisach  <epeisach@kangaroo.mit.edu>

	* read_pwd.c (krb5_read_password): use volatile on all
		systems. Let configure define volatile to nothing on
		systems without. 

	* configure.in: Add HAS_ANSI_VOLATILE

	* mk_faddr.c (krb5_make_fulladdr): Allocate enough memory for
		raddr contents.

	* read_pwd.c (krb5_read_password): Make arguments prompt and
		prompt2 const char * for convenience to callers.

Mon May  1 17:05:21 1995  Ezra Peisach  <epeisach@kangaroo.mit.edu>

	* init_os_ctx.c (krb5_set_config_files): Added required const to
		function declaration to be compatbile with call to
		profile_init. 

Mon May 01 15:56:32 1995  Chris Provenzano (proven@mit.edu)

        * genaddrs.c (krb5_auth_con_genaddrs()),
	* mk_faddr.c (krb5_make_fulladdr()), os-proto.h :
                Changes to auth_context to better support full addresses.

Sun Apr 30 16:03:59 1995  Ezra Peisach  <epeisach@kangaroo.mit.edu>

	* osconfig.c: Global variables krb5_config_file and
		krb5_trans_file conditionalized on OLD_CONFIG_FILES.

Sat Apr 29 07:07:22 1995  Theodore Y. Ts'o  <tytso@lurch.mit.edu>

	* init_os_ctx.c (krb5_set_config_files): New function.  Provides a
		way to set a new set of config files for a particular OS
		context.

	* init_os_ctx.c (krb5_os_init_context): Don't return an error if 
		profile_init() returns an error.

Fri Apr 28 09:58:31 EDT 1995	Paul Park	(pjpark@mit.edu)

	Move adm_conn.c from libkrb5 to libkadm.

Thu Apr 27 17:50:14 1995 Keith Vetter (keithv@fusion.com)

	* adm_conn.c: added constant to pull in needed PC code, and
	   removed two unused variables.
	* genaddrs.c: needed casts on getsockname and getpeername calls.
	* mk_faddr.c: the int->byte code needed explicit casts.
	* os-proto.h: added missing prototype for krb5_make_fulladdr.

Wed Apr 26 16:00:52 EDT 1995	Paul Park	(pjpark@mit.edu)

	* Add adm_conn.c - module to provide a connection to an administrative
	  (kpasswd/kadmin) server.

Wed Apr 27 11:30:00 1995 Keith Vetter (keithv@fusion.com)

	* osconfig.c: krb5_find_config_files only used for OLD_CONFIG_FILES.
	* init_os_.c: Get config file location via windows ini files.

Thu Apr 27 13:04:54 1995  Ezra Peisach  <epeisach@kangaroo.mit.edu>

	* Makefile.in (clean): Remove t_std_conf.o 

Tue Apr 25 21:58:23 1995  Chris Procenzano (proven@mit.edu)

	* Makefile.in : Added source files mk_faddr.c and genaddrs.c.
	* mk_faddr.c (krb5_mk_fulladdr()): Makes a full address from
		a struct sockaddr_in.
	* genaddrs.c (krb5_auth_con_genaddrs()) : Generate a full address
		from the active file descriptor and place it in the 
		auth_context for the calls mk_safe(), mk_priv(), mk_safe(), 
		rd_cred(), rd_priv(), and rd_safe().
	* gen_rname.c (krb5_gen_replay_name()) : Fixed to take any type of
		krb5_address and generate a rcache name.
	* os-proto.h (krb5_make_full_ipaddr()) : Removed prototype.

Tue Apr 25 14:09:26 1995  Theodore Y. Ts'o  <tytso@dcl>

	* t_std_conf.c (main): Add declaration of optarg.

Tue Apr 25 04:50:13 1995  Chris Procenzano (proven@mit.edu)

	* locate_kdc.c (krb5_locate_kdc()): Pass a NUL terminated realm
		to profile_get_values(). 

Mon Apr 24 17:20:14 1995  Ezra Peisach  <epeisach@kangaroo.mit.edu>

	* locate_kdc.c (krb5_locate_kdc): Don't deref NULL pointer
	returned from profile_get_values if profile is not set.

Sat Apr 22 00:11:12 1995  Theodore Y. Ts'o  (tytso@dcl)

	* Makefile.in, configure.in, t_std_conf.c: Add test program to
		test the standard configuration krb5 routines.

	* osconfig.c: Don't define krb5_kdc_udp_portname and
		krb5_kdc_sec_portname any more.	 There's no real point...

	* hst_realm.c (krb5_get_krbhst): Strip off the trailing dot from
		the hostname if present.

	* locate_kdc.c (krb5_locate_kdc): Use the profile code to get the
		list of Kerberos servers (plus port numbers) for a
		particular realm from [realms]/<realm>/kdc

Fri Apr 21 11:38:45 1995  Theodore Y. Ts'o  <tytso@lurch.mit.edu>

	* def_realm.c (krb5_get_default_realm): Use the profile code to
		get the default realm from [libdefaults]/default_realm.

	* get_krbhst.c (krb5_get_krbhst): Use the profile code to get the
		list of Kerberos servers for a particular realm from 
		[realms]/<realm>/kdc

	* realm_dom.c (krb5_get_realm_domain):	Use the profile code to
		get the default domain postfix for a realm (used only to
		convert V4 -> V5 principals) from 
		[realms]/<realm>/default_domain

	* hst_realm.c (krb5_get_host_realm): Use the profile code to get
		the default realm given a particular host from
		[domain_realm]/<host|domain>

	* init_os_ctx.c (krb5_os_init_context): When the OS context is
		initialized, also initialize the profile file.	This loads
		in the /etc/krb5.conf file.

Wed Apr 19 13:50:19 1995  Ezra Peisach	(epeisach@kangaroo.mit.edu)

	* def_realm.c: (krb5_get_default_realm) - remove global default realm.
		Moved into the context. (krb5_set_default_realm) added.

Fri Apr 14 22:15:00 1995  Theodore Y. Ts'o  <tytso@lurch.mit.edu>

	* an_to_ln.c (dbm_an_to_ln): Don't compile dbm_an_to_ln() if
		USE_DBM_LNAME isn't defined.

Fri Apr 14 15:15:48 1995    <tytso@rsx-11.mit.edu>

	* hst_realm.c (krb5_get_host_realm): Eliminate memory leak in the
		unlikely case that gethostname fails.

		If the krb.realms file isn't available, use the default
		realm of the host.

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

	* *.[ch]: removed unneeded INTERFACE from non-api functions.
	* read_pwd.c: __STDC__ conditional also checks the _WINDOWS define.

Fri Apr 7 15:32:04 1995 Keith Vetter (keithv@fusion.com)

	* ccdefname.c: 
	   changed windows stored filename syntax--dropped the 'FILE:' part.
	   changed buffer from malloc to static since we don't want it 
	    ever to fail, and nobody checks it for errors.

Wed Apr 5 16:32:07 1995 Keith Vetter (keithv@fusion.com)

	* get_krbh.c: better error handling--old return values were 
	   being overwritten.
	* locate_kdc.c: added new error code KRB5_REALM_CANT_RESOLVE for
	   when we have realm names but can't find their addresses.
	   Also, fixed up indenting of an if clause.
	* sendto_kdc.c: added winsock init/destroy calls because some
	    PC tcp/ip stacks seem to need it.

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

	* realm_dom.c (krb5_get_realm_domain): Don't indent #ifdef's!

	* hst_realm.c (krb5_get_host_realm): Don't indent #ifdef's!

Thu Mar 30 15:54:54 1995 Keith Vetter (keithv@fusion.com)

	* localaddr.c: in Windows/Mac code, fixed bug due to wrong level
	   of indirection on memcpy call.

Tue Mar 28 19:22:28 1995 Keith Vetter (keithv@fusion.com)

	For Windows, added calls to get the default config, realms and
	ccache files out of a windows ini file.
	* ccdefname.c: does this for the credential cache.
	* osconfig.c: does this for the config and realms files.
	* get_krbh.c, realm_do.c, hst_real.c, def_real.c: added calls to
	   set the default values.

Tue Mar 28 18:35:20 1995  John Gilmore	(gnu at toad.com)

	* DNR.c:  Add Apple MacTCP source file for domain name resolution.
	* macsock.c:  Add fake socket support routines for MacTCP.
	* Makefile.in (OBJS, SRCS):  Add DNR and macsock.
	* ccdefname.c:	On Mac, default cred cache is "STDIO:krb5cc" for now.
	FIXME, this needs to find the Preferences folder and use that.
	FIXME, shouldn't be conditioned on HAVE_MACSOCK_H.
	* gmt_mktime.c:	 Use HAVE_SYS_TYPES_H.
	* krbfileio.c:	Remove <sys/types.h>.
	* localaddr.c, sendto_kdc.c:  Convert to more generic socket
	support.  Use closesocket instead of close, SOCKET_ERRNO rather
	than errno, SOCKET rather than int, etc.
	* localaddr.c:	Use getmyipaddr() from macsock.c, if on Mac.
	Add FIXME for multiple local addresses.
	* lock_file.c:	Provide a dummy version for MacOS.
	* read_pwd.c (ECHO_PASSWORD):  Add #ifdef's to avoid all the ioctls
	and other stuff that turn off echoing.	This is useful for debugging
	on MacOS.  FIXME:  ECHO_PASSWORD needs to be added to configure.in.
	* ustime.c:  Bring in Mac-specific time-and-timezone code.  It
	probably isn't hooked up correctly, yet.

Mon Mar 27 14:16:39 1995  John Gilmore	(gnu at toad.com)

	* full_ipadr.c, gen_rname.c, port2ip.c, read_msg.c, write_msg.c:
	Remove explicit includes of socket files.
	* locate_kdc.c:	 Remove <sys/types.h> and "os-proto.h".

	* macsock.c (connect, send, recv):  Add for K5 compatability.
	(getmyipaddr):	Add for use in K5.

	* macsock.c:  Add Mac socket support file, verbatim from K4 release.

Fri Mar 24 17:58:15 1995  Theodore Y. Ts'o  (tytso@rt-11)

	* locate_kdc.c: Don't include sys/socket.h, netdb.h, netinet/in.h,
		since these files are already included by k5-config.h
	
	* sendto_kdc.c: Don't include sys/socket.h, since it is already
		included by k5-config.h

	* sn2princ.c: Don't include netdb.h, since it is already included
		by k5-config.h

Thu Mar 23 23:11:36 1995  Theodore Y. Ts'o  <tytso@dcl>

	* realm_dom.c (krb5_get_realm_domain): Don't indent preprocessor
		directives.  (Not portable).

	* hst_realm.c (krb5_get_host_realm): Don't indent preprocessor
		directives.  Removed excess close paren introduced by
		Keith.

Wed Mar 22 18:59:47 1995 Keith Vetter (keithv@fusion.com)

	* hst_realm.c, realm_dom.c: windows DLL can't use fscanf so had
	   to write a couple of routines to read what we need from the file.

Wed Mar 22 13:30:35 1995 Keith Vetter (keithv@fusion.com)

	* an_to_ln.c, kuserok.c: last two os routines ported to the PC.

Fri Mar 17 19:56:39 1995  John Gilmore	(gnu at toad.com)

	* Makefile.in (LDFLAGS):  Eliminate, duplicates config/pre.in.
	* localaddr.c:	Remove socket include files now handled in k5-int.h.

Wed Mar 15 12:19:47 1995 Keith Vetter (keithv@fusion.com)

	* sendto_kdc.c: made to work on the PC.

Tue Mar	 7 22:15:00 1995 Keith Vetter <keithv@fusion.com>

	* sendto_kdc.c: stubbed on the PC for now.

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

	* configure.in: take out ISODE_DEFS, ISODE_INCLUDE.

Tue Mar 7 13:35:21 1995 Keith Vetter (keithv@fusion.com)

	* *.c: ported all the c files except an_to_ln, kuserok, and
	  sendto_kdc which have windows stubs.
	* Makefile.in: reflects above changes.

Wed Mar 1 17:30:00 1995 Keith Vetter (keithv@fusion.com)

	* Makefile.in: made to work on the PC
	* ustime.c: added section for time on the PC
	* localaddr.c: added section for the PC--returns local IP address
	N.B. not sure how we're going to handle different machine dependent
	code changes. For now it's just added to the end of the file. Later,
	we have to decide on a solution for all.

Tue Feb 28 01:07:37 1995  John Gilmore	(gnu at toad.com)

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

Fri Feb	 3 08:24:18 1995  Theodore Y. Ts'o  (tytso@dcl)

	* gmt_mktime.c (gmt_mktime): Don't double count the leap day in a
		leap year.

Sun Jan 22 18:23:37 1995  John Gilmore	(gnu@cygnus.com)

	* get_krbhst.c (krb5_get_krbhst):  Declare realm argument const,
	to match prototype.

Wed Jan 18 11:08:59 1995    <tytso@rsx-11.mit.edu>

	* sendto_kdc.c (krb5_sendto_kdc): Fix use of connected sockets;
		previously krb5_sendto_kdc only used one socket per
		address family.	 This doesn't work; it now uses one
		socket per address. (krb5-bugs #938)

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

	* Actually move the file init_ctx.c to init_os_ctx.c in the CVS
		repository and also rename the routine	krb5_free_os_context()
		to krb5_os_free_context().

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

    * Added krb5_context to all krb5_routines

	* Moved init_ctx.c to init_os_ctx.c because a library cannot
		have more than on file with the same name. See krb/init_ctx.c

Mon Dec 19 15:20:35 1994  Theodore Y. Ts'o  (tytso@dcl)

	* init_ctx.c: New file.	 Initializes and frees the krb5_os_context
	  structure. 

	* realm_dom.c (krb5_get_realm_domain): Fixed minor bug where the
		length of the returned domain was calculated incorrectly.

Mon Oct 31 17:04:08 1994  Theodore Y. Ts'o  (tytso@dcl)

	* lock_file.c: Back out POSIX_FILE_LOCKS change.  (Should be
		depending on autoconf.h to supply this #define if
		necessary.) 

Thu Oct 13 17:24:31 1994  Theodore Y. Ts'o  (tytso@maytag)

	* configure.in: Add ISODE_DEFS

Fri Oct	 7 13:23:18 1994  Theodore Y. Ts'o  (tytso@dcl)

	* configure.in: Add test for unistd.h

	* lock_file.c: Use POSIX_FILE_LOCKS if _POSIX_VERSION is defined
		in unistd.h

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

	* configure.in: Put in correct dependency order of configure.in
		lines.

Wed Jul	 6 13:26:59 1994  Mark Eichin  (eichin@cygnus.com)

	* gmt_mktime.c (gmt_mktime): New file, new function. Similar to
	POSIX mktime, but always works in GMT.
	configure.in, Makefile.in: build gmt_mktime.

Wed Jun 22 15:49:30 1994  Theodore Y. Ts'o  (tytso at tsx-11)

	* locate_kdc.c (krb5_locate_kdc): Fixed default port numbers so
	they are loaded in network byte order instead of host byte order.


