This commit was manufactured by cvs2svn to create tag
[krb5.git] / src / lib / krb4 / ChangeLog
1 2000-06-09  Tom Yu  <tlyu@mit.edu>
2
3         * configure.in: Check for strdup().
4
5         * kparse.c: Remove strsave() and replace with an inlined static
6         version of strdup() if HAVE_STRDUP is not defined.
7
8         * g_ad_tkt.c (get_ad_tkt): ptr may be signed; cast while
9         assigning to larger types.  [from Charles Hannum by way of
10         ghudson]
11
12 2000-05-23  Ken Raeburn  <raeburn@mit.edu>
13
14         * decomp_tkt.c (dcmp_tkt_int): Add a couple more length checks.
15         Reject names that are exactly ANAME_SZ (etc) bytes long without
16         the trailing nul, because krb.h says the *_SZ macros are "maximum
17         sizes ... +1".
18         * mk_auth.c (krb_mk_auth): Force nul termination of inst.
19         * sendauth.c (krb_sendauth): Force nul termination of srv_inst.
20
21 2000-05-11  Nalin Dahyabhai  <nalin@redhat.com>
22
23         * Password.c (GetUserInfo): Truncate user name if it's too long
24         to fit.
25         * cr_auth_repl.c (cr_auth_reply): Bail if the reply packet won't
26         fit into its buffer.
27         * cr_ciph.c (create_ciph): Ditto.
28         * cr_death_pkt.c (krb_create_death_packet): Truncate "aname" to
29         make it fit into the packet's data buffer.
30         * cr_err_repl.c (cr_err_reply): Bail if the reply packet won't
31         fit into its buffer.
32         * cr_tkt.c (krb_create_ticket): Ditto.
33         * g_ad_tkt.c (get_ad_tkt): Stop if data being added to buffer
34         would overflow it.  Add more sanity checks when decomposing the
35         credential received.
36         * g_in_tkt.c (krb_mk_in_tkt_preauth): Bail if the request packet
37         won't fit into its buffer.
38         * g_krbhst.c (get_krbhst_default): Truncate the guessed KDC's
39         hostname if it is too long.
40         * g_pw_in_tkt.c: Remove useless strcpy() prototype.
41         * kntoln.c (krb_kntoln): Don't overflow buffer "lname".
42         * mk_err.c (krb_mk_err): Return the needed buffer length if the
43         pointer passed in is NULL.
44         * mk_req.c (krb_mk_req): Bail if the reply packet won't 
45         fit into its buffer.
46         * rd_req.c (krb_rd_req): Sanity check the realm name being read,
47         and truncate the service name, nstance, and realm from credential
48         read from keytab.
49         * realmofhost.c (krb_realmofhost): Truncate realm names read
50         from file if they are too long.
51         * send_to_kdc.c (send_to_kdc): Truncate passed-in realm name.
52
53 2000-05-08  Ken Raeburn  <raeburn@mit.edu>
54
55         * rd_req.c (krb_rd_req): Mask length byte with 0xff in case the
56         length is over 127 and char is signed.
57
58         * recvauth.c (krb_recvauth): If the number of bytes to be read
59         from the net is not positive, just return an error.
60
61 2000-05-03  Tom Yu  <tlyu@mit.edu>
62
63         * cr_tkt.c: Delete prototype for krb_cr_tkt_int(), since the
64         definition is K&R style and contains narrow types.  Thank you
65         HP/UX for having a compiler that actually makes this a fatal
66         error.
67
68 2000-04-28  Ken Raeburn  <raeburn@mit.edu>
69             Nalin Dahyabhai  <nalin@redhat.com>
70
71         * dest_tkt.c (dest_tkt): Don't overflow buffer "shmidname".
72         * in_tkt.c (in_tkt): Don't overflow buffer "shmidname".
73         * kuserok.c (kuserok): Don't overflow buffer "pbuf".
74         * tf_util.c (tf_init): Don't overflow buffer "shmidname".
75         * win_store.c (krb__get_cnffile): Don't overflow buffers "defname"
76         and "cnfname".
77         (krb__get_realmsfile): Don't overflow buffers "defname" and
78         "realmsname".
79
80 2000-04-28  Tom Yu  <tlyu@mit.edu>
81
82         * rd_req.c (krb_rd_req): Fix some uses of strcpy().
83
84 2000-03-12  Ezra Peisach  <epeisach@mit.edu>
85
86         * cr_tkt.c (krb_cr_tkt_int): Add static prototype.
87         * decomp_tkt.c: (dcmp_tkt_int): Add static prototype
88
89 1999-10-26  Tom Yu  <tlyu@mit.edu>
90
91         * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
92         LOCAL_INCLUDES such that one can override CFLAGS from the command
93         line without losing CPP search patchs and defines. Some associated
94         Makefile cleanup. [from wsanchez@apple.com]
95
96 1999-10-07  Ken Raeburn  <raeburn@mit.edu>
97
98         * rd_svc_key.c (krb54_get_service_keyblock): Close keytab before
99         returning in success case.  Patch from Greg Hudson
100         <ghudson@mit.edu>.
101
102 1999-08-26  Danilo Almeida  <dalmeida@mit.edu>
103
104         * memcache.c (change_cache): Use PostMessage instead of SendMessage
105         so we do not block.
106
107 Fri Aug 13 23:23:00 1999  Brad Thompson  <yak@mit.edu>
108
109         * sendauth.c: Initialize __krb_sendauth_hidden_tkt_len so
110         it doesn't end up in the common block.
111
112         * pkt_clen.c: Initialize swap_bytes so that it doesn't end
113         up in the common block.
114
115 Mon May 10 15:23:15 1999  Danilo Almeida  <dalmeida@mit.edu>
116
117         * Makefile.in: Do win32 build in subdir.
118
119 Thu Apr 15 20:18:38 1999  Tom Yu  <tlyu@mit.edu>
120
121         * g_cnffile.c (krb__get_srvtabname): Fix to actually extract
122         krb5_srvtab value from profile, instead of always ignoring it.
123
124 Mon Feb  8 21:56:45 1999  Theodore Y. Ts'o  <tytso@mit.edu>
125
126         * rd_req.c (krb_rd_req): Add appropriate #ifdef so that this code
127                 compiles cleanly when KRB4_USE_KEYTAB is not defined.
128
129 1998-12-05  Theodore Ts'o  <tytso@rsts-11.mit.edu>
130
131         * rd_svc_key.c (krb54_get_service_keyblock): New function which
132                 searches the appropaite krb5 keytab file for the key to be
133                 used by the krb4 library.
134
135         * rd_req.c (krb_rd_req): If the appropriate key cannot be found in
136                 the krb4 srvtab file, try calling krb54_get_service_keyblock.
137
138         * decomp_tkt.c (dcmp_tkt_int): 
139         * g_in_tkt.c (krb_mk_in_tkt_preauth): 
140         * g_ad_tkt.c (get_ad_tkt): 
141         * pkt_clen.c (pkt_clen): 
142         * rd_err.c (krb_rd_err): 
143         * rd_priv.c (krb_rd_priv): 
144         * rd_req.c (krb_rd_req): 
145         * rd_safe.c (krb_rd_safe): Use krb4_swab32 and krb4_swab16 instead
146                 of swap_u_long and swap_u_short.  The new byte swapping
147                 routines are faster and cleaner.
148
149 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
150
151         * Makefile.in: Set the myfulldir and mydir variables (which are
152                 relative to buildtop and thisconfigdir, respectively.)
153
154         * configure.in: Remove KRB5_POSIX_LOCKS test.
155
156         * win_store.c (krb__get_srvtabname): 
157         * g_cnffile.c: Use krb5__krb4_context instead of init'ing and
158                 free'ing a krb5_context each time we need to read data
159                 from the configuration file.  We also define
160                 krb5__krb4_context in g_cnnfile.c, since it's a likely
161                 that any use of the krb4 library will pull in that file.
162
163         * tf_util.c (tf_init): Use krb5_lock_file instead of trying to
164                 roll our own flock emulation.
165
166 Wed Aug 12 18:32:44 1998  Tom Yu  <tlyu@mit.edu>
167
168         * rd_req.c (krb_set_key): Nuke the krb5_keyblock if it's set.
169         (krb_set_key_krb5): New function to set a static krb5_keyblock for
170         decryption purposes.
171         (krb_clear_key_krb5): New function to clear the static
172         krb5_keyblock if it's set.
173         (krb_rd_req): Call decomp_ticket or decomp_tkt_krb5 as appropriate
174         to the key type.
175
176         * decomp_tkt.c (decomp_tkt_krb5): New wrapper to call
177         dcmp_tkt_int.
178         (decomp_ticket): Transform into wrapper to call dcmp_tkt_int.
179         (dcmp_tkt_int): New internal function; use a krb5_keyblock to
180         decrypt the ticket if present; else just use plain old C_Block.
181
182         * cr_tkt.c (krb_create_ticket): Transform into a wrapper that
183         calls krb_cr_tkt_int.
184         (krb_cr_tkt_krb5): New wrapper to call krb_cr_tkt_int.
185         (krb_cr_tkt_int): New internal function that potentially uses a
186         krb5_keyblock to encrypt the ticket, or just a C_Block if the
187         krb5_keyblock is not set.
188
189 Mon Aug 10 17:51:59 1998  Matthew D Hancher  <mdh@mit.edu>
190
191         * rd_svc_key.c (read_service_key): Don't call krb5_kt_close() if 
192         krb5_kt_resolve() fails, so we don't segfault if the keytab name 
193         is invalid.
194
195 Fri Aug  7 11:04:03 1998  Tom Yu  <tlyu@mit.edu>
196
197         * rd_safe.c (krb_rd_safe): Fix up call to quad_cksum().
198
199         * mk_safe.c (krb_mk_safe): Fix up call to quad_cksum().
200
201         * tf_util.c (tf_init): Add call to getuid() to initialize me.
202
203 Thu Jul 30 13:13:30 1998  Sam Hartman  <hartmans@utwig.mesas.com>
204
205         * tf_util.c (tf_init): s/,/= so getuid() actually gets called
206
207 Sun Jul 26 17:51:24 1998  Sam Hartman  <hartmans@utwig.mesas.com>
208
209         * Makefile.in (LIBMAJOR): Bump libmajor
210
211 Thu Jul  9 19:35:01 1998  Matthew D Hancher  <mdh@mit.edu>
212
213         * tf_util.c (tf_init): Fixed a potential race condition in the opening 
214         of v4 ticket files. tf_init() was calling lstat() followed by fopen().
215         Now it calls fopen() and then calls lstat() and fstat() to check file 
216         ownership and to check that it opened the file it thought it did. I 
217         patched the shared memory code similarly, but since nothing uses it I
218         don't have a good way to test it properly.
219         
220 Wed Jun 24 03:09:28 1998  Tom Yu  <tlyu@mit.edu>
221
222         * mk_priv.c (krb_mk_priv): Fix up call to pcbc_encrypt().  By
223         taking the address of key, the 5th arg to pcbc_encrypt() was
224         actually a (char **) cast to a (C_Block *).  The reason for this
225         is that a C_Block (actually a des_cblock) is typedef'ed from a
226         char[8], which by being in the parameters of the definition of
227         krb_mk_priv() becomes of type (char *).  This means that using the
228         address operator on key resulted in a pointer to a pointer to a
229         char rather than a pointer to a des_cblock, which would have been
230         innocuous in this case because pcbc_encrypt() actually takes a
231         (des_cblock *) as the 5th (ivec) argument.  The moral is to never
232         pass around naked arrays as function arguments; instead, pass
233         around pointers to arrays to avoid spontaneous conversions to
234         pointers sneaking up.  Note that CNS actually uses a (C_Block *)
235         everywhere, and maybe we should as well.  *whew*
236
237 1998-05-08  Theodore Ts'o  <tytso@rsts-11.mit.edu>
238
239         * stime.c (krb_stime): 
240         * log.c (krb_new_log, krb_log): 
241         * klog.c (klog): Print the year using 4 digits to avoid Y2K issues.
242
243 Wed Apr 15 18:07:00 1998  Tom Yu  <tlyu@mit.edu>
244
245         * Makefile.in (SHLIB_EXPDEPS): 
246         (SHLIB_EXPLIBS): Rename libcrypto -> libk5crypto.
247
248 Thu Apr  9 18:44:16 1998  Tom Yu  <tlyu@mit.edu>
249
250         * Makefile.in (includes): The header is krb_err.h, not
251         /krb_err.h.
252
253 Sun Apr  5 19:51:21 1998  Tom Yu  <tlyu@mit.edu>
254
255         * g_cnffile.c (krb__get_srvtabname): Fix up to not free context
256         unless it is valid.
257
258 Wed Feb 18 16:17:49 1998  Tom Yu  <tlyu@mit.edu>
259
260         * Makefile.in: Remove trailing slash from thisconfigdir.  Fix up
261         BUILDTOP for new conventions.
262
263 Mon Feb  2 17:02:29 1998  Theodore Ts'o  <tytso@rsts-11.mit.edu>
264
265         * Makefile.in: Define BUILDTOP and thisconfigdir in the Makefile
266
267         * configure.in, Makefile.in: Remove use of CopyHeader from
268                 configure.in and move functionality to Makefile.in
269
270 Tue Jan  6 17:11:28 1998  Tom Yu  <tlyu@mit.edu>
271
272         * in_tkt.c: Conditionalize use of macro do_seteuid, rather than
273         redefining setreuid. [krb5-libs/521]
274
275 Sat Dec  6 22:17:28 1997  Ezra Peisach  <epeisach@mit.edu>
276
277         * dest_tkt.c: Add <string.h> for memset prototype.
278
279 Wed Nov 19 11:04:27 1997  Ezra Peisach  <epeisach@mit.edu>
280
281         * Makefile.in (clean-unix): krb_err.h resides in the kerberosIV
282                 subdir for make clean.
283
284 Wed Nov 19 00:01:07 1997  Tom Yu  <tlyu@mit.edu>
285
286         * rd_safe.c (krb_rd_safe): Fix up call to quad_cksum.
287
288         * mk_priv.c (krb_mk_priv): Fix up call to pcbc_encrypt.
289
290         * mk_safe.c (krb_mk_safe): Fix up call to quad_cksum.
291
292 Tue Nov 18 23:49:01 1997  Tom Yu  <tlyu@mit.edu>
293
294         * mk_req.c (krb_mk_req): Fix up call to pcbc_encrypt.
295
296         * rd_req.c (krb_rd_req): Fix up call to pcbc_encrypt.
297
298 Tue Oct 21 09:02:51 1997  Ezra Peisach  <epeisach@mit.edu>
299
300         * kparse.c: Include stdlib.h if present (for malloc prototyp)
301
302 Fri Oct 17 20:33:17 1997  Tom Yu  <tlyu@mit.edu>
303
304         * mac_time.c: Don't use the type KRB_INT32; it was leaked from
305         des.h and was just the wrong answer.  Use long instead.  While
306         we're at it, declare gettimeofdaynet_no_offset() as static because
307         we have no real need to export it.
308
309 Tue Sep 30 19:00:33 1997  Tom Yu  <tlyu@mit.edu>
310
311         * tkt_string.c: Replace HAS_STDLIB_H with something more sane.
312
313         * send_to_kdc.c: Replace HAS_STDLIB_H with something more sane.
314
315         * realmofhost.c: Replace HAS_STDLIB_H with something more sane.
316
317         * mk_preauth.c: Repalce HAS_STDLIB_H with something more sane.
318
319         * memcache.c: Replace HAS_STDLIB_H with something more sane.
320
321         * kparse.c: Replace HAS_STDLIB_H with something more sane.
322
323         * configure.in: Replace HAS_STDLIB_H with something more sane.
324
325 Thu Sep 25 21:11:16 1997  Tom Yu  <tlyu@mit.edu>
326
327         * put_svc_key.c: Replace HAS_UNISTD_H with something more sane.
328
329         * kuserok.c: Replace HAS_UNISTD_H with something more sane.
330
331         * configure.in: Replace HAS_UNISTD_H with something more sane.
332
333 Mon Sep  1 21:37:36 1997  Tom Yu  <tlyu@mit.edu>
334
335         * decomp_tkt.c (decomp_ticket): Fix swapped args to memset.
336
337 Tue Aug 12 09:10:41 1997  Ezra Peisach  <epeisach@mit.edu>
338
339         * Makefile.in (OSSRCS): Add $(srcdir)/ to source location.
340
341 Thu Aug  7 15:53:13 1997  Tom Yu  <tlyu@mit.edu>
342
343         * g_cnffile.c: Check to see if context is NULL prior to calling
344         profile_get_values.  Fixes krb5-libs/317.
345
346 Wed Apr  9 23:15:39 1997  Tom Yu  <tlyu@mit.edu>
347
348         * realmofhost.c (krb_realmofhost): Add bounds checking to various
349         things.
350
351         * g_krbhst.c (krb_get_krbhst): Fix to bound fscanf and sscanf.
352
353         * g_krbrlm.c (krb_get_lrealm): Fix to bound fscanf.
354
355 Sat Feb 22 19:02:08 1997  Richard Basch  <basch@lehman.com>
356
357         * Makefile.in: Use some of the new library list build rules in
358                 win-post.in
359
360 Sat Feb 22 01:16:01 1997  Sam Hartman  <hartmans@tertius.mit.edu>
361
362         * Makefile.in (SHLIB_DIRS): Remove extra shlib_explibs
363
364 Sat Feb 22 00:55:42 1997  Sam Hartman  <hartmans@mit.edu>
365
366         * Makefile.in (SHLIB_EXPLIBS): Depend on -lcrypto -ldes425
367
368 Thu Feb 20 23:27:39 1997  Richard Basch  <basch@lehman.com>
369
370         * memcache.c: Just use malloc/free, since _nmalloc isn't on
371                 all versions of Windows.
372
373 Sun Feb 16 21:11:51 1997  Richard Basch  <basch@lehman.com>
374
375         * Makefile.in: Win16/Win32 cleanup
376
377         * err_txt.c g_admhst.c g_cred.c g_krbhst.c g_krbrlm.c g_phost.c
378         g_pw_in_tkt.c g_svc_in_tkt.c g_tkt_svc.c kname_parse.c mk_auth.c
379         mk_err.c mk_preauth.c mk_priv.c mk_req.c mk_safe.c rd_err.c
380         rd_priv.c rd_req.c rd_safe.c rd_svc_key.c realmofhost.c
381         recvauth.c save_creds.c unix_glue.c
382                 Changed declaration of functions to use
383                 KRB5_DLLIMP/KRB5_CALLCONV instead of INTERFACE.
384
385 Sat Feb  1 08:44:00 1997  Ezra Peisach  <epeisach@mit.edu>
386
387         * Makefile.in (STOBJLISTS): Fix up des425 reference.
388
389 Wed Jan  8 01:34:30 1997  Ezra Peisach  <epeisach@mit.edu>
390
391         * Makefile.in, configure.in: Convert to new build procedure.
392
393 Mon Nov 18 20:40:39 1996  Ezra Peisach  <epeisach@mit.edu>
394
395         * configure.in: Set shared library version to 1.0. [krb5-libs/201]
396
397 Thu Nov  7 12:33:06 1996  Theodore Y. Ts'o  <tytso@mit.edu>
398
399         * g_in_tkt.c: 
400         * sendauth.c: Fixed mangled copyright notice
401
402 Thu Jun 13 22:12:57 1996  Tom Yu  <tlyu@voltage-multiplier.mit.edu>
403
404         * configure.in: remove ref to ET_RULES
405
406 Wed Jun 12 01:02:45 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
407
408         * Makefile.in: Remove unnecessary include config/windows.in.
409                 wconfig takes care of this automatically.
410
411 Wed May 22 07:41:15 1996  Sam Hartman  <hartmans@mit.edu>
412
413         * Makefile.in (install-unix): Don't include an install rule, as it
414         is generated by aclocal.m4 for shared libs.
415
416 Tue Apr 30 19:26:11 1996  Ken Raeburn  <raeburn@cygnus.com>
417
418         * configure.in: Evaluate AC_C_CROSS before AC_TRY_RUN, to clean up
419         the output style.
420
421 Sun Apr 14 04:16:50 1996  Sam Hartman  <hartmans@mit.edu>
422
423         * rd_svc_key.c (get_service_key): Don't declare open().
424
425 Wed Apr 10 19:18:57 1996  Richard Basch  <basch@lehman.com>
426
427         * rd_svc_key.c (read_service_key): First try to read the V4
428         service key from the V4 srvtab, and if it fails, try the keytab.
429         A * instance will be translated into the default instance component
430         (usually the FQDN of the local hostname).
431
432 Fri Mar 29 16:45:00 1996  Richard Basch  <basch@lehman.com>
433
434         * rd_svc_key.c, configure.in: Try to read the V4 service key from a
435                 V5 keytab.
436
437 Tue Mar 19 11:23:13 1996  Ezra Peisach  <epeisach@kangaroo.mit.edu>
438
439         * tf_util.c (tf_get_cred): Issue date is written out as a long,
440                 read back in as same.
441
442 Sat Feb 24 09:27:08 1996  Ezra Peisach  <epeisach@kangaroo.mit.edu>
443
444         * g_svc_in_tkt.c, put_svc_key.c, rd_req.c, rd_svc_key.c: Declare
445                 krb__get_srvtabname(). 
446
447 Sat Jan 27 01:05:12 1996  Mark Eichin  <eichin@cygnus.com>
448
449         * kuserok.c: use HAVE_SETEUID and HAVE_SETRESUID to figure out how
450         to emulate seteuid instead of assuming hpux.
451         * configure.in: test for seteuid as well; fold some tests into a
452         single AC_HAVE_FUNCS.
453
454 Tue Dec  5 20:53:40 1995  Ezra Peisach  <epeisach@kangaroo.mit.edu>
455
456         * Makefile.in: Shared library depends on krb5 library now.
457
458         * configure.in: Pass krb5 library version number to Makefile.
459
460 Wed Nov 15 20:38:38 1995  Mark Eichin  <eichin@cygnus.com>
461
462         * tf_util.c (emul_flock): initialize f to a copy of a static
463         (thus zero) struct flock, to avoid panic'ing sunos 4.1.4.
464
465 Sun Nov 12 05:26:08 1995  Mark W. Eichin  <eichin@cygnus.com>
466
467         * g_cnffile.c (krb__get_srvtabname): new function, looks up
468         [libdefaults]krb4_srvtab for use where KEYFILE used to be.
469         * g_cnffile.c (krb__v5_get_file): new function, looks up argument
470         in [libdefaults] and tries to open it as a filename. Returns
471         filehandle (or NULL, if fopen failed.)
472         (krb__get_cnffile, krb__get_realmsfile): use krb__v5_get_file to
473         look up "krb4_config" or "krb4_realms" respectively. Also add
474         $KRB_REALMS override for realms file.
475
476 Mon Oct  2 11:12:05 1995  Ezra Peisach  <epeisach@kangaroo.mit.edu>
477
478         * configure.in (V5_MAKE_SHARED_LIB): Change rule to install
479                 version 0.1 of the library. Pass the libcrypto version
480                 number to Makefile
481
482         * Makefile.in (CRYPTO_VER): Get the proper libcrypto version number
483
484 Mon Sep 25 16:54:34 1995  Theodore Y. Ts'o  <tytso@dcl>
485
486         * Makefile.in: Removed "foo:: foo-$(WHAT)" lines from the
487                 Makefile. 
488
489 Wed Sep 06 14:20:57 1995   Chris Provenzano (proven@mit.edu)
490
491         * DNR.c : s/keytype/enctype/g, s/KEYTYPE/ENCTYPE/g
492
493 Mon Aug  7 18:40:34 1995  Theodore Y. Ts'o  <tytso@dcl>
494
495         * Makefile.in (SRCS): Include $(NETIO_SRCS) in the list of source
496                 files, instead of $(NETIO_OBJS)
497
498         * tf_util.c (utimes): If __SVR4 is defined, #include <utime.h>,
499                 just as we do if __svr4__ is defined.
500
501         * g_pw_in_tkt.c: If __SVR4 is defined, #include <sgtty.h>, just as
502                 we do if __svr4__ is defined.  (WARNING: This code still
503                 assumes that the BSD ioctl's are being supported, at least
504                 in compatibility mode.  We should really upgrade this code
505                 to use POSIX termios calls.)
506
507 Tue Jun 27 23:59:28 1995  Mark Eichin  <eichin@cygnus.com>
508
509         * rd_req.c (krb_rd_req): from_addr is an address, so use unsigned
510         KRB4_32 instead of long.
511
512 Tue Jun 27 23:50:08 1995  Mark Eichin  <eichin@cygnus.com>
513
514         * rd_safe.c (krb_rd_safe): use KRB4_32 for address comparison
515         and checksum swapping.
516
517 Tue Jun 27 15:49:35 EDT 1995    Paul Park       (pjpark@mit.edu)
518         * kparse.c - Change LineNbr to sLineNbr to avoid conflict with kparse.h
519
520 Mon Jun 26 14:58:02 1995  Sam Hartman  <hartmans@tardis.MIT.EDU>
521
522         * log.c: Use HAVE_TIME_H not NEED_TIME_H
523
524         * klog.c: Change NEED_TIME_H to HAVE_TIME_H
525
526         * configure.in: Check for sys/select.h.  Also check for time.h.
527
528         * send_to_kdc.c: If sys/select.h exists, include it.
529
530 Fri Jun 23 18:15:07 1995  Tom Yu  (tlyu@dragons-lair)
531
532         * configure.in: fix Sam's typo so libkrb4.a gets symlinked
533                 properly
534
535 Fri Jun 23 12:29:39 1995  Sam Hartman  <hartmans@tardis.MIT.EDU>
536
537         * configure.in: Handle generation of rules to make static libs.
538
539         * Makefile.in (LIBNAME): Changed to support new handling of static
540         libraries
541
542
543 Fri Jun 16 11:15:45 EDT 1995    Paul Park       (pjpark@mit.edu)
544         * Makefile.in - Change "./DONE" to "DONE" since we know how to make
545                 "DONE", hence a clean make won't get confused any more.
546         * configure.in - Add shared library install target.
547
548
549 Thu Jun 15 18:07:24 EDT 1995    Paul Park       (pjpark@mit.edu)
550         * Makefile.in - Add definitions for shared library build rules.
551         * configure.in - Create symlinks for archive and shared library
552                 when we build them.
553
554 Fri Jun  9 19:28:22 1995    <tytso@rsx-11.mit.edu>
555
556         * configure.in: Remove standardized set of autoconf macros, which
557                 are now handled by CONFIG_RULES.
558
559 Fri Jun  9 00:01:35 1995  Tom Yu  (tlyu@dragons-lair)
560
561         * Makefile.in, configure.in: use CopyHeader rather than hand-coded
562                 header install rule.
563
564 Fri May 26 21:11:38 1995  Theodore Y. Ts'o  (tytso@dcl)
565
566         * cr_err_repl.c (cr_err_reply): Remove backward compatibility code
567                 for Kerberos V3 (!) which was causing problems for shared
568                 libraries.  Library code shouldn't try to reference global
569                 variables defined by the calling application!
570
571 Sun May 21 16:06:20 1995  Ezra Peisach  <epeisach@kangaroo.mit.edu>
572
573         * dest_tkt.c: If O_SYNC is not defined, define as 0.
574
575         * in_tkt.c: If O_SYNC is not defined, define as 0.
576
577 Thu May 18 14:43:51 1995  Ezra Peisach  <epeisach@kangaroo.mit.edu>
578
579         * in_tkt.c: Use HAVE_SETREUID and HAVE_SETRESUID to define 
580                 setreuid properly.
581
582         * configure.in: Check for setreuid and setresuid
583
584 Sun May  7 08:05:56 1995  Ezra Peisach  <epeisach@kangaroo.mit.edu>
585
586         * mk_preauth.c: Add <string.h> and either <stdlib.h> or provide
587                 prototypes for malloc.
588
589         * g_svc_in_tkt.c: Add <string.h>
590
591
592         * rd_preauth.c: Add <string.h>
593
594         * mk_auth.c: Include "krb4-proto.h" for get_phost definition.
595
596         * g_pw_in_tkt.c (stub_key): Add <string.h>
597
598         * send_to_kdc.c: Ifdef on HAS_STDLIB_H not POSIX
599
600         * realmofhost.c: Ifdef on HAS_STDLIB_H not POSIX
601
602         * memcache.c: Ifdef on HAS_STDLIB_H not POSIX
603
604         * configure.in: Check for stdlib.h
605
606 Thu May  4 10:03:22 1995  Tom Yu  (tlyu@dragons-lair)
607
608         * put_svc_key.c (put_svc_key): remove spurious & in front of fkey
609                 (it's a char[] and takint address of it is redundant)
610
611         * recvauth.c (krb_recvauth): remove spurious & in front of
612                 reference to kdata->session
613
614         * rd_req.c (krb_rd_req): remove spurious & in front of reference
615                 to ad->session
616
617         * g_in_tkt.c(decrypt_tkt): remove spurious & in front of reference
618                 to key (it is a C_Block and taking address of it is
619                 redundant)
620
621         * Makefile.in: new includes target to install krb_err.h in
622                 $(BUILDTOP)/include; includes depends on krb_err.h.
623                 Previously, it was attempting to install a header that had
624                 not yet been generated!
625
626 Tue May  2 09:30:50 1995  Ezra Peisach  <epeisach@kangaroo.mit.edu>
627
628         * Makefile.in (clean-unix): Remove krb_err.h from the include
629                 directory. 
630
631 Sat Apr 29 00:33:47 1995  Tom Yu  (tlyu@dragons-lair)
632
633         * g_phost.c: removed references to sys/param.h and netdb.h
634         * realmofhost.c: ditto
635
636 Fri Apr 28 13:03:23 1995  Theodore Y. Ts'o  <tytso@dcl>
637
638         * tf_util.c, configure.in: Added check for POSIX_FILE_LOCK to
639                 enable POSIX file locking.
640
641         * tf_util.c: Add #include of fcntl.h
642
643         * month_sname.c, one.c: Remove unnecessary include of conf.h
644
645 Fri Apr 28 01:55:18 1995  Mark W. Eichin  <eichin@cygnus.com>
646
647         * kuserok.c: HAS_UNISTD_H instead of USE_.
648         * configure.in: test for HAVE_STRSAVE (for kparse.c).
649
650 Fri Apr 28 01:38:42 1995  Mark W. Eichin  <eichin@cygnus.com>
651
652         * configure.in: use AC_CHECK_SIZEOF(int) to set BITS16/BITS32.
653         Use AC_TRY_RUN test to set MSBFIRST or LSBFIRST.
654
655 Tue Mar 28 09:19:23 1995  Mark Eichin  <eichin@cygnus.com>
656
657         * send_to_kdc.c (send_to_kdc): only use secondary port if entry
658         for primary doesn't have an explicit port number. Secondary port
659         is still guessed to be 750. Also *don't* switch to the secondary
660         port in general, since we might be using multiple realms.
661
662 Tue Feb 14 23:24:50 1995  John Gilmore  <gnu@cygnus.com>
663
664         * sendauth.c (krb_net_rd_sendauth):  Result is a Kerberos error
665         code, not an errno.
666
667 Mon Feb  6 16:11:52 1995  John Gilmore  (gnu at toad.com)
668
669         * mac_store.c (DeleteServerMap):  When skipping a realm map, skip
670         also the admin-flag byte; else walking the list of strings gets
671         very confused. 
672
673         * mac_stubs.c (kdriver):  Rename static variable to mac_stubs_kdriver,
674         and export it to callers.
675         (krb_get_ticket_for_service):  Circumvent MPW compiler bug that
676         doesn't like array->memb inside a sizeof.  array[0].memb works.
677
678 Wed Feb 1 12:00:00 1995  John Rivlin  <jrivlin@cygnus.com>
679
680         * Makefile.in: Modify install-windows and clean-windows
681         targets to install libraries into src/windows directory.
682
683 Tue Jan 24 10:35:31 1995  Ian Lance Taylor  <ian@sanguine.cygnus.com>
684
685         * g_pw_in_tkt.c (krb_get_pw_in_tkt_preauth): Check for a NULL
686         password if _WINDOWS or macintosh.
687
688 Mon Jan 23 17:06:10 1995  Ian Lance Taylor  <ian@sanguine.cygnus.com>
689
690         * g_pw_in_tkt.c (passwd_to_key): When not _WINDOWS or macintosh,
691         restore code to call des_read_password if passwd is NULL.
692         (krb_get_pw_in_tkt): Only error out if password is NULL if
693         _WINDOWS or macintosh.
694
695         * g_krbhst.c (get_krbhst_default): New static function.
696         (krb_get_krbhst): Use get_krbhst_default.
697
698 Fri Jan 20 12:00:00 1995  John Rivlin  (jrivlin@fusion.com)
699
700         * Makefile.in: Changed libentry to debug in link command as
701         libentry is no longer provided in the Visual C++ environment.
702         Libentry is part of the library in Visual C++.  Debug is used
703         purely to satisfy the syntax requirements of the link command.
704
705 Thu Jan 19 14:18:10 1995  Ian Lance Taylor  <ian@sanguine.cygnus.com>
706
707         * sendauth.c (krb_net_rd_sendauth): If the raw ticket length looks
708         like the start of a warning from SunOS4 ld.so, just ignore the
709         warning message, and look for the ticket after it.
710
711 Mon Jan 16 16:11:21 1995  John Gilmore  <gnu@cygnus.com>
712
713         * kuserok.c (kuserok):  Allow realm to be defaulted in the
714         ~/.klogin file; this simplfies DejaGnu testing of Kerberos.
715         Fix bug that left kname_parse arguments uninitialized. 
716
717 Mon Jan 16 11:54:01 1995  Ian Lance Taylor  <ian@sanguine.cygnus.com>
718
719         * krb_err.et: Change KRBET_RD_APTIME message from ``delta_t too
720         big'' to ``time is out of bounds.''
721
722         * send_to_kdc.c: If POSIX, include <stdlib.h> instead of declaring
723         malloc, calloc, and realloc.
724         (cached_krb_udp_port): Make static.
725         (send_to_kdc): If send_recv fails, and the kerberos port number
726         used is from getservbyname, and is not 750, then try sending to
727         port 750.
728
729         * realmofhost.c (krb_realmofhost): If DO_REVERSE_RESOLVE is
730         defined, canonicalize using gethostbyaddr.
731
732 Thu Jan 12 17:40:26 1995  Ian Lance Taylor  <ian@sanguine.cygnus.com>
733
734         * in_tkt.c (in_tkt): Set umask to 077 around creation of ticket
735         file to ensure that it is created with write access, even if the
736         user has a screwy umask value.
737
738 Thu Dec 29 23:59:49 1994  Mark Eichin  <eichin@cygnus.com>
739
740         * g_in_tkt.c (krb_get_in_tkt_preauth): factored out into
741         krb_mk_in_tkt_preauth and krb_parse_in_tkt. This simplifies the
742         SNK4 support on platforms that can't do callbacks from (shared)
743         libraries.
744
745 Tue Dec 27 11:12:54 1994  Ian Lance Taylor  <ian@cygnus.com>
746
747         * g_in_tkt.c (krb_get_in_tkt_preauth): Rewrite switch statement to
748         work when compiled by SCO 3.2v4 native C compiler.
749         * g_ad_tkt.c (get_ad_tkt): Likewise.
750
751 Fri Dec 23 15:47:20 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>
752
753         * memcache.c (unix): Define if _AIX is defined (AIX compiler does
754         not predefine unix).
755
756 Fri Dec 16 18:57:40 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>
757
758         * memcache.h: Use PROTOTYPE in declarations.
759         * memcache.c: Rewrite function definitions to use Classic C
760         parameter repetition rather than prototypes.
761
762 Thu Dec 15 18:23:37 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>
763
764         * memcache.c: Add typedefs and macro definitions to make this file
765         compile on Unix as well as on Windows and the Mac.
766
767 Wed Dec 14 19:31:24 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>
768
769         * g_in_tkt.c (krb_get_in_tkt_preauth): Comment out assignment to
770         exp_date, since it is not used.
771
772 Wed Nov 23 12:30:49 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>
773
774         * fakeenv.c (_findenv, unsetenv): New functions, copied in from
775         setenv.c.  The telnet server uses unsetenv.
776
777 Wed Nov 23 00:53:10 1994  John Gilmore  (gnu@cygnus.com)
778
779         * realmofhost.c (krb_realmofhost):  Allow arbitrary host
780         names here, as in krb_get_phost, by canonicalizing the name
781         into a fully qualified name using gethostbyname().  This
782         has the effect of letting users not set the "local realm"
783         config knob in more cases, since a name without a dot will
784         be canonicalized and searched-for in the domain-to-realm
785         database, rather than being assumed to be in the local realm.
786         This problem was found by using unqualified hostnames in Wintel.
787
788 Wed Nov 23 00:26:17 1994  John Gilmore  (gnu@cygnus.com)
789
790         Clean up a few misleading error messages.
791
792         * memcache.c (krb_get_tf_fullname):  Return NO_TKT_FIL if
793         there are no tickets cached, just like from tf_util.c.
794         * g_ad_tkt.c (get_ad_ticket):  If we try cross-realm 
795         authentication, and it fails for lack of a key in the
796         kerberos database, return AD_NOTGT ("No ticket-
797         granting ticket") rather than KDC_PR_UNKNOWN ("Principal unknown").
798         * krb_err.et, err_txt.c:  Update NO_TKT_FIL error message from
799         "No ticket file (tf_util)" to "You have no tickets cached".
800
801 Thu Nov 17 12:31:27 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>
802
803         * mk_preauth.c (krb_mk_preauth): des_key_sched takes a des_cblock
804         argument, not des_cblock *, so remove the cast.
805         * rd_preauth.c (krb_rd_preauth): Likewise.
806
807 Wed Nov 16 22:13:28 1994  Mark Eichin  (eichin@cygnus.com)
808
809         * mk_preauth.c (krb_mk_preauth): use des_key_sched instead; check
810         its return value and fail if it fails.
811         * rd_preauth.c (krb_rd_preauth): ditto.
812
813 Wed Nov 16 17:35:07 1994  Mark Eichin  (eichin@cygnus.com)
814
815         * mk_preauth.c (krb_mk_preauth): add R3 implementation (and
816         NOENCRYPTION version) which passes encrypted aname.
817         (krb_free_preauth): free storage from both implementations.
818         * rd_preauth.c (krb_rd_preauth): add R3 implementation.
819
820 Wed Nov 16 17:28:14 1994  Mark Eichin  (eichin@cygnus.com)
821
822         * g_pw_in_tkt.c (stub_key): use memcpy, in case the C_Block is an
823         array and not a struct.
824
825 Wed Nov  9 12:45:02 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>
826
827         * in_tkt.c: Fix thinko in last change.
828
829 Fri Nov  4 12:05:57 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>
830
831         * in_tkt.c: Don't redefine setreuid if both hpux and __svr4__.
832
833 Fri Nov  4 02:10:58 1994  John Gilmore  (gnu@cygnus.com)
834
835         Make it build on MS-Windows again.
836
837         * Makefile.in (NETIO_SRCS, NETIO_OBJS):  Break out, since these
838         are required on MS-Windows and prohibited on Mac.
839         (kerberos.dll):  Avoid line-length problems by copying 
840         libraries from other directories and using very short names.
841
842 Tue Nov  1 15:47:44 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>
843
844         * dest_tkt.c: Include "krb.h" before <stdio.h>.
845
846 Mon Oct 31 19:41:14 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>
847
848         * Makefile.in (CODE): Use Makefile.in instead of Imakefile.
849
850 Fri Oct 28 15:21:56 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>
851
852         * month_sname.c: Include conf.h.
853         * one.c: Likewise.
854
855         * rd_req.c (krb_rd_req): Pass address of the array ad->session, to
856         match function definition.
857
858 Wed Oct 12 00:37:46 1994  Julia Menapace  (jcm at toad.com)
859
860         * Password.c: Include kerberos.h not Krb.h.  Define KRB_DEFS to
861         avoid multiple symbol definitions from krb_driver.h.  Needs further
862         cleanup but not just before release.
863
864 Mon Oct 10 20:07:56 1994  Julia Menapace  (jcm at toad.com)
865
866         * g_tkt_svc.c: (cacheInitialTicket) moved to new file Password.c
867
868         * mac_glue.c:  Remove superfluous comment.
869
870         * mac_stubs.c: Add code translating unix function call to mac
871         driver control call for krb_get_tf_fullname
872
873         * macsock.c: Remove superflous comment.
874
875         * memcache.c: Remove unused #includes
876         (krb_get_tf_realm) pass tktfile instead of blank to
877         krb_get_tf_fullname.
878
879         (get_tf_fullname): Because the symantics of GetNthCredentials
880         (called by this routine) were changed to disable multiple named
881         caches (for UNIX compatability) we have to replace the user name
882         and instance it returns with the actual name and instance of the
883         current cache, set by in_tkt and stored in file static global
884         variables.
885
886 Mon Oct 10 13:37:34 1994  Julia Menapace  (jcm at toad.com)
887
888         * mk_auth.c:  New file, created from sendauth.c.  Contains just
889         the portable parts of sendauth.c (krb_mk_auth and krb_check_auth).
890         * sendauth.c (krb_mk_auth, mrb_check_auth):  Move these functions
891         to mk_auth.c.
892         * Makefile.in (SRCS, OBJS, SERVER_KRB_SRCS, SERVER_KRB_OBJS):
893         Add mk_auth.c to SRCS/OBJS; remove sendauth.c, netread.c, and 
894         netwrite.c from SRCS/OBJS to SERVER_KRB_SRCS/OBJS.
895
896 Thu Sep 29 15:31:24 1994  John Gilmore  (gnu@cygnus.com)
897
898         * realmofhost.c (krb_realmofhost):  Correct off-by-one error in
899         default handling of top and second-level domains.
900
901 Fri Sep 23 12:00:00 1994  John Rivlin  (jrivlin@fusion.com)
902
903         * Makefile.in: Added kstream library to kerberos.dll
904
905         * kerberos.def: Added kstream library to kerberos.dll
906
907 Fri Aug 19 12:00:00 1994  John Rivlin  (jrivlin@fusion.com)
908
909         * g_pw_in_.c: Added (key_proc_type) cast for stub_key to remove
910         warnings with prototypes active.
911
912         * kerberos.def: Added des_ecb_encrypt to externals for telnet.
913
914 Wed Sep 14 12:58:05 1994  Julia Menapace  (jcm@cygnus.com)
915
916         * mac_stubs.c (krb_get_err_text): make return type const.
917         (GetNthRealmMap): add routine to stubs library to generate a
918         driver call returning the Nth Realm mapping.
919         (GetNthServerMap): add routine to stubs library to generate a
920         driver call returning the Nth server mapping.
921         * g_tkt_svc.c (CacheInitialTicket): If user name has changed save
922         it.
923         * memcache.c (krb_save_credentials): Fill in credential with
924         currently authorized user name and instance expected by kerberos,
925         (passed to and stored by in_tkt) instead of FIXED user name and
926         instance used to select credentials cache (is same for all cases to
927         disable multi named caches, using/reusing single named cache for
928         all cases).
929
930 Tue Sep 13 16:45:01 1994 Julia Menapace (jcm@cygnus.com)
931
932         * err_txt.c (MULTIDIMENSIONAL_ERR_TXT):  Rename from 
933         UNIDIMENSIONAL_ARRAYS to reflect what's actually going on.
934
935 Thu Aug 18 20:26:16 1994  Mark Eichin  (eichin@cygnus.com)
936
937         * g_tkt_svc.c (CredIsExpired): use proper style of declaration so
938         that it works with k&r compilers.
939
940 Wed Aug 10 13:47:55 1994  Mark Eichin  (eichin@cygnus.com)
941
942         * err_txt.c (krb_err_txt): Export it again, to avoid gratuitous
943         incompatibility. Programs that can't deal with the use of the
944         array don't have to use it.
945
946 Fri Aug  5 15:55:02 1994  Mark Eichin  (eichin@cygnus.com)
947
948         * tf_util.c (tf_save_cred): cast 0 to (off_t), don't assume 0L
949         will work (it doesn't in netbsd.)
950
951 Mon Aug 6 12:00:00 1994  John Rivlin  (jrivlin@fusion.com)
952
953         * g_cnffile.c: Added definition for getenv.
954
955         * Makefile.in: Added KADM_LIB_FOR_DLL library in kerberos.dll
956         Updated clean target to avoid deleteion of krb_err.h under
957         Windows.
958
959         * kerberos.def: Added inteface for KRB_GET_NOTIFICATION_MESSAGE,
960         KADM_INIT_LINK, KADM_CHANGE_PW, KADM_CHANGE_PW and KADM_GET_ERR_TEXT
961         and renumbered entrypoints for consistency.
962
963         * memcache.c (change_session_count, change_cache): Changed 
964         change_session_count to change_cache.  This
965         routine now maintains the lock on the library as well as sending
966         ot broadcast messages to all to level windows when the cache
967         changes. Also changed all calls to above routine throughout 
968         memcache.c.
969
970         * netwrite.c: use newly added SOCKET_READ and SOCKET_EINTR values
971         to avoid use of read on Windows.  VMS dependencies moved to c-vms.h
972         for uniformity with other platforms.
973
974         * netread.c: use newly added SOCKET_READ and SOCKET_EINTR values
975         to avoid use of read on Windows.  VMS dependencies moved to c-vms.h
976         for uniformity with other platforms.
977         
978         * memcache.c: sname, sinst, srealm not stored if null pointers
979         passed in.  This avoids problems found porting kpasssd.
980
981 Mon Aug 1 12:00:00 1994  John Rivlin  (jrivlin@fusion.com)
982
983         * kerberos.def: Changed heapsize to 8192 to avoid LocalAlloc
984         failure messages on startup. Added kadm_change_pw2 to external
985         interface.
986         
987         * win_glue.c (krb_get_default_user, krb_set_default_user): Have
988         been moved to win_store.c.
989
990         * win_store.c: Use KERBEROS_INI and INI_xxx values in c-windows.h
991         rather than hard coded strings.
992
993         * win_store.c (krb_get_default_user, krb_set_default_user): Added
994         to save and retieve value of "[DEFAULTS] user =" in kerberos.ini
995         file.
996
997         * realmofhost.c (krb_realmofhost): Now calls krb__get_relmsfile
998         rather than opening up the krb.realms file directly so that
999         Windows version can override the location of the file.
1000
1001         * win_stor.c: Stores the 
1002
1003 Wed Jul 27 12:00:00 1994  John Rivlin  (jrivlin@fusion.com)
1004
1005         * g_cnffil.c (krb__get_realmsfile): Added a routine to open
1006         the krb.realms file so that the routine can be overridden
1007         in Windows implementation with a routine which looks up
1008         the name of the realms file in the kerberos.ini file.
1009
1010         * win_store.c: Created to parallel the Mac implementation.
1011         Routines in this file will provide access to the krb.conf,
1012         krb.realms files and other configuration information.
1013
1014         * ren.msg: Created entry for win_store.
1015
1016         * Makefile.in: Move g_cnffile.c to REALMDBSRCS to allow 
1017         Windows to override this functionality with a routine in 
1018         win_store.c routine.
1019
1020 Tue Jul 26 12:00:00 1994  John Rivlin  (jrivlin@fusion.com)
1021
1022         * netread.c: errno redefinition under Windows ifdefed out.
1023         * netwrite.c: errno redefinition under Windows ifdefed out.
1024
1025 Fri Jul 22 23:07:21 1994  Mark Eichin  (eichin@cygnus.com)
1026
1027         * rd_preauth.c (krb_rd_preauth): change interface to include the
1028         decrypted key (since the server has already looked it up.)
1029
1030 Thu Jul 21 17:24:13 1994  Mark Eichin  (eichin@cygnus.com)
1031
1032         * g_krbrlm.c (krb_get_lrealm): use krb__get_cnffile, don't
1033         (mis)declare fopen.
1034         * g_krbhst.c (krb_get_krbhst): ditto.
1035         * g_admhst.c (krb_get_admhst): ditto.
1036         * Makefile.in (OBJS, SRCS): build get_cnffile.c.
1037
1038 Thu Jul 21 17:10:35 1994  Mark Eichin  (eichin@cygnus.com)
1039
1040         * g_pw_in_tkt.c (krb_get_pw_in_tkt_preauth): *MUST* continue to
1041         allow the password not to be passed in, since there is code that
1042         does interesting things in the passwd_to_key routine.
1043
1044         * g_svc_in_tkt.c (stub_key): don't assume C_Block is a struct; use
1045         memcpy instead of *.
1046
1047         * log.c (krb_log): use char* instead of int for default args.
1048         Don't declare fopen explicitly, let stdio.h do it.
1049         Don't include sys/time.h under VMS.
1050         * klog.c (klog): ditto.
1051
1052 Wed Jul 20 22:34:11 1994  Mark Eichin  (eichin@tweedledumber.cygnus.com)
1053
1054         * rd_safe.c (krb_rd_safe): handle direction bit correctly when
1055         krb_ignore_ip_address is set.
1056
1057         * rd_priv.c (krb_rd_priv): same.
1058
1059         * send_to_kdc.c: support arbitrary KDC port number in krb.conf file.
1060
1061         * g_cnffile.c: new file. common interface to krb.conf.
1062         vmslink.com: new file. linker script to build libkrb.olb under
1063         VMS; run as @vmslink.
1064         vmsswab.c: vms runtime doesn't have swab.
1065
1066 Wed Jul 20 20:38:19 1994  Mark Eichin  (eichin@cygnus.com)
1067
1068         * kparse.c (strsave): only define locally if HAVE_STRSAVE isn't set.
1069
1070 Tue Jul 19 12:00:00 1994  John Rivlin (jrivlin@fusion.com)
1071
1072         * memcache.c (NewHandle, SetHandleSize, MemError): Updated to return
1073         valid Mac compatable error codes.  Got rid of warning messages for 
1074         pointer mismatches.
1075
1076         * memcache.c (change_session_count): added routine and calls to it
1077         to facilitate cross session ticket cacheing under Windows.  
1078         Moved fNumSessions definition up so that Windows code can get to it.
1079         
1080         * win_glue.c (LibMain, get_lib_instance): added to return HINSTANCE 
1081         of library which is now saved in LibMain.
1082
1083 Tue Jul 19 16:08:49 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
1084
1085         * klog.c (klog): Leave local static array logtype_array
1086         uninitialized, to put it in bss.
1087
1088         * g_ad_tkt.c (rep_err_code): Variable deleted.
1089         (get_ad_tkt): Make it automatic here.  Local variables pkt_st,
1090         rpkt_st, cip_st, tkt_st no longer static.
1091         * kname_parse.c (kname_parse): Local variable buf no longer
1092         static.
1093         * rd_req.c (krb_rd_req): Local variables ticket, tkt, req_id_st,
1094         seskey_sched, swap_bytes, mutual, s_kvno no longer static.
1095         * rd_safe.c (calc_cksum, big_cksum, swap_bytes): Variables
1096         deleted.
1097         (krb_rd_safe): Make them automatic variables here.  Local variable
1098         src_addr no longer static.
1099         * rd_priv.c (c_length, swap_bytes, t_local, delta_t): Variables
1100         deleted.
1101         (krb_rd_priv): Make them automatic variables here.  Local variable
1102         src_addr no longer static.
1103         * mk_safe.c (cksum, big_cksum, msg_secs, msg_usecs, msg_time_5ms,
1104         msg_time_seg): Variables deleted.
1105         (krb_mk_safe): Make them automatic variables here.
1106         * mk_priv.c (c_length, msg_time_5ms, msg_time_sec, msg_time_usec):
1107         Variables deleted.
1108         (krb_mk_priv): Make them automatic variables here.  Local variable
1109         c_length_ptr also no longer static.
1110
1111         * pkt_clen.c (swap_bytes): No longer explicitly extern.
1112         * g_ad_tkt.c (swap_bytes): Make it extern here.
1113
1114         * kparse.c (LineNbr, ErrorMsg): Now static.
1115
1116         * err_txt.c (krb_err_txt): Don't export this name.  Make it const
1117         again.
1118
1119         * netread.c: Include errno.h.
1120         (errno): Declare.
1121         (krb_net_read): On EINTR, retry read.
1122         * netwrite.c: Include errno.h.
1123         (errno): Declare.
1124         (krb_net_write): On EINTR, retry write.
1125
1126 Mon Jul 18 19:04:03 1994  Julia Menapace (jcm@cygnus.com)
1127
1128         * err_txt.c (krb_err_txt): if the C compiler can't initialize
1129         multidimentional arrays, declare it differently (controlled by
1130         UNIDIMENSIONAL_ARRAYS).
1131
1132         * mac_stubs.c (krb_get_cred, krb_save_credentials,
1133         krb_delete_cred, krb_get_nth_cred, krb_get_num_cred): new
1134         functions to implement credentials caching.
1135
1136         * memcache.c  (krb_get_cred, krb_save_credentials,
1137         krb_delete_cred, krb_get_nth_cred, krb_get_num_cred): actual
1138         implementation of this functionality.
1139
1140 Fri Jul 15 17:35:30 1994  John Rivlin (jrivlin@fusion.com)
1141
1142         * ren.msg: updated to handle all files (changelogs, makefiles etc)
1143
1144         * Makefile.in: added "-" on clean: to avoid stupid messages
1145
1146         * g_pw_in_tkt.c (get_pw_in_tkt_preauth): added INTERFACE 
1147         for kinit.
1148
1149         * kerberos.def: clean up, removed unused function references
1150         
1151         * win_glue.c (krb_start_session): fixed syntax error
1152
1153         * win_glue.c (krb_end_session): fixed syntax error
1154
1155 Tue Jul 12 17:35:30 1994  D. V. Henkel-Wallace  (gumby@rtl.cygnus.com)
1156
1157         * ren.msg: add record for g_tkt_svc.c
1158
1159 Fri June 8 02:40:54 1994  John Rivlin  (jrivlin@fusion.com)
1160
1161         * makefile.in: Updated file with portable directory syntax for PC.
1162         Changed .o and .a references to portable syntax
1163         Removed all response files which needed to be generated under unix
1164         to simplify configure process so that it may be run on the PC.
1165         Placed objects in .lib file so that DLL construction can take place
1166         without a response file.  This solves a problem with running out of
1167         memory on the PC during builds.
1168         Updated clean: target to place rm commands on seperate lines for
1169         compatibility with PC DEL command.
1170
1171         * win_glue (krb_start_session): Added a dummy parameter to match 
1172         prototype.
1173
1174         * win_glue (krb_end_session): Added a dummy parameter to match 
1175         prototype.
1176
1177 Tue Jul  5 11:25:31 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
1178
1179         * err_txt.c (krb_err_txt): Now const.
1180         (krb_get_err_text): Returns pointer to const.
1181         * month_sname.c (month_sname): Month name array and return type
1182         now both const.
1183         * one.c (krbONE): Now const.
1184
1185         * g_tkt_svc.c: Include string.h.
1186
1187         * kntoln.c (krb_kntoln): Static variable lrealm is no longer
1188         explicitly initialized; now in bss.
1189         * tf_util.c (krb_shm_addr, tmp_shm_addr, krb_dummy_skey): Ditto.
1190         * tkt_string.c (krb_ticket_string): Ditto.
1191
1192         * mk_req.c (krb_mk_req): Removed "static" from many function
1193         variables.
1194
1195         * tkt_string.c (krb_set_tkt_string): Deleted extra whitespace,
1196         unnecessary "return" statement.
1197
1198 Fri Jul  1 04:50:06 1994  John Gilmore  (gnu@cygnus.com)
1199
1200         * macsock.c:  Eliminate "TCPTB.h".
1201         * mac_stubs.c (isname, isinst, isrealm):  Remove, useless.
1202         (krb_get_pw_in_tkt_preauth):  Stub out to be the same as
1203         krb_get_pw_in_tkt, for kinit's sake.
1204
1205         * mac_stubs.c (hicall):  Fix error handling somewhat.
1206
1207         * Makefile.in (SRCS, OBJS):  Add g_tkt_svc.c, .o.
1208
1209         * kname_parse.c, rd_priv.c, rd_safe.c, unix_glue.c:  Typos.
1210
1211 Fri Jul  1 03:55:29 1994  John Gilmore  (gnu@cygnus.com)
1212
1213         Make Kerberos work in a Macintosh driver using Think C.
1214
1215         * %KrbLib-project:  Think C "project file" (sort of
1216         makefile and object files rolled into one -- all binary)
1217         for the Kerberos library built for linking into applications
1218         (for debugging).
1219         * %KrbLib-project-A4:  Ditto, for linking into device drivers.
1220
1221         * mac_stubs.c:  New file, implements the function-call
1222         interface of "kerberos.h" by making calls to a device-driver
1223         using the hairy Mac interface of "krb_driver.h".  If you
1224         link with this, your Mac program can use a portable, clean
1225         interface to Kerberos.
1226
1227         * g_tkt_svc.c:  New file, krb_get_ticket_for_service,
1228         an "easy application kerberizer", derived from kclient.
1229
1230         * err_txt.c (krb_err_txt):  Avoid pointers to string initializers,
1231         since Think C can't cope with this in device drivers.
1232         (krb_get_err_table):  Remove interface, unused.
1233
1234         * month_sname.c:  Avoid pointers to string initializers.
1235         * kname_parse.c:  Add FIXME comment about args.
1236         * mac_glue.c (read, write krb_ignore_ip_address):  Stub out.
1237         * macsock.c, memcache.c, sendauth.c:  Lint.  Think includes.
1238
1239         * mac_store.h:  Eliminate static and obsolete stuff.
1240         * mac_store.c:  Update includes for Think.
1241         (gUserName):  Make static.
1242         (krb_get_default_user, krb_set_default_user):  Add.
1243         * unix_glue.c, win_glue.c (krb_set_default_user):  Add stub.
1244
1245         * g_ad_tkt.c, kname_parse.c, memcache.c, mk_priv.c, mk_req.c,
1246         mk_safe.c, pkt_clen.c, rd_priv.c, rd_safe.c:  Remove uses of
1247         printf, by using DEB macro.
1248
1249         * send_to_kdc.c:  Change to "krbports.h".
1250         (DEB):  Remove definition in favor of krb.h.
1251         (all calls to DEB):  Avoid passing stdout or stderr.
1252
1253 Thu Jun 30 22:58:59 1994  John Gilmore  (gnu@tweedledumb.cygnus.com)
1254
1255         * *.c:  Remove remaining RCS ID strings.  Strings used as `char *'
1256         initializers upset Think C when building device drivers, since it
1257         doesn't have a good way to relocate the pointers when the driver
1258         is loaded.
1259
1260         * *.c:  Use #include "..." rather than #include <...> for
1261         our own local include files, because Think C can't find them
1262         when enclosed in <...>.
1263
1264 Thu Jun 30 17:48:26 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
1265
1266         * send_to_kdc.c (prog): Now const pointer to const.
1267         (timeout): Static var deleted.
1268         (send_recv): Use a local timeout structure instead, reinitialized
1269         before each use, in case select modifies its value.
1270
1271 Wed Jun 22 19:42:50 1994  Mark Eichin  (eichin@cygnus.com)
1272
1273         * mk_preauth.c (krb_free_preauth): New function to free up storage
1274         allocated by krb_mk_preauth (if any.)
1275
1276         * g_pw_in_tkt.c (krb_get_pw_in_tkt_preauth): use krb_free_preauth
1277         to possibly release storage used by krb_mk_preauth.
1278
1279         * g_svc_in_tkt.c (krb_get_svc_in_tkt_preauth): use
1280         krb_free_preauth to possibly release storage used by krb_mk_preauth.
1281
1282 Wed Jun 22 19:33:21 1994  Mark Eichin  (eichin@cygnus.com)
1283
1284         * put_svc_key.c: USE_UNISTD_H to get SEEK_CUR if neccessary.
1285
1286 Wed Jun 22 18:11:49 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
1287
1288         * sendauth.c (krb_mk_auth): Don't call memset with BUFSIZ, since
1289         the field in question is only MAX_KTXT_LEN bytes long.
1290
1291         * in_tkt.c, mk_priv.c, mk_safe.c, pkt_cipher.c, pkt_clen.c,
1292         rd_err.c, rd_priv.c, rd_safe.c, tf_util.c: Include string.h.
1293
1294 Wed Jun 22 15:11:35 1994  John Gilmore  (gnu@cygnus.com)
1295
1296         * ren.msg:  Add put_svc_key.c.
1297
1298 Wed Jun 22 15:03:53 1994  Mark Eichin  (eichin at tweedledumber.cygnus.com)
1299
1300         * put_svc_key.c (put_svc_key): new file, new function.
1301         * Makefile.in: add put_svc_key to SERVER_KRB_*.
1302
1303 Tue Jun 21 01:20:44 1994  John Gilmore  (gnu@cygnus.com)
1304
1305         * kname_parse.c (kname_parse, isinst):  Allow periods in instance
1306         names.  Pull RCS crud.
1307
1308 Tue Jun 21 00:20:20 1994  John Gilmore  (gnu@cygnus.com)
1309
1310         * Makefile.in (all):  First rule in file just calls all-really.
1311         (all-really):  Call $(ALL_WHAT) after it's been set.
1312         * memcache.c:  Remove typedef kludges to
1313         ../../include/mt-windows.h.  Add Size.  WINDOWS -> _WINDOWS.    
1314
1315 Sat Jun 18 09:11:49 1994  John Gilmore  (gnu@cygnus.com)
1316
1317         Make DES library independent of krb library.
1318
1319         * unix_glue.c, mac_glue.c, win_glue.c:  Remove time-handling
1320         code to ../../lib/des/*_time.c.
1321
1322 Sat Jun 18 07:46:32 1994  John Gilmore  (gnu@cygnus.com)
1323
1324         * send_to_kdc.c (send_recv):  Use SOCKET_NFDS as first arg to
1325         select().
1326         * macsock.c (gethostname):  Add incomplete stab at gethostname(),
1327         under #if 0.
1328         * cr_ciph.c, cr_tkt.c, decomp_tkt.c, g_ad_tkt.c, mac_store.c,
1329         mk_req.c, mk_safe.c: Lint.
1330
1331 Fri Jun 17 02:02:00 1994  John Gilmore  (gnu@cygnus.com)
1332
1333         * DNR.c:  New file of MacTCP interface code.
1334         * macsock.c:  To avoid using StreamPtr in <macsock.h>, declare
1335         fStream as unsigned long.  Cast it whenever we need it.  This
1336         removes the need to include MacTCP header files in <macsock.h>.
1337         * macsock.c, mac_glue.c:  Eliminate inclusion of "mac_glue.h".
1338         * mac_glue.h:  Remove.
1339
1340 Thu Jun 16 17:30:04 1994  John Gilmore  (gnu@cygnus.com)
1341
1342         * Makefile.in (unixmac):  New target.
1343         * g_in_tkt.c:  MPW complains about types without a cast.
1344         * mac_glue.c:  Pull networking code out into macsock.c.
1345         (krb_get_phost):  Pull this; use ordinary common version.
1346         (krb_start_session, krb_end_session):  Add.
1347         * mac_store.c (gUserName):  Add definition.
1348         Move static declarations above where they're needed.
1349         (krb_realmofhost):  Return null pointer, not KFAILURE.
1350         * macsock.c:  New file, implements socket abstraction for UDP.
1351         * memcache.c: Update header file handling.  FIXME, works on Mac,
1352         not on Windows too.
1353         * send_to_kdc.c (send_to_kdc):  Clean up error handling.
1354         Improve comments.  Add prototype for static function.
1355         * stime.c:  #define NEED_TIME_H.  Use proper type for time_t.
1356
1357 Wed Jun 15 16:35:52 1994  John Gilmore  (gnu@cygnus.com)
1358
1359         * unix_glue.c (krb_start_session, krb_end_session):  Take
1360         args and ignore them, to match the prototypes.
1361
1362 Fri Jun 10 22:52:14 1994  John Gilmore  (gnu@cygnus.com)
1363
1364         * g_in_tkt.c (swap_bytes):  Declare extern, not common.
1365         * mac_glue.h:  New (was called MacMachineDependencies.h in
1366         an earlier incarnation).
1367         * mac_glue.c:  Add code for time zone and Domain Name
1368         Service resolution.
1369         * mac_store.c:  Eliminate credential storage, leaving just
1370         configuration storage.  Initialize the store whenever a
1371         high-level routine is called and we haven't initialized.
1372         Return result from init_store, so callers can return
1373         KFAILURE if we can't read the config data.
1374         * mac_store.h:  Pull credential storage (now in memcache.h).
1375         * unix_glue.c (krb_start_session, krb_end_session,
1376         krb_get_default_user):  Provide dummy ones on Unix.
1377
1378 Thu Jun  9 00:47:59 1994  John Gilmore  (gnu@cygnus.com)
1379
1380         * Makefile.in (SRCS, OBJS):  Move cr_death_pkt.c and kparse.c
1381         to SERVER_SRCS and SERVER_OBJS.
1382         (DELIVERABLES, INSTALL_DELIVERABLES):  Replace with ALL_WHAT
1383         and INSTALL_WHAT, which actually work.
1384         (all-unix):  Main rule for building on Unix now.
1385         (clean):  Consolidate `make clean' entries so it actually works.
1386
1387 Wed Jun  8 23:47:30 1994  John Gilmore  (gnu@cygnus.com)
1388
1389         Further DLL support for Windows, plus, make previous
1390         changes work on Unix again.
1391
1392         * memcache.c:  New file implements ticket cacheing in RAM.
1393         * memcache.h:  Interface for memcache.c.
1394
1395         * win_glue.c: Remove stub interfaces for in_tkt, save_credentials,
1396         krb_save_credentials, krb_get_cred, dest_tkt, krb_get_tf_realm.
1397
1398         * g_ad_tkt.c, g_in_tkt.c:  Rename save_credentials to
1399         krb_save_credentials.
1400         * save_creds.c (save_credentials):  Remove.
1401         * g_in_tkt.c (decrypt_tkt, krb_get_in_tkt_preauth):
1402         Declare and use new key_proc_type and decrypt_tkt_type
1403         typedefs for pointers to function prototypes.
1404         (krb_get_in_tkt):  Move after krb_get_in_tkt_preauth.
1405         * mk_preauth.c (krb_mk_preauth):  Declare and use key_proc_type.
1406
1407         * dest_tkt.c (dest_tkt), in_tkt.c (in_tkt), g_tf_fname.c
1408         (krb_get_tf_fullname): If ticket cache selector is null, use
1409         default cache.  (Cache selector used to be the result of
1410         tkt_string; now tkt_string is called when it is null.)
1411
1412         * send_to_kdc.c:  Replace all debug printf's with calls to
1413         the DEB macro, which is a no-op unless #define DEBUG.
1414         Insert #ifdef DEBUG where that is inconvenient.  (DLL libc
1415         doesn't seem to have printf.)  Lint.
1416
1417         * g_krbrlm.c (krb_get_lrealm):  Declare as INTERFACE.
1418         Break out KRB_CONF into a static variable so we can debug it
1419         easier.
1420         
1421         * g_pw_in_tkt.c (krb_get_pw_in_tkt):  Declare as INTERFACE.
1422         Give an explicit error if the supplied password is null;
1423         this forces the caller to supply us one, rather than relying
1424         on a Kerberos library routine to interact with the user.  Lint.
1425         (passwd_to_key):  Make extern.  Don't call *_read_password.
1426         (krb_get_pw_in_tkt_preauth):  Give error for null password.     
1427         (placebo_read_password):  Add FIXME comment.
1428
1429         * kerberos.def:  Use PASCAL calling sequence (uppercase names,
1430         no leading underlines) for interface functions.
1431
1432         * in_tkt.c, g_pw_in_tkt.c, kparse.c:  Remove RCS crud.
1433
1434 Fri May 27 09:25:14 1994  John Gilmore  (gnu@cygnus.com)
1435
1436         Initial Dynamic Link Library support for MS-Windows.
1437
1438         * Makefile.in:  Move more files to only build on SERVER machines.
1439         (kerberos.dll, c-krbdll.rsp):  Build dynamic link library for
1440         MS-Windows.
1441         (kerberos.lib):  Build import library for MS-Windows.
1442         (all-windows, install-windows):  New targets for MS-Windows.
1443
1444         * kerberos.def:  New file defines the Kerberos DLL interface.
1445
1446         * winsock.def:  New file defines the WinSock DLL interface that
1447         we rely upon.  This file is from FTP:
1448         //sunsite.unc.edu/pub/micro/pc-stuff/ms-windows/winsock/winsock-1.1
1449         except that we made all the routine names uppercase, to match what
1450         MicroSoft C does when you declare an interface routine PASCAL
1451         (like all these routines).
1452
1453         * err_txt.c (krb_get_err_table, krb_get_err_text):  New
1454         functions for DLL access to the error table.
1455
1456         * g_admhst.c, g_cred.c, g_krbhst.c, g_phost.c, g_svc_in_tkt.c,
1457         kname_parse.c, mk_err.c, mk_priv.c, mk_req.c, mk_safe.c, rd_err.c,
1458         rd_priv.c, rd_req.c, rd_safe.c, realmofhost.c, recvauth.c,
1459         sendauth.c: Add INTERFACE declaration to definitions of functions
1460         that are exported via the DLL interface.
1461
1462         * win_glue.c (win_time_gmt_unixsec):  Use static storage for
1463         _ftime() arg, since it takes a near pointer and can't point to
1464         stack storage when SS!=DS.
1465         (in_tkt, save_credentials, krb_save_credentials, krb_get_cred,
1466         dest_tkt, krb_get_tf_realm, krb_set_tkt_string,
1467         krb_ignore_ip_address):  Dummy routines for now.
1468         (LibMain, WEP):  No-op routines required for DLL initialization.
1469         (krb_start_session, krb_end_session): No-op routines required for
1470         Kerberos Mac interface compatability.
1471
1472         * save_creds.c (krb_save_credentials):  Add new interface function
1473         to replace save_credentials, which isn't well enough named to
1474         export as part of the Kerberos interface.
1475
1476         * kname_parse.c, kparse.c, rd_safe.c, send_to_kdc.c:  Move
1477         printf's under #ifdef DEBUG since printf is not usually available
1478         in MS-Windows.  Change exit()'s under "can't happen" conditions to
1479         return statements.
1480
1481         * g_krbhst.c:  Clean up #ifdef'd braces so they match up.
1482         * sendauth.c:  Remove unused "extern int errno;".
1483         * kname_parse.c:  Remove unused extern of krb_err_txt.
1484         * mk_err.c, save_creds.c:  Remove RCS crud.
1485         * ren.msg:  Add rd_preauth.c and mk_preauth.c to DOS rename table.
1486
1487 Wed May 25 09:17:06 1994  D V Henkel-Wallace  (gumby@tweedledumb.cygnus.com)
1488
1489         * g_pw_in_tkt.c: when read_password.c was inserted whole into this
1490         file, des.h and conf.h were #include'ed, which causes circularity
1491         problems.  #include's removed; they weren't needed anyway.
1492
1493 Tue May 24 00:55:30 1994  John Gilmore  (gnu@cygnus.com)
1494
1495         * sendauth.c:  Break up into separately callable functions to
1496         avoid pushing binary data down a socket supposedly controlled
1497         by the kerberos library's caller.
1498         (krb_mk_auth):  New; builds a packet and returns it to you.
1499         (krb_net_rd_sendauth):  Reads a packet from the net.
1500         (krb_check_auth):  Checks an incoming response for validity.
1501         FIXME:  ATHENA_COMPAT code in here is now broken.  Remove it?
1502         FIXME:  Break up into separate files so that the non file
1503         descriptor part can be included on Mac.
1504
1505         * g_admhst.c, mk_req.c:  Pull RCS crud.
1506
1507         * mk_req.c:  Allow the realm argument to be defaulted with a null
1508         pointer.  This makes it suitable for building krb_sendauth
1509         messages directly.
1510
1511         * tf_util.c (tf_init): If argument is null, call tkt_string to
1512         select a ticket cache.  See also ../../include/krb-sed.h, where
1513         the default argument was changed to be null.
1514
1515         * send_to_kdc.c (MAX_HSTNM):  Eliminate only use of this obsolete
1516         define; use MAXHOSTNAMELEN which is set properly in each system.
1517
1518         * fakeenv.c:  Update copyright notice (it's now public domain,
1519         freed by Cygnus Support, for whom the work was done for hire).
1520
1521 Mon May 23 00:19:46 1994  Mark Eichin  (eichin at tweedledumb.cygnus.com)
1522
1523         * rd_svc_key.c (get_service_key): new function. Same as original
1524         read_service_key except that it takes argument kvno by reference,
1525         so the caller can figure out what key actually matched. Also
1526         defaults to KEYFILE if file argument is NULL (instead of just
1527         calling open with that value.) Also defaults to current realm if
1528         realm argument not passed in.
1529         (read_service_key): now calls get_service_key.
1530
1531         * rd_safe.c (krb_rd_safe): check krb_ignore_ip_address before
1532         deciding to fail on an IP address check.
1533         (krb_rd_safe): remove "direction checking" code which doesn't
1534         actually help, and can interfere if IP addresses are optional.
1535
1536         * rd_req.c (krb_rd_req): check krb_ignore_ip_address before
1537         deciding to fail on an IP address check; move test to end of
1538         function as well (to provide more information value in the
1539         RD_AP_BADD error return.)
1540
1541         * rd_req.c: define (allocate) krb_ignore_ip_address.
1542
1543         * rd_priv.c (krb_rd_priv): check global variable
1544         krb_ignore_ip_address before deciding to fail on an IP address
1545         check.
1546         (krb_rd_priv): remove "direction checking" code which doesn't
1547         actually help, and can interfere if IP addresses are optional.
1548
1549         * netread.c (krb_net_read): use socket_read under VMS, assuming
1550         MultiNet. 
1551
1552         * netwrite.c (krb_net_write): use socket_write under VMS, assuming
1553         MultiNet. 
1554
1555         * mk_priv.c (krb_mk_priv): If private_msg_ver isn't set yet, use
1556         the expected version (KRB_PROT_VERSION) instead.
1557
1558         * Makefile.in (SRCS, OBJS): added mk_preauth, rd_preauth.
1559
1560         * g_in_tkt.c (krb_get_in_tkt_preauth): New function. Supports
1561         simple preauthentication by appending data to the initial packet.
1562         Demonstration hooks only.
1563
1564         * g_svc_in_tkt.c (krb_get_svc_in_tkt_preauth): New function.
1565         Preauthentication support for initial tickets for servers.
1566         (krb_svc_init): New function. An interface to krb_get_svc_in_tkt
1567         that is provided by DEC's dss-kerberos, added here for
1568         compatibility.
1569         (krb_svc_init_preauth): preauthentication version of krb_svc_init.
1570
1571         * g_pw_in_tkt.c (krb_get_pw_in_tkt_preauth): New function.
1572         Higher level interface to g_in_tkt for users.
1573
1574         * g_pw_in_tkt.c: in NOENCRYPTION section, pull in <sgtty.h>
1575         under __svr4__ so the ioctls work under Solaris.
1576
1577 Sat May 21 04:02:59 1994  John Gilmore  (gnu@cygnus.com)
1578
1579         * Makefile.in (c-libkrb.${LIBEXT}):  Typos, do .o->.obj.
1580         * gethostname.c:  Simplify to call GETHOSTNAME macro.
1581         * stime.c:  Arg is *time, not time.  Oops.  Also simplify.
1582         * win_glue.c:  Support CONVERT_TIME_EPOCH and make it work
1583         for the odd epoch on MSC 7.0.
1584         (win_socket_initialize):  New routine implements SOCKET_INITIALIZE.
1585         (in_tkt, save_credentials, dest_tkt):  Stubs to link kinit with.
1586
1587         First FAR crap in our clean sources (sigh).
1588
1589         * win_glue.c (far_fputs):  Print a far string returned by WinSock.
1590         * ad_print.c:  Handle FAR pointer from inet_ntoa.
1591         * g_phost.c:  Handle FAR pointer returned by gethostby*.
1592         
1593         * send_to_kdc.c: Convert to WinSock plus local macros that make
1594         compatability easier.  Initialize and terminate WinSock access
1595         each time we are called.  Handle FAR pointer from get*by* and
1596         inet_ntoa.  Bind the datagram socket before using it, to get
1597         beyond a bug in FTP Software's WinSock libraries.  Improve debug
1598         messages.
1599
1600 Thu May 19 22:57:13 1994  John Gilmore  (gnu@cygnus.com)
1601
1602         More Windows support.
1603
1604         * Makefile.in (LIBEXT):  Use everywhere.
1605         (SERVER_KRB_{SRCS,OBJS}):  Rename from SERVERSIDE*.
1606         (ARCHIVEARGS):  Implement MSC LIB support.
1607         (####):  Move insertion point of host-configuration fragments
1608         down so they can override the various Makefile macros.
1609         (libkrb.$(LIBEXT)):  Avoid keeping a .bak file.  Use ARCHIVEARGS.
1610         (unixdos):  New target for things that have to run on Unix
1611         after configuring for DOS.  (FIXME, make these work on DOS.)
1612         (c-libkrb.$(LIBEXT)):  Build control file for MSC.  This
1613         currently must run on Unix (FIXME).
1614
1615         * stime.c:  Use CONVERT_TIME_EPOCH.
1616
1617 Sat May 14 00:49:11 1994  John Gilmore  (gnu@cygnus.com)
1618
1619         More Macintosh merging.
1620
1621         * Makefile.in (CACHESRCS, CACHEOBJS, REALMDBSRCS, REALMDBOBJS,
1622         SERVERSIDESRCS, SERVERSIDEOBJS):  Update the lists of files that
1623         belong to each category.
1624         * unix-glue.c, mac-glue.c, win-glue.c:  Rename to unix_glue.c,
1625         mac_glue.c, win_glue.c.
1626         * g_ad_tkt.c:  Improve comments on cross-realm support.
1627         * g_phost.c:  Remove RCS crud.
1628         * store.c, store.h:  Rename to mac_store.c, mac_store.h.  Insert
1629         all the Kerberos glue routines needed to talk to the Cygnus code.
1630
1631 Fri May 13 17:40:02 1994  John Gilmore  (gnu@cygnus.com)
1632
1633         * Makefile.in (SERVERSIDESRCS, SERVERSIDEOBJS):  Create
1634         as lists of lib/krb files only used on servers, so they can
1635         be avoided when on client-only machines.
1636         (CACHESRCS, CACHEOBJS):  Put all the rightful files in there.
1637         * realmofhost.c:  Pull <sys/param.h> and default MAXHOSTNAMELEN.
1638         * dest_tkt.c, realmofhost.c, tf_shm.c:  Remove RCS crud.
1639         * rd_safe.c, tf_shm.c:  Remove errno declaration, <errno.h>, etc.
1640         * mk_priv.c:  Comment changes.
1641         * g_ad_tkt.c:  Remove obsolete defn of <sys/time.h>.
1642
1643 Fri May 13 12:17:32 1994  John Gilmore  (gnu@cygnus.com)
1644
1645         Macintosh changes.
1646
1647         * store.h, store.c:  Ticket storage in memory on the Mac.
1648         * mac-glue.c:  New file, deals with OS and time interface.
1649         * Makefile.in:  Pull tf_util.[co] out into CACHESRCS and
1650         CACHEOBJS, so it can be excluded on Mac and Windows.
1651         * g_in_tkt.c:  Don't declare signed difference t_diff as unsigned!
1652         * g_ad_tkt.c, rd_safe.c, rd_req.c, rd_priv.c, mk_safe.c, mk_req.c:
1653         Remove <sys/time.h>.  Use TIME_GMT_UNIXSEC and clean up datatype
1654         issues around clock-skew/ticket-replay checking.  Remove __i960__
1655         conditionals, which should be handled by changing CLOCK_SKEW in
1656         960-specific config files.
1657         * mk_priv.c:  Rename TIME_GMT_UNIXSEC_MS to TIME_GMT_UNIXSEC_US.
1658         * setenv.c:  Remove <sys/types.h>.
1659         * rd_priv.c, mk_safe.c:  Remove <errno.h>, and decls of errno and
1660         errmsg.
1661         * rd_req.c, stime.c, mk_safe.c:  Remove RCS crud.
1662
1663 Fri May 13 02:02:56 1994  John Gilmore  (gnu@cygnus.com)
1664
1665         * Makefile.in:  Support glue files for each major architecture
1666         (Unix, mac, windows).  Replace {} with () for DOS NMAKE.
1667         Build krb_err.h without `make depend'.  Remove -DBSD42 since it
1668         is no longer used.
1669         * unix-glue.c:  New file, interfaces to Unix gettimeofday.
1670         * win-glue.c:  New file, interfaces to Windows _ftime.
1671         * g_in_tkt.c, mk_priv.c:  Pull <sys/time.h>, use new macro interface
1672         TIME_GMT_UNIXSEC to get the time.
1673         * gethostname.c:  Pull BSD42.  Insert FIXME comments about the
1674         poor DOS support.
1675         * mk_priv.c:  Pull <errno.h>, errno, and errmsg as unused.
1676
1677         * ad_print.c:  Pull <arpa/inet.h>, which is now in <krb.h>.
1678         * decomp_tkt.c:  Add file name to title comments.
1679         * fakeenv.c:  Pull <sys/types.h> and <stdio.h>.
1680         * g_phost.c:  Replace <netdb.h> and <osconf.h> with <krb.h>.
1681         * ren.msg:  Remove get_request.c (g_request.c), now gone.
1682         * send_to_kdc.c:  Pull <netdb.h>.
1683         * setenv.c:  Add "conf.h" for non-cmd-line configuration.
1684
1685 Sun May  8 23:34:16 1994  John Gilmore  (gnu@cygnus.com)
1686
1687         Include-file straightening:  Remove Unix include
1688         files from as many routines as possible -- particularly
1689         <sys/types.h> and network include files.
1690
1691         * ad_print.c:  Use DEFINE_SOCKADDR to get struct sockaddr_in.
1692         Lint.  Pull RCS crud.
1693         * cr_err_repl.c, tf_shm.c, tf_util.c, tkt_string.c:  Pull
1694         <sys/types.h>.
1695         * cr_tkt.c, decomp_tkt.c:  Pull <stdio.h>.
1696         * dest_tkt.c, in_tkt.c, mk_err.c:  Pull <sys/types.h>
1697         * g_ad_tkt.c:  Pull <sys/types.h>, <errno.h>, RCS crud.
1698         * g_cred.c:  Pull RCS crud, add <string.h>.
1699         * g_in_tkt.c:  Pull <sys/types.h>, <errno.h>, <stdio.h>, RCS crud.
1700         * g_tf_fname.c:  Lint, pull RCS crud.
1701         * kuserok.c:  <pull <sys/types.h> and <sys/socket.h>.
1702         * rd_err.c:  Pull <stdio.h>, <errno.h>, <sys/types.h>, <sys/times.h>.
1703         * mk_priv.c, mk_safe.c, rd_err.c, rd_priv.c, rd_safe.c,
1704         recvauth.c, send_to_kdc.c, sendauth.c:  Use DEFINE_SOCKADDR to get
1705         struct sockaddr_in.
1706         * cr_tkt.c, debug.c, mk_safe.c, rd_err.c, rd_safe.c, recvauth.c,
1707         sendauth.c:  Pull RCS crud. 
1708         * rd_safe.c, sendauth.c:  Lint.
1709         * strcasecmp.c:  Remove <sys/types.h> and change the few
1710         occurrances of u_foo types to `unsigned foo'.  Pull SCCS crud(!).
1711
1712 Sun May  8 19:24:08 1994  John Gilmore  (gnu@cygnus.com)
1713
1714         * add_tkt.c, ext_tkt.c:  Remove, unused.  As its comments say:
1715         This routine is now obsolete.  It used to be possible to request
1716         more than one ticket at a time from the authentication server, and
1717         it looks like this routine was used by the server to package the
1718         tickets to be returned to the client.
1719
1720         * g_request.c:  Remove, unused.  Its comments:
1721         This procedure is obsolete.  It is used in the kerberos_slave
1722         code for Version 3 tickets.
1723
1724         * getopt.c:  Remove, unused.
1725         * Makefile.in:  Remove unused files.
1726
1727 Sat May  7 13:44:20 1994  John Gilmore  (gnu@cygnus.com)
1728
1729         * krbglue.c:  Remove, unused.  Mark Eichin says:
1730         krbglue, if I recall correctly, was backwards compatibility code so
1731         that programs that were written with V3 could be relinked with V4
1732         without recompiling. The Zephyr code used it at one point, though I
1733         doubt it does anymore. It's probably sufficient to note that in the
1734         cvs log when you delete it.
1735
1736         * krbglue.c, recvauth.c, sendauth.c:  Lint.
1737
1738 Fri May  6 21:11:10 1994  John Gilmore  (gnu@cygnus.com)
1739
1740         * ren-cyg.sh, ren-pc.sh, ren-pl10.sh, ren.msg.sh, ren2dos,
1741         ren2long.sh sed-cyg.sh, ren-pc.bat, sed-pc.sh:  Update for final
1742         DOS renaming.
1743
1744 Fri May  6 18:32:11 1994  John Gilmore  (gnu@cygnus.com)
1745
1746         * rd_priv.c, mk_priv.c, rd_safe.c, mk_safe.c:  Rename include
1747         file "lsb_addr_comp.h" to "lsb_addr_cmp.h" for DOS/SYSV.
1748
1749 Fri May  6 02:10:50 1994  John Gilmore  (gnu@cygnus.com)
1750
1751         * krbglue.c: Move Kerberos function prototypes to ../include/krb.h.
1752         Yank RCS.  Lint.
1753         * mk_priv.c (krb_mk_priv), rd_priv.c (krb_rd_priv):  Lint.  Yank RCS.
1754
1755 Thu May  5 12:49:34 1994  John Gilmore  (gnu@cygnus.com)
1756
1757         * decomp_tkt.c: Remove need for <sys/file.h> under KRB_CRYPT_DEBUG
1758         by using stdio.  Call krb_log, not log.  Lint.  Remove RCS ID's.
1759
1760         * g_tf_realm.c:  Lint.
1761
1762 Tue Apr 26 20:54:29 1994  John Gilmore  (gnu@tweedledumb.cygnus.com)
1763
1764         Massive file renaming for DOS compatability.
1765
1766         * ren.msg, ren-cyg.sh, sed-cyg.sh:  New files.
1767
1768         * Imakefile, Makefile.in:  File names edited throughout.
1769
1770         * add_ticket.c, cr_auth_reply.c, cr_err_reply.c, create_ciph.c,
1771         create_ticket.c, debug_decl.c, decomp_ticket.c, extract_tkt.c,
1772         get_ad_tkt.c, get_admhst.c, get_cred.c, get_in_tkt.c, get_krbhst.c,
1773         get_krbrlm.c, get_phost.c, get_pw_tkt.c, get_request.c, get_svc_in.c,
1774         get_tf_fname.c, get_tf_realm.c, getrealm.c, k_gethostname.c,
1775         krb_err_txt.c, krb_get_in.c, read_svc_key.c, util.c:  Renamed.
1776
1777         * ad_print.c, add_tkt.c, cr_auth_repl.c, cr_ciph.c, cr_err_repl.c,
1778         cr_tkt.c, debug.c, decomp_tkt.c, err_txt.c, ext_tkt.c, g_ad_tkt.c,
1779         g_admhst.c, g_cred.c, g_in_tkt.c, g_krbhst.c, g_krbrlm.c,
1780         g_phost.c, g_pw_in_tkt.c, g_pw_tkt.c, g_request.c, g_svc_in_tkt.c,
1781         g_tf_fname.c, g_tf_realm.c, gethostname.c, rd_svc_key.c,
1782         realmofhost.c:  Same files, renamed.
1783
1784 Sun Jan 30 17:28:57 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
1785
1786         * getrealm.c (krb_realmofhost): Rearrange loop so that strcasecmp
1787         is called only once for domains listed in krb.conf, and exiting
1788         function is cleaner.
1789