Don't assume that presence of res_nsearch() means we have ns_initparse()
[krb5.git] / src / lib / krb5 / os / ChangeLog
1 2004-09-21  Tom Yu  <tlyu@mit.edu>
2
3         * dnsglue.c: Conditionalize some stuff on ns_initparse() instead
4         of assuming that the presence of res_nsearch() means
5         ns_initparse() is available.
6
7 2004-09-20  Tom Yu  <tlyu@mit.edu>
8
9         * Makefile.in (STLIBOBJS, OBJS, SRCS): Add dnsglue.c.
10
11         * dnsglue.c: New file.  Implement resolver glue layer to abstract
12         away the details of calling res_search or res_nsearch, and of
13         parsing the reply packet.
14
15         * dnsglue.h: New file.
16
17         * dnssrv.c (krb5int_make_srv_query_realm): Use dnsglue.  Use
18         MAXDNAME from dnsglue.h or resolv.h instead of MAX_DNS_NAMELEN.
19
20         * hst_realm.c (krb5_try_realm_txt_rr): Use dnsglue.  Use MAXDNAME
21         from dnsglue.h or resolv.h instead of MAX_DNS_NAMELEN.
22
23 2004-09-13  Tom Yu  <tlyu@mit.edu>
24
25         * dnssrv.c: 
26         * hst_realm.c: 
27         * locate_kdc.c: Include netinet/in.h as a prerequisite for
28         resolv.h.
29
30 2004-08-27  Ken Raeburn  <raeburn@mit.edu>
31
32         * sendto_kdc.c (start_connection) [DEBUG]: Log the local socket
33         address.
34
35 2004-08-12  Alexandra Ellwood  <lxs@mit.edu>
36
37         * ccdefname.c (krb5_cc_set_default_name, krb5_cc_default_name):
38         Look up the default ccache name in krb5_cc_default_name, not
39         krb5_cc_set_default_name so that krb5_init_context doesn't
40         have to do work it might never use.
41
42 2004-07-22  Ken Raeburn  <raeburn@mit.edu>
43
44         * localaddr.c (get_lifconf): Define only if "struct lifconf" is
45         available.
46         (foreach_localaddr): Use get_lifconf only if "struct lifconf" is
47         available.
48
49 2004-07-16  Ken Raeburn  <raeburn@mit.edu>
50
51         * genaddrs.c, localaddr.c, lock_file.c, mk_faddr.c: Don't check
52         for macsock.h.
53
54 2004-07-15  Alexandra Ellwood  <lxs@mit.edu>
55
56         * init_os_ctx.c (krb5_os_init_context, krb5_os_free_context) 
57           ccdefname.c (krb5_cc_set_default_name):
58         Removed default_ccprincipal field from krb5_context
59
60 2004-07-04  Ken Raeburn  <raeburn@mit.edu>
61
62         * dnssrv.c (krb5int_make_srv_query_realm) [HAVE_RES_NSEARCH]: Use
63         res_nsearch instead of res_search.
64         * hst_realm.c (krb5_try_realm_txt_rr) [HAVE_RES_NSEARCH]:
65         Likewise.
66
67 2004-07-02  Ken Raeburn  <raeburn@mit.edu>
68
69         * an_to_ln.c: Include string.h.
70
71 2004-06-22  Ken Raeburn  <raeburn@mit.edu>
72
73         * an_to_ln.c (db_an_to_ln): Don't test macintosh.
74         * krbfileio.c (krb5_sync_disk_file): Likewise.
75         * kuserok.c: Likewise.
76         * prompter.c: Likewise.
77         * promptusr.c: Likewise.
78         * read_pwd.c: Likewise.
79
80 2004-06-15  Ken Raeburn  <raeburn@mit.edu>
81
82         * c_ustime.c: Include k5-thread.h.
83         (get_time_now): New function, holds system-dependent code.
84         (krb5int_us_time_mutex): New mutex.
85         (struct time_now): New type.
86         (last_time): New variable, replaces old last_tv, last_sec,
87         last_usec.
88         (krb5_crypto_us_timeofday): Rewrite.  Do locking around access to
89         previously returned value, and ensure that we don't return
90         duplicate values.
91         * os-proto.h: Include k5-thread.h.
92         (krb5int_us_time_mutex): Declare.
93
94 2004-06-04  Ken Raeburn  <raeburn@mit.edu>
95
96         * kuserok.c (krb5_kuserok): Handle draft POSIX versions of
97         getpwnam_r.
98
99 2004-06-02  Tom Yu  <tlyu@mit.edu>
100
101         * an_to_ln.c (do_replacement): Patch from Bill Dodd to fix missing
102         braces in previous security patch.
103
104 2004-06-01  Sam Hartman  <hartmans@mit.edu>
105
106         * an_to_ln.c (rule_an_to_ln): Fix buffer overflow when parsing
107         principal names into components. 
108         (do_replacement): likewise
109         (aname_replacer): Support error return from do_replacement
110
111 2004-05-07  Sam Hartman  <hartmans@mit.edu>
112
113         * an_to_ln.c: Patch from Matt Crawford  to allow matching on
114         realms of cross-realm principals.
115
116 2004-05-05  Ken Raeburn  <raeburn@mit.edu>
117
118         * localaddr.c: Incorporate foreach_localaddr implementation.
119         Export it as krb5int_foreach_localaddr.  Include foreachaddr.h,
120         not foreachaddr.c.
121
122 2004-03-22  Ken Raeburn  <raeburn@mit.edu>
123
124         * sendto_kdc.c (krb5int_sendto): Initialize select_state.end_time.
125         (get_so_error): New function.
126         (service_tcp_fd): Call it for write fds as well as exception fds.
127
128 2004-03-18  Ezra Peisach  <epeisach@mit.edu>
129
130         * sendto_kdc.c (krb5_sendto_kdc): Change passing pointer to value of
131         use_master parameter to krb5_locate_kdc.
132
133 2004-03-05  Ken Raeburn  <raeburn@mit.edu>
134
135         * lock_file.c (krb5_lock_file): Initialize flock data on entry,
136         but don't bother with a static version to copy from.
137
138 2004-02-26  Jeffrey Altman <jaltman@mit.edu>
139
140     * sendto_kdc.c, send524.c:
141       The use_master parameter of sendto_kdc is now an in/out 
142       parameter used to report to the caller whether or not
143       the responding KDC was in fact the master.  This is 
144       necessary to allow callers to prevent making an unnecessary
145       additional call to query the master if the original 
146       query did not explicitly state that the master should be 
147       queried.
148
149 2004-02-25  Ken Raeburn  <raeburn@mit.edu>
150
151         * sendto_kdc.c (start_connection): Close socket if connect() call
152         fails for an unexpected reason.
153
154 2004-02-13  Ken Raeburn  <raeburn@mit.edu>
155
156         * genaddrs.c: Don't specify defaults for
157         GET{PEER,SOCK}NAME_ARG{2,3}_TYPE macros.
158
159 2004-02-09  Sam Hartman  <hartmans@mit.edu>
160
161         * changepw.c (krb5_locate_kpasswd): Run htons on the default port
162
163 2003-12-22  Jeffrey Altman <jaltman@mit.edu>
164
165     * dnssrv.c:  wrap within #ifdef KRB5_DNS_LOOKUP to prevent references
166       to resolver functions when DNS support is not being compiled 
167
168 2003-12-19  Ken Raeburn  <raeburn@mit.edu>
169
170         * realm_iter.c (krb5_realm_iterator_create): Array NAMES is now
171         const.
172
173         * prompter.c (catch_signals, restore_signals): Take pointer to old
174         signal handler info as new argument.
175         (osiginfo): New typedef.
176         (setup_tty, restore_tty): Take pointer to old signal handler info
177         and old termios settings as new arguments.
178         (krb5_prompter_posix): Pass the extra arguments, addresses of new
179         automatic variables.
180         (osigint, saveparm): Variables deleted.
181
182         * Makefile.in (STLIBOBJS, OBJS, SRCS): Don't build promptusr.c.
183
184         * sendto_kdc.c (default_debug_handler, put, putstr): Define only
185         if DEBUG is defined.
186         (DEBUG): Don't define.
187         (krb5int_sendtokdc_debug_handler): Initialize to null if DEBUG is
188         not defined.
189
190 2003-12-18  Jeffrey Altman <jaltman@mit.edu>
191
192     * accessor.c: Add new functions for use by gssapi
193
194 2003-12-12  Tom Yu  <tlyu@mit.edu>
195
196         * an_to_ln.c (krb5_aname_to_localname): Don't write one byte past
197         the end of a string.  Found by Christopher Nebergall.
198
199 2003-10-27  Jeffrey Altman <jaltman@mit.edu>
200
201     * sendto_kdc.c: sockets must be closed with closesocket() and 
202       and not close() in order to ensure portability among different
203       operating systems.
204
205 2003-08-21  Ken Raeburn  <raeburn@mit.edu>
206
207         * dnssrv.c: New file; split out DNS SRV RR query support...
208         * locate_kdc.c: ...from here.  Always compile in the calls.
209         * Makefile.in (STLIBOBJS, OBJS, SRCS): Add it.
210
211 2003-07-25  Ken Raeburn  <raeburn@mit.edu>
212
213         * locate_kdc.c (krb5_locate_kdc): Always pass 0 to locate_server
214         as the get_masters argument.  Instead, if get_masters is set,
215         look up "master_kdc" in the config file instead of "kdc".
216
217 2003-07-17  Ken Raeburn  <raeburn@mit.edu>
218
219         * Makefile.in (LIBNAME) [##WIN16##]: Don't define.
220
221 2003-07-09  Alexandra Ellwood  <lxs@mit.edu>
222
223         * toffset.c: Export krb5_set_real_time for Samba.
224
225 2003-06-06  Ken Raeburn  <raeburn@mit.edu>
226
227         * locate_kdc.c (struct srv_dns_entry): Moved to k5-int.h.
228         (krb5int_make_srv_query_realm): Renamed from make_srv_query_realm.
229         (krb5int_free_srv_dns_data): New function.
230         (krb5_locate_srv_dns_1): Use it.
231
232         * accessor.c (krb5int_accessor): Fill in make_srv_query_realm and
233         free_srv_dns_data fields.
234
235 2003-06-05  Ken Raeburn  <raeburn@mit.edu>
236
237         * locate_kdc.c (make_srv_query_realm): Punt if strdup fails.
238         Always return what data we can, even if memory allocation or other
239         problems prevent us from returning more.
240         (krb5_locate_srv_dns_1): Always return what data we can.  Fix
241         memory leak.  Free up temporary storage as quickly as possible,
242         while building up address list to return.
243
244 2003-06-03  Ken Raeburn  <raeburn@mit.edu>
245
246         * accessor.c (krb5int_accessor): Initialize restored locate_server
247         field.
248
249         * locate_kdc.c (struct srv_dns_entry): Move to top level.
250         (make_srv_query_realm): Separate from krb5_locate_srv_dns_1; just
251         do query and return results.
252         (krb5_locate_srv_dns_1): Call it, and build addlist entries.
253         Check for one RR with a target of ".", and return an error.
254         (krb5_locate_srv_dns): Deleted.
255
256         * t_locate_kdc.c (main): Call krb5_locate_srv_dns_1.
257
258         * changepw.c (krb5_locate_kpasswd): Check specifically for certain
259         errors before using fallback heuristics.
260
261 2003-06-03  Alexandra Ellwood  <lxs@mit.edu>
262
263         * init_os_ctx.c: Included header to get __KLAllowHomeDirectoryAccess().
264
265 2003-05-27  Ken Raeburn  <raeburn@mit.edu>
266
267         * send524.c (krb5int_524_sendto_kdc): Enable support on Windows
268         always.
269
270 2003-05-24  Ken Raeburn  <raeburn@mit.edu>
271
272         * send524.c: New file, moved from krb524/sendmsg.c.  Rename
273         function to have krb5int_ prefix.  If KRB5_KRB4_COMPAT not
274         defined, return an error.
275         * accessor.c (krb5int_accessor): Update for deleted and added
276         fields.  If KRB5_KRB4_COMPAT is not defined, just use null
277         pointers for the new fields.
278
279 2003-05-06  Alexandra Ellwood  <lxs@mit.edu>
280
281         * init_os_ctx.c: Added support for KLL's __KLAllowHomeDirectoryAccess()
282         function so that krb4, krb5 and gssapi will not access the user's homedir
283         if the application forbids it.
284
285 2003-04-28  Sam Hartman  <hartmans@mit.edu>
286
287         * changepw.c (krb5_change_set_password): Locate server in realm of
288         creds.server, not in realm of target principal because target
289         principal is null in the  changepw case.
290
291 2003-04-28  Ken Raeburn  <raeburn@mit.edu>
292
293         * init_os_ctx.c (krb5_os_init_context, krb5_os_free_context):
294         Don't allocate or free the os_context, since it's now a direct
295         member of the krb5_context, not separately allocated storage.
296
297 2003-04-27  Sam Hartman  <hartmans@mit.edu>
298
299         * changepw.c (krb5_change_set_password): Call
300         krb5_setpw_result_code_string not krb5_setpw_result_code_string  
301
302 2003-04-24  Sam Hartman  <hartmans@mit.edu>
303
304         * changepw.c (krb5_change_set_password): return error from
305         auth_con_setaddrs not last socket errno if auth_con_setaddrs fails 
306
307 2003-04-15  Sam Hartman  <hartmans@mit.edu>
308
309         * changepw.c (krb5_change_set_password): Patches from Paul Nelson
310         to implement Microsoft set password protocol  
311         (krb5_set_password_using_ccache): Use kadmin/changepw in target realm, not local realm and use a two-component principal
312         (krb5_change_set_password): Find the kpasswd server for the realm
313         of the target principal not the client 
314
315 2003-04-13  Ken Raeburn  <raeburn@mit.edu>
316
317         * read_pwd.c (krb5_read_password): Always free temporary storage
318         used for verification version of password.
319
320 2003-03-06  Alexandra Ellwood <lxs@mit.edu>
321
322     * c_ustime.c: Removed Mac OS 9 code.
323     
324     * ccdefname.c: Conditionalize on USE_CCAPI and not TARGET_OS_MAC
325     so Darwin builds work.
326     
327     * init_os_ctx.c: Modified to use DEFAULT_SECURE_PROFILE_PATH and
328     DEFAULT_PROFILE_PATH for KfM homedir-relative config files.
329     
330     * read_pwd.c: Cast to remove const warnings.
331     
332     * timeofday.c: Do the same thing on the Mac as on Unix.
333
334 2003-03-04  Sam Hartman  <hartmans@mit.edu>
335
336         * sendto_kdc.c (service_tcp_fd): Don't call shutdown on end of write because some implementations cannot deal with half-closed TCP sockets.
337
338 2003-02-08  Tom Yu  <tlyu@mit.edu>
339
340         * prompter.c (krb5_prompter_posix): Kill echo before printing
341         prompt to avoid possible race conditions in test suite.
342
343 2003-02-06  Tom Yu  <tlyu@mit.edu>
344
345         * prompter.c (krb5_prompter_posix, setup_tty, restore_tty): Fix to
346         use the actual file descriptor we dup()'ed to in case tcsetattr()
347         doesn't actually change the underlying device modes and instead
348         only affects the specific file descriptor.
349
350 2003-02-06  Ken Raeburn  <raeburn@mit.edu>
351
352         * locate_kdc.c (translate_ai_error): Handle EAI_ADDRFAMILY like
353         EAI_NONAME.
354         (krb5int_add_host_to_list): Translate errors returned from the
355         second getaddrinfo call.
356
357 2003-02-04  Tom Yu  <tlyu@mit.edu>
358
359         * prompter.c (krb5_prompter_posix): Rewrite to no longer use
360         longjmp(), as well as to get a non-buffered stdio stream on stdin
361         to avoid passwords staying around in stdio buffers.  This does
362         have the side effect of possibly losing pre-buffered input from an
363         application that reads from stdin using stdio functions prior to
364         calling the prompter, but hopefully those are rare.
365
366 2003-01-10  Ken Raeburn  <raeburn@mit.edu>
367
368         * Makefile.in: Add AC_SUBST_FILE marker for libobj_frag.
369
370 2003-01-07  Ken Raeburn  <raeburn@mit.edu>
371
372         * sendto_kdc.c (state_strings): Now const.
373
374 2002-12-06  Tom Yu  <tlyu@mit.edu>
375
376         * accessor.c (krb5int_accessor): Add add_host_to_list.
377
378         * changepw.c (krb5_locate_kpasswd): Update calls to
379         krb5_locate_kdc().
380
381         * locate_kdc.c (add_host_to_list): Renamed to
382         krb5int_add_host_to_list(), with macro to deal with existing
383         callers in this file.  Now takes an argument to indicate protocol
384         family.  Callers updated accordingly to also take protocol family
385         arguments.
386
387         * os-proto.h: Update prototype of krb5_locate_kdc().
388
389         * sendto_kdc.c (krb5_sendto_kdc): Update calls to
390         krb5_locate_kdc().
391         (krb5int_sendto): UDP reply length is in.pos-in.buf, not
392         in.bufsize.
393
394         * t_locate_kdc.c (main): Update call to krb5_locate_kdc().
395
396         * t_std_conf.c (test_locate_kdc): Update call to krb5_locate_kdc().
397
398 2002-11-14  Tom Yu  <tlyu@mit.edu>
399
400         * changepw.c: Remove reference to adm_err.h.
401
402 2002-11-12  Ken Raeburn  <raeburn@mit.edu>
403
404         * Makefile.in (t_locate_kdc): Use normal CC_LINK rule for linking
405         test program.
406
407 2002-10-28  Ken Raeburn  <raeburn@mit.edu>
408
409         * localaddr.c (print_addr) [TEST]: Don't mix size_t and socklen_t,
410         just assume socklen macro will return a socklen_t value.  Cast
411         buffer size to socklen_t in getnameinfo call.
412
413 2002-10-22  Ezra Peisach  <epeisach@bu.edu>
414
415         * sendto_kdc.c (service_tcp_fd): If DEBUG defined, ensure that
416         initialization of variable not bypassed by goto.
417
418 2002-10-15  Tom Yu  <tlyu@mit.edu>
419
420         * hst_realm.c (krb5_try_realm_txt_rr): Apply patch from Nalin
421         Dahyabhai to bounds-check return value from res_search().
422
423         * locate_kdc.c (krb5_locate_srv_dns_1): Apply patch from Nalin
424         Dahyabhai to bounds-check return value from res_search().
425
426 2002-10-11  Tom Yu  <tlyu@mit.edu>
427
428         * read_pwd.c (krb5_read_password): Restore name of size_return.
429         Set *size_return after successful call to krb5_prompter_posix,
430         since some callers were actually checking, e.g. kadm5.
431
432 2002-10-10  Sam Hartman  <hartmans@mit.edu>
433
434         * read_pwd.c (krb5_read_password): Reimplement in terms of krb5_prompter_posix for unix
435
436
437 2002-09-26  Ken Raeburn  <raeburn@mit.edu>
438
439         * sendto_kdc.c (krb5int_cm_call_select): Fix last change.
440
441
442 2002-09-19  Ken Raeburn  <raeburn@mit.edu>
443
444         * sendto_kdc.c (krb5int_cm_call_select): If timeout value has
445         tv_sec==0, treat it as meaning "no timeout".
446         (krb5int_debug_fprint): Handle null timeval pointer.
447
448 2002-09-18  Ken Raeburn  <raeburn@mit.edu>
449
450         * sendto_kdc.c: Include cm.h.
451         (struct select_state, SSF_READ, SSF_WRITE, SSF_EXCEPTION): Moved
452         to cm.h.
453         (DEBUG): Define.
454         (krb5int_debug_sendto_kdc): Initialize to zero.
455         (default_debug_handler, put, putstr): New functions.
456         (krb5int_sendtokdc_debug_handler): New variable.
457         (krb5int_debug_fprint): Don't write to stderr; instead, pass
458         strings to the debug output handlers above.
459         (struct incoming_krb5_message): Broken out from struct
460         conn_state.
461         (krb5int_cm_call_select): Renamed from call_select; callers
462         updated.  Now extern.  Display max fd number in debugging call,
463         not nfds.
464
465 2002-09-17  Sam Hartman  <hartmans@mit.edu>
466
467         * genaddrs.c (krb5_auth_con_genaddrs): Return errno if getpeername fails
468
469 2002-09-14  Ken Raeburn  <raeburn@mit.edu>
470
471         * sendto_kdc.c (service_fds): Fix bug in last change.
472         (krb5int_debug_fprint): Use 'out' consistently, minimize explicit
473         references to stderr.  Flush output before returning.
474         (dperror) [_WIN32]: Shorten message.
475         (start_connection, service_tcp_fd, service_fds, krb5int_sendto):
476         Use dprint instead of dfprintf.
477
478 2002-09-13  Ken Raeburn  <raeburn@mit.edu>
479
480         * sendto_kdc.c (struct conn_state): Add new function pointer field
481         'service' for the fd service routine.
482         (setup_connection): Initialize it.
483         (service_fd): Deleted.
484         (service_fds): Incorporate debug output from service_fd.  Call
485         service routine indicated in connection info.  Decrement select fd
486         count for each flag set for a file descriptor.  Ensure that the
487         index into the conns array doesn't run off the end.
488         (krb5int_debug_fprint): Fetch correct type for %E.
489
490 2002-09-11  Ken Raeburn  <raeburn@mit.edu>
491
492         * locate_kdc.c (get_port): Skip service name lookup, just use the
493         supplied numbers.
494         (add_host_to_list): If a second port number is supplied, look up
495         AF_INET addresses only, and only for SOCK_DGRAM type entries.
496         Ignore errors in the second address lookup.
497         (krb5_locate_srv_conf_1) [TEST]: More debugging code.
498
499         * t_locate_kdc.c (main): Add new argument -m for looking up master
500         KDC addresses.
501
502
503 2002-09-03  Ken Raeburn  <raeburn@mit.edu>
504
505         * accessor.c, an_to_ln.c, c_ustime.c, ccdefname.c, changepw.c,
506         def_realm.c, free_hstrl.c, free_krbhs.c, full_ipadr.c, gen_port.c,
507         gen_rname.c, genaddrs.c, get_krbhst.c, gmt_mktime.c, hostaddr.c,
508         hst_realm.c, init_os_ctx.c, krbfileio.c, ktdefname.c, kuserok.c,
509         localaddr.c, locate_kdc.c, lock_file.c, mk_faddr.c, net_read.c,
510         net_write.c, port2ip.c, prompter.c, promptusr.c, read_msg.c,
511         read_pwd.c, realm_dom.c, realm_iter.c, sendto_kdc.c, sn2princ.c,
512         t_an_to_ln.c, t_gifconf.c, t_locate_kdc.c, t_realm_iter.c,
513         t_std_conf.c, timeofday.c, toffset.c, unlck_file.c, ustime.c,
514         write_msg.c: Use prototype-style function definitions.
515
516         * c_ustime.c, timeofday.c: Don't declare errno.
517         * hst_realm.c (krb5_try_realm_txt_rr), locate_kdc.c
518         (krb5_locate_srv_dns_1): Avoid variable name "class".
519         * sendto_kdc.c (enum conn_states): Define separately from
520         conn_state 'state' field declaration.
521
522 2002-08-29  Ken Raeburn  <raeburn@mit.edu>
523
524         * Makefile.in: Revert $(S)=>/ change, for Windows support.
525
526 2002-08-23  Ken Raeburn  <raeburn@mit.edu>
527
528         * sendto_kdc.c (merge_addrlists): Truncate source address list
529         after copying its data into the destination list.
530
531         * Makefile.in: Change $(S)=>/ and $(U)=>.. globally.
532
533 2002-08-22  Ken Raeburn  <raeburn@mit.edu>
534
535         * locate_kdc.c (krb5int_grow_addrlist): Renamed from grow_list,
536         now external.
537         (grow_list): New macro.
538         (krb5_locate_kdc): Don't look up kerberos-sec for TCP service.
539
540         * sendto_kdc.c (MAX_PASS, dprint): New macros.
541         (krb5int_debug_fprint, merge_addrlists): New function.
542         (krb5int_debug_sendto_kdc): New variable.
543         (krb5_sendto_kdc): Use dprint.  Call krb5int_locate_kdc in two
544         places, with socket type selection done separately.
545         (debug_log_connect): Function deleted; use dprint instead.
546         (dperror): Use dprint.
547         (print_fdsets): Function deleted; use dprint instead.
548         (struct conn_state): Use struct instead of union so incoming and
549         outgoing buffer pointers can co-exist.  Add INITIALIZING state.
550         (state_strings): Add INITIALIZING.
551         (krb5int_sendto_udp, krb5int_sendto_tcp): Functions integrated
552         into krb5int_sendto.
553         (call_select): Use dprint.
554         (setup_connection): New function, handles data structure
555         initialization.
556         (start_connection): Renamed from start_tcp_connection.  Don't do
557         data structure initialization, just start connection, and transmit
558         UDP datagrams.  Use dprint.
559         (maybe_send): Create socket for "INITIALIZING" connections;
560         transmit datagrams.
561         (kill_conn): New function split out from service_tcp_fd.
562         (SSF_READ, SSF_WRITE, SSF_EXCEPTION): New macros.
563         (service_tcp_fd): Accept a flag word rather than separate int
564         arguments for read, write, exception.  Use dprint.
565         (service_udp_fd): New function.
566         (service_fd): New function, calls one of the above two.
567         (service_fds): Call it.  Use a flag word instead of separate r/w/x
568         values.
569         * accessor.c (krb5int_accessor): Use krb5int_sendto instead of
570         krb5int_sendto_udp.
571
572 2002-08-15  Ken Raeburn  <raeburn@mit.edu>
573
574         * sendto_kdc.c (DEFAULT_UDP_PREF_LIMIT, HARD_UDP_LIMIT): New
575         macros.
576         (debug_log_connect): Look up "udp_preference_limit" in libdefaults
577         part of profile; try TCP before UDP if the packet size is larger
578         than specified.  Don't try UDP at all if the packet is over about
579         32K.
580
581 2002-07-23  Ezra Peisach  <epeisach@bu.edu>
582
583         * localaddr.c (get_localaddrs): Add prototype before being used
584         for static function.
585
586 2002-07-09  Ken Raeburn  <raeburn@mit.edu>
587
588         * sn2princ.c: Include fake-addrinfo.h.
589         (krb5_sname_to_principal): Use getaddrinfo and getnameinfo instead
590         of gethostbyname and gethostbyaddr.
591
592         * hst_realm.c (krb5_get_host_realm): Return KRB5_ERR_NUMERIC_REALM
593         if the hostname is a numeric-address form.
594
595 2002-07-08  Ken Raeburn  <raeburn@mit.edu>
596
597         * localaddr.c (get_localaddrs): Split out main body of
598         krb5_os_localaddr, add an argument to indicate whether addresses
599         listed in the profile should be included.
600         (krb5_os_localaddr): Call it.
601         (krb5int_local_addresses): Call get_localaddrs but skip
602         profile-listed addresses.
603
604         * sendto_kdc.c (krb5int_sendto_udp): Accept new args for optional
605         location to store local address used to contact server.
606         (krb5_sendto_kdc): Update call to pass 0.
607
608 2002-07-05  Ken Raeburn  <raeburn@mit.edu>
609
610         * sendto_kdc.c (service_tcp_fd): sockerrlen should have type
611         socklen_t.
612
613 2002-07-03  Alexandra Ellwood <lxs@mit.edu>
614
615         * init_os_ctx.c: krb4 needs to get the os config files so it can use
616         the profile too.  Define these functions on Mac OS X now.
617
618         * init_os_ctx.c: Removed use of FSSpecs because these cause serious
619         performance problems on Mac OS X.  We now search paths the same way
620         the rest of the Unix platforms do.
621
622         [pullups from 1-2-2-branch]
623
624 2002-06-22  Tom Yu  <tlyu@mit.edu>
625
626         * c_ustime.c: Remove various things missed in 1-2-2-branch MacOS
627         microseconds timer removal.
628
629 2001-06-22  Miro Jurisic <meeroh@mit.edu>
630
631         * c_ustime.c: punted the accurate microseconds timing code because it
632         wasn't so accurate after all.
633         [pullup from 1-2-2-branch]
634
635 2002-06-22  Alexandra Ellwood <lxs@mit.edu>
636
637         * init_os_ctx.c: Add CoreServices.h before k5-int.h so we don't get 
638         multiple definitions for FSSpec.  Also removed an unused variable in
639         Mac OS X code and added casts for Mac OS X code so FSSpecs are cast
640         to profile file types (code deals properly on the other side)
641
642         * timeofday.c: Added casts to remove warnings
643
644         * ccdefname.c, init_os_ctx.c, timeofday.c: Updated Mac OS X
645         headers to new framework layout and updated Mac OS macros
646
647         * read_pwd.c: Removed #defines for Mac OS X (__MACH__) because we 
648         now export krb5_read_password on Mac OS X
649
650         [pullups from 1-2-2-branch]
651
652 2002-06-19  Ken Raeburn  <raeburn@mit.edu>
653
654         * init_os_ctx.c: Don't include sys/ioctl.h or sys/filio.h.
655         (krb5_os_init_context): Drop /dev/[u]random support, the Yarrow
656         code will deal with that now.
657
658 2002-06-18  Danilo Almeida  <dalmeida@mit.edu>
659
660         * toffset.c (krb5_get_time_offsets), an_to_ln.c
661         (krb5_aname_to_localname): Make KRB5_CALLCONV.
662         [pullup from 1-2-2-branch]
663
664 2002-06-18  Ken Raeburn  <raeburn@mit.edu>
665
666         * changepw.c (ECONNABORTED, ECONNREFUSED, EHOSTUNREACH,
667         ETIMEDOUT): Don't define here now that they're defined in
668         port-sockets.h.
669         * read_msg.c (ECONNABORTED): Ditto.
670
671         * sendto_kdc.c: Include sys/timeb.h on Windows.
672         (ENABLE_TCP): Macro deleted, always enable code.
673         (krb5_sendto_kdc): Don't try UDP if outgoing message is 1500
674         bytes or larger.  Print info on arguments if DEBUG defined.
675         (bogus_strerror) [_WIN32 && DEBUG]: New function.
676         (dperror, dfprintf): New macros.
677         (krb5int_sendto_udp): Use SOCKET_ERRNO where appropriate.  Log
678         more info if DEBUG defined; use dperror and dfprintf.
679         (struct conn_state): Use new scatter-gather definitions from
680         port-sockets.h.  Don't try to reuse data structures for both
681         input and output.
682         (struct select_state): Add exception fd set.
683         (print_fdsets) [DEBUG]: Print exception fd set; callers changed.
684         (getcurtime): New function.
685         (call_select): Call it.  Pass exception fd set to select.
686         (make_nonblocking, iov_advance): Deleted.
687         (start_tcp_connection): Expand non-blocking setting inline; set
688         linger period to zero.  Use new scatter-gather framework.  Log
689         more info if DEBUG defined.
690         (service_tcp_fd): New argument indicates exception; handle
691         exception fd set.  Print more info if DEBUG.  Use SOCKET_*
692         macros, scatter-gather support, SHUTDOWN_* macros.  Adjust for
693         new conn_state definitions.
694         (krb5int_sendto_tcp): Set up exception fd set.  Adjust for new
695         conn_state definitions.  Use new scatter-gather support.
696
697 2002-06-11  Ken Raeburn  <raeburn@mit.edu>
698
699         * sendto_kdc.c: Include sys/ioctl.h and sys/filio.h only if
700         ENABLE_TCP is set and _WIN32 is not defined.
701
702 2002-06-10  Ken Raeburn  <raeburn@mit.edu>
703
704         * sendto_kdc.c: Include sys/ioctl.h and sys/filio.h if
705         available.  Define ENABLE_TCP as 0 on Windows, 1 otherwise.
706         (debug_log_connect): New function.
707         (dperror, dfprintf): New macros.
708         (krb5int_sendto_udp): Use dperror, dfprintf, and
709         debug_log_connect.
710         (state_strings): New variable.
711         (struct conn_state, struct select_state): New types.
712         (print_fdsets, call_select, make_nonblocking,
713         start_tcp_connection, iov_advance, service_tcp_fd, service_fds,
714         krb5int_sendto_tcp): New functions.
715         (krb5_sendto_kdc): New argument TCP_ONLY.  Try UDP first unless
716         told otherwise, then try TCP.
717
718         * t_std_conf.c: Include fake-addrinfo.h.
719         (test_locate_kdc): Update arg list to locate_kdc.  Print IPv6 as
720         well as IPv4 addresses.
721
722         * t_locate_kdc.c (main): Free storage allocated by library before
723         exiting.
724
725 2002-06-04  Ken Raeburn  <raeburn@mit.edu>
726
727         * locate_kdc.c (krb5_locate_srv_conf_1): New argument socktype
728         indicates what type of addrinfo entries to add.
729         (krb5int_locate_server): Change argument is_stream to socktype.
730         Pass the value to krb5_locate_srv_conf_1.
731         (krb5_locate_kdc): New argument socktype.
732         * sendto_kdc.c (krb5int_sendto_udp): New function, containing most
733         of the network code from krb5_sendto_kdc.
734         (krb5_sendto_kdc): Call it.
735         * accessor.c (krb5int_accessor): Set new sendto_udp field.
736         * os-proto.h (krb5_locate_kdc): Update prototype.  Add forward
737         declaration for struct addrlist.
738         * t_locate_kdc.c (main): Update call to krb5_locate_kdc.
739
740         * locate_kdc.c: Include fake-addrinfo.h before k5-int.h.
741         (grow_list, krb5int_free_addrlist)
742         (add_addrinfo_to_list): Incorporate list-updating code from
743         add_sockaddr_to_list.  Store an addrinfo pointer, and set the
744         ai_next field to null.
745         (add_host_to_list): New arg SOCKTYPE.  Write port numbers into
746         buffers and let getaddrinfo fill in the sin*_port fields.  Call
747         getaddrinfo twice, and use two loops to add entries to the
748         addrlist structure.
749         (add_sockaddr_to_list, set_port_num): Deleted.
750         (krb5_locate_srv_conf_1, krb5_locate_srv_dns_1): Pass extra arg
751         to add_host_to_list.
752         (krb5int_locate_server): New value 2 for is_stream arg means
753         accept both UDP and TCP.
754         * changepw.c: Include fake-addrinfo.h.
755         (krb5_locate_passwd, krb5_change_password): Update for addrlist
756         changes.
757         * sendto_kdc.c: Include fake-addrinfo.h.
758         (krb5_sendto_kdc): Update for addrlist changes.  Skip any
759         addresses that are not SOCK_DGRAM.
760         * t_locate_kdc.c (stypename): New function.
761         (print_addrs): Update for addrlist changes.  Print socket type
762         with address and port.
763
764 2002-04-12  Ken Raeburn  <raeburn@mit.edu>
765
766         * lock_file.c (krb5_lock_file) [POSIX_FILE_LOCKS]: Make static
767         "zero" variable const.
768
769         * prompter.c (krb5_prompter_posix): Initialize 'i' and make it
770         volatile.
771
772         * locate_kdc.c (add_addrinfo_to_list) [TEST]: Print out socket
773         type before returning.
774         (add_host_to_list): Don't need to initialize err.  Supply
775         getaddrinfo hint to select datagram addresses only.  Delete AIX
776         bug workaround code.
777
778 2002-04-10  Danilo Almeida  <dalmeida@mit.edu>
779
780         * locate_kdc.c (translate_ai_error), hst_realm.c
781         (krb5int_translate_gai_error): Test some EAI_ error definitions
782         so that we will also build correctly on Win32 (Winsock 2).
783
784 2002-03-26  Ken Raeburn  <raeburn@mit.edu>
785
786         * hostaddr.c (FAI_PREFIX): Delete.
787         * hst_realm.c (FAI_PREFIX): Delete.
788         * localaddr.c [TEST || DEBUG]: Include fake-addrinfo.h, not
789         fake-addrinfo.c.
790         (FAI_PREFIX) [TEST || DEBUG]: Delete.
791         * locate_kdc.c: Include fake-addrinfo.h, not fake-addrinfo.c.
792         (FAI_PREFIX): Delete.
793
794 2002-02-20  Ken Raeburn  <raeburn@mit.edu>
795
796         * localaddr.c: Include foreachaddr.c.
797         (printaddr, printifaddr, addr_eq, grow_or_free, get_ifconf,
798         get_lifconf, get_linux_ipv6_addrs, foreach_localaddr): Deleted.
799         * Makefile.in (localaddr.o): Update dependencies.
800
801 2002-02-10  Ken Raeburn  <raeburn@mit.edu>
802
803         * localaddr.c (LINUX_IPV6_HACK) [__linux__&& KRB5_USE_INET6]:
804         Define macro.
805         (get_linux_ipv6_addrs) [LINUX_IPV6_HACK]: New function, reads
806         addresses from /proc/net/if_inet6.
807         (foreach_localaddr) [!HAVE_IFADDRS_H && !SIOCGLIFNUM &&
808         LINUX_IPV6_HACK]: Include ipv6 addresses.
809
810 2002-01-09  Ken Raeburn  <raeburn@mit.edu>
811
812         * hst_realm.c (EAFNOSUPPORT): On Windows, translate to
813         WSAEAFNOSUPPORT.
814
815 2002-01-08  Ken Raeburn  <raeburn@mit.edu>
816
817         * hst_realm.c (krb5int_get_fq_hostname): New function.  Use
818         getaddrinfo instead of gethostbyname.
819         (krb5int_get_fq_local_hostname): New function.
820         (krb5_get_host_realm): Call it.
821         * def_realm.c (krb5_get_default_realm): Call it.
822
823         * Makefile.in (t_localaddr): Link against $(LIBS).
824
825 2001-12-05  Ezra Peisach  <epeisach@mit.edu>
826
827         * sendto_kdc.c (krb5_sendto_kdc): Get rid of unecessary casts.
828
829 2001-10-24  Sam Hartman  <hartmans@mit.edu>
830
831         * accessor.c (krb5int_accessor):  Add fields for struct version 4
832
833 2001-10-17  Ken Raeburn  <raeburn@mit.edu>
834
835         * locate_kdc.c (add_host_to_list): If sa_len field exists and is
836         zero, try to fill it in.  Another AIX 4.3.3 bug workaround.
837
838         * sendto_kdc.c (krb5_sendto_kdc) [DEBUG]: More fprintf calls for
839         tracing through.
840
841 2001-10-10  Ezra Peisach  <epeisach@mit.edu>
842
843         * localaddr.c (krb5_os_localaddr_profile): Cast argument to
844         isspace() to int.
845
846 2001-10-09  Ken Raeburn  <raeburn@mit.edu>
847
848         * os-proto.h: Make prototypes unconditional.
849
850 2001-10-05  Ken Raeburn  <raeburn@mit.edu>
851
852         * an_to_ln.c, c_ustime.c, ccdefname.c, init_os_ctx.c, ktdefname.c,
853         kuserok.c, localaddr.c, lock_file.c, prompter.c, promptusr.c,
854         read_pwd.c: Drop _MSDOS support.
855
856         * ccdefname.c, def_realm.c, free_hstrl.c, hst_realm.c,
857         ktdefname.c, localaddr.c, mk_faddr.c, read_pwd.c, sn2princ.c,
858         timeofday.c, ustime.c: Don't explicitly declare pointers FAR any
859         more.
860
861 2001-10-03  Ken Raeburn  <raeburn@mit.edu>
862
863         * accessor.c, ccdefname.c, changepw.c, def_realm.c, free_hstrl.c,
864         genaddrs.c, hst_realm.c, init_os_ctx.c, ktdefname.c, localaddr.c,
865         prompter.c, realm_dom.c, realm_iter.c, sn2princ.c, timeofday.c,
866         ustime.c: Don't use KRB5_DLLIMP.
867
868 2001-09-29  Ken Raeburn  <raeburn@mit.edu>
869
870         * locate_kdc.c (add_host_to_list): If address family in sockaddr
871         structure is zero, copy it in from the addrinfo structure.  Bug
872         workaround for AIX 4.3.3.
873
874 2001-09-28  Ken Raeburn  <raeburn@mit.edu>
875
876         * localaddr.c: Retrieve IPv6 addresses on Solaris 8.
877         (get_lifconf) [SIOCGLIFCONF]: New function.
878         (foreach_localaddr) [SIOCFLIGNUM]: New section, using new lifconf
879         and lifreq structures and related ioctls.
880         (Tprintf, Tperror): New macros.  Print stuff if TEST is defined,
881         otherwise be silent but cause same evaluations to happen.
882
883         * localaddr.c (TEST || DEBUG): Include fake-addrinfo.c, not
884         fake-addrinfo.h.
885
886 2001-08-31  Ken Raeburn  <raeburn@mit.edu>
887
888         * hostaddr.c (krb5_os_hostaddr): Don't use AI_DEFAULT.
889
890         * genaddrs.c (struct addrpair): New type.
891         (cvtaddr): New function.  Fills in krb5_address structures
892         referencing port and address parts of a sockaddr.  Converts
893         IPv4-mapped IPv6 addresses to plain IPv4 addresses.
894         (krb5_auth_con_genaddrs): Use sockaddr_storage for addresses.  Use
895         addrpairs to pass to cvtaddr, then set up pointers to the elements
896         as needed.
897
898 2001-08-30  Ken Raeburn  <raeburn@mit.edu>
899
900         * locate_kdc.c: Include fake-addrinfo.c instead of
901         fake-addrinfo.h.
902         (FAI_IMPLEMENTATION): Deleted.
903
904 2001-08-01  Ken Raeburn  <raeburn@mit.edu>
905
906         * localaddr.c: Include ctype.h.
907         [TEST || DEBUG]: Defined FAI_PREFIX and include fake-addrinfo.h.
908         (foreach_localaddr) [TEST]: Change whitespace in some debug
909         messages.
910         (print_addr) [TEST]: Delete non-getnameinfo version of code.
911         Change some messages.
912         (struct localaddr_data): New field CUR_SIZE.
913         (allocate): Grow existing storage, if already allocated.
914         (krb5_os_localaddr_profile): New function.  Looks up
915         "extra_addresses" in "libdefaults" section, separates on
916         whitespace, looks up addresses, adds them to the list.
917         (krb5_os_localaddr): Call krb5_os_localaddr_profile first; ignore
918         any errors it reports.
919         (krb5_os_localaddr) [DEBUG]: More debugging code.
920
921         * hostaddr.c (krb5_os_hostaddr): Only retry non-numeric lookup
922         after numeric lookup if AI_NUMERICHOST is nonzero.
923
924 2001-07-31  Ezra Peisach  <epeisach@mit.edu>
925
926         * genaddrs.c: Use GETPEERNAME_ARG2_TYPE, GETPEERNAME_ARG3_TYPE
927         instead of assuming types. 
928
929         * changepw.c: Use GETSOCKNAME_ARG3_TYPE instead of int in casts.
930
931 2001-07-26  Ezra Peisach  <epeisach@mit.edu>
932
933         * gen_port.c (krb5_gen_portaddr): Add const to cast of
934         krb5_const_pointer to maintain const status.
935
936 2001-07-24  Ezra Peisach  <epeisach@mit.edu>
937
938         * sn2princ.c: Do not cast away const char * in call to strdup.
939
940 2001-07-24  Jeffrey Altman <jaltman@columbia.edu>
941
942         * def_realm.c: 
943             krb5_get_default_realm() required a profile file
944             even when KRB5_DNS_LOOKUP was defined.  
945
946 2001-07-19  Ken Raeburn  <raeburn@mit.edu>
947
948         * hostaddr.c: Include fake-addrinfo.h.
949         (FAI_PREFIX): Define macro.
950         (krb5_os_hostaddr): Use getaddrinfo, to get ipv6 support and
951         thread safety.  Support numeric addresses as well.
952
953         * t_locate_kdc.c: New file.
954         * Makefile.in (t_locate_kdc.o, t_locate_kdc): New targets.
955
956         * locate_kdc.c: Include fake-addrinfo.h.
957         (FAI_PREFIX, FAI_IMPLEMENTATION): Define macros.
958         (get_port, add_sockaddr_to_list, add_host_to_list): Drop
959         gethostbyname/getservbyname support, always use getnameinfo, which
960         should be thread-safe.
961         (translate_ai_error, set_port_num): Now always defined.
962         (set_port_num): Only check for AF_INET6 if KRB5_USE_INET6.
963
964 2001-07-06  Ezra Peisach  <epeisach@mit.edu>
965
966         * sn2princ.c (krb5_sname_to_principal): Cast tolower argument to int. 
967
968         * hst_realm.c (krb5_get_host_realm): Cast argument to toupper and
969         tolower to int.
970
971 2001-06-21  Ezra Peisach  <epeisach@mit.edu>
972
973         * t_std_conf.c (test_locate_kdc): Get rid of unused variable.
974
975 2001-06-20  Ezra Peisach  <epeisach@mit.edu>
976
977         * t_std_conf.c (test_locate_kdc): Update to new krb5_locate_kdc
978         interface.
979
980 2001-06-19  Ken Raeburn  <raeburn@mit.edu>
981
982         * locate_kdc.c (struct addrlist, ADDRLIST_INIT): Moved to
983         k5-int.h.
984         (krb5int_free_addrlist): Renamed from free_list; no longer
985         static.
986         (krb5_locate_srv_conf, krb5_locate_srv_dns, krb5int_locate_server,
987         krb5_locate_kdc): Use addrlist in interface.
988
989         * sendto_kdc.c (krb5_sendto_kdc): Use new struct addrlist
990         interface.
991
992         * changepw.c (krb5_locate_kpasswd): Use addrlist structure in
993         interface and implementation.
994         (krb5_change_password): Likewise.
995
996         * accessor.c (krb5int_accessor): Fill in free_addrlist function
997         pointer field.
998
999         * os-proto.h (krb5_locate_kdc): Update prototype.
1000
1001 2001-06-12  Ezra Peisach  <epeisach@mit.edu>
1002
1003         * sn2princ.c, hst_realm.c, an_to_ln.c: Cast argument to
1004         isupper()/isspace()/islower() to int.
1005
1006         * t_std_conf.c (test_locate_kdc): krb5_locate_kdc expects a struct
1007         sockaddr *** as a third argument instead of sockaddr **.
1008
1009 2001-06-07  Ezra Peisach  <epeisach@mit.edu>
1010
1011         * ktdefname.c (krb5_kt_default_name): Get rid of a variable that
1012         was set in a conditional but never used.
1013
1014 2001-05-08  Danilo Almeida  <dalmeida@mit.edu>
1015
1016         * locate_kdc.c (add_host_to_list): Initialize stack variable err
1017         which would otherwise get returned without being set in certain
1018         circumstances.
1019
1020 2001-05-07  Ken Raeburn  <raeburn@mit.edu>
1021
1022         * locate_kdc.c (add_sockaddr_to_list) [TEST]: If getnameinfo is
1023         available, use it instead of inet_ntoa to get the printable
1024         address.
1025         (add_host_to_list): Share declaration sections as much as
1026         possible.  Propagate errors back correctly from gethostbyname
1027         path.
1028
1029 2001-04-26  Ken Raeburn  <raeburn@mit.edu>
1030
1031         * hst_realm.c (T_TXT): Define if not defined by header files.
1032
1033         * locate_kdc.c (krb5int_locate_server): New function, replaces
1034         functionality of krb5_locate_srv_conf and _dns, including checking
1035         whether DNS lookup is desired.
1036         (krb5_locate_srv_conf, krb5_locate_srv_dns): Define only if macro
1037         TEST is defined.  Added another level of indirection in the
1038         address pointer argument.
1039         (krb5_locate_srv_dns_1, krb5_locate_srv_conf_1,
1040         translate_ai_error, get_port, struct addrlist, ADDRLIST_INIT,
1041         grow_list, free_list, add_sockaddr_to_list, add_addrinfo_to_list,
1042         set_port_num, add_host_to_list): New helper functions.
1043         (krb5_locate_kdc): Added another level of indirection in the
1044         address pointer argument.  Call krb5int_locate_server.
1045         (KPASSWD_PORTNAME): Deleted.
1046
1047         * os-proto.h (krb5_locate_kdc): Updated prototype.
1048
1049         * sendto_kdc.c (krb5_sendto_kdc): Updates for change in
1050         krb5_locate_kdc interface.
1051
1052         * changepw.c (krb5_locate_kpasswd): Call krb5int_locate_server.
1053         Add another level of indirection in address pointer.  Now gives
1054         preference to _kpasswd info from DNS over admin_server info in
1055         config file, if kpasswd_server is not set.
1056         (krb5_change_password): Use struct sockaddr_storage for all
1057         automatic address variables.  Ignore any non-IPv4 addresses
1058         returned from krb5_locate_kpasswd; return an error if all
1059         addresses are non-IPv4.  Update for new krb5_locate_kpasswd
1060         interface.
1061
1062         * accessor.c (krb5int_accessor): Set krb5_locate_server field.
1063
1064 2001-04-25  Ken Raeburn  <raeburn@mit.edu>
1065
1066         * localaddr.c (socklen_t, socklen): Deleted; definitions now in
1067         k5-int.h instead.
1068         (foreach_localaddr): Use SIOCGIFNUM if it's available and
1069         SIOCGSIZIFCONF is not (e.g., Solaris 7 and 8).
1070         (print_addr) [!HAVE_GETNAMEINFO]: Only declare variable buf if
1071         AF_INET6 is defined.
1072
1073 2001-03-31  Ken Raeburn  <raeburn@mit.edu>
1074
1075         * t_gifconf.c: New file.
1076
1077 2001-03-10  Ezra Peisach  <epeisach@mit.edu>
1078
1079         * def_realm.c: Move prototype for krb5_try_realm_txt_rr() to
1080         os-proto.h.
1081
1082         * init_os_ctx.c: Include os-proto.h
1083
1084         * changepw.c, locate_kdc.c: Do not shadow sin() with local
1085         variable name.
1086
1087         * os-proto.h: Add prototypes for krb5_try_realm_txt_rr() and the
1088         obsolete krb5_secure_config_files().
1089
1090 2001-03-05  Ken Raeburn  <raeburn@mit.edu>
1091
1092         * localaddr.c (krb5_os_localaddr): Don't look for -1 return value
1093         from foreach_localaddr.
1094         (print_addr): Only process AF_INET6 addresses if AF_INET6 is
1095         defined.
1096
1097         * gmt_mktime.c (gmt_mktime): Handle years earlier than 1970.
1098         (main) [TEST_LEAP]: New routine, driver for testing.
1099         * Makefile.in (t_mktime): New target.
1100
1101 2001-03-05  Sam Hartman  <hartmans@mit.edu>
1102
1103         * kuserok.c: Set max_username to 65 not 10.  65 should be enough
1104         for a null terminated string from most current Unixes usernames.
1105         The previous limit of 10 was too low.  I don't know how the
1106         previous limit was chosen nor why this is not a dynamic buffer.
1107
1108 2001-03-05  Tom Yu  <tlyu@mit.edu>
1109
1110         * init_os_ctx.c: Get sys/ioctl.h for Solaris to get FIONBIO.
1111
1112 2001-03-03  Ken Raeburn  <raeburn@mit.edu>
1113
1114         * init_os_ctx.c: If not Mac or Windows, define USE_RANDOM_DEVICE
1115         and include sys/ioctl.h.
1116         (krb5_os_init_context) [USE_RANDOM_DEVICE]: Read some bytes from
1117         /dev/urandom or /dev/random and use them to re-seed the PRNG.
1118
1119 2001-02-05  Tom Yu  <tlyu@mit.edu>
1120
1121         * prompter.c (krb5_prompter_posix): Fix up terminal modes if we're
1122         interrupted. [reported by Booker Bense]
1123
1124 2000-12-18  Ken Raeburn  <raeburn@mit.edu>
1125
1126         * Makefile.in (LCLINT, LCLINTOPTS): New variables.
1127         (lclint-localaddr): New target.
1128
1129         * localaddr.c (grow_or_free, get_ifconf, make_addr): Split out
1130         from foreach_localaddr and friends for simpler lclint analysis.
1131         (socklen): New function.
1132         (print_addr): Use getnameinfo if available.
1133         (struct localaddr_data, count_addrs, allocate, add_addr,
1134         make_addr): Define only if not testing.
1135         (foreach_addr): Call new functions.  Annotate for lclint.
1136
1137 2000-10-17  Ezra Peisach  <epeisach@mit.edu>
1138
1139         * changepw.c: Cast length argument to recvfrom/sendto to int.
1140
1141         * os-proto.h: Moved extern definition of krb5_max_dgram_size,
1142         krb5_max_skdc_timeout, krb5_skdc_timeout_shift,
1143         krb5_skdc_timeout_1 here.
1144
1145         * accessor.c: Definition for krb5_max_dgram_size,
1146         krb5_max_skdc_timeout, krb5_skdc_timeout_shift,
1147         krb5_skdc_timeout_1 moved to os-proto.h
1148
1149         * osconfig.c: Changed definition for krb5_max_dgram_size,
1150         krb5_max_skdc_timeout, krb5_skdc_timeout_shift,
1151         krb5_skdc_timeout_1 to unsigned int.
1152
1153         * get_krbhst.c, init_os_context.c, locate_kdc.c, prompter.c:
1154         Unsigned/signed int cleanup.
1155
1156         * read_pwd.c (krb5_read_password): Change size_return to unsigned
1157         int *.
1158
1159         * sendto_kdc.c: Remove definition for krb5_max_dgram_size,
1160         krb5_max_skdc_timeout, krb5_skdc_timeout_shift,
1161         krb5_skdc_timeout_1. (moved to os-proto.h). Cast arguments to int
1162         for send() and recv().
1163
1164 2000-10-09  Ken Raeburn  <raeburn@mit.edu>
1165
1166         Support for getifaddrs() interface added in BSD.
1167         * localaddr.c (printaddr, printifaddr) [HAVE_IFADDRS_H && DEBUG]:
1168         New functions for debugging new ifaddrs code.
1169         (addr_eq) [HAVE_IFADDRS_H]: New function, for comparing addresses
1170         found with getifaddrs.
1171         (foreach_localaddr) [HAVE_IFADDRS_H]: New implementation, relies
1172         on C library function to retrieve data.
1173         (foreach_localaddr) [!HAVE_IFADDRS_H && TEST]: Print info about
1174         each address and why it might not be used.
1175         (print_addr, main) [TEST]: Print out the local addresses.
1176         * Makefile.in (t_localaddr): New target.
1177
1178 2000-09-26  Ezra Peisach  <epeisach@mit.edu>
1179
1180         * an_to_ln.c: Unsigned vs signed int fixes.
1181
1182         * t_std_conf.c: Declare local functions static, do not shadow
1183         sin() with local variable.
1184
1185 2000-08-31  Jeffrey Altman <jaltman@columbia.edu>
1186
1187         * locate_kdc.c: krb5_locate_srv_dns() 
1188           Ensure that res_search() is called with a query string
1189           that is terminated by a '.' in order to disable the
1190           expansion of dns-search lists.
1191
1192 2000-07-22  Tom Yu  <tlyu@mit.edu>
1193
1194         * accessor.c: Add NEED_SOCKETS in order to get prototype for
1195         krb5_locate_kdc().
1196
1197 2000-07-19  Danilo Almeida  <dalmeida@mit.edu>
1198
1199         * accessor.c (krb5int_accessor): Add krb5int_accessor() to access
1200         internal krb5 functions from outside the library (so that we don't
1201         have to export them for the krb525 and gssapi libraries).  The
1202         goal is to make this function eventually do nothing.
1203
1204         * Makefile.in: Compile accessor.c.
1205
1206 2000-07-18  Ezra Peisach  <epeisach@mit.edu>
1207
1208         * locate_kdc.c, hst_realm.c, def_realm.c, changepw.c: Include
1209         os-proto.h for internal prototypes.
1210
1211         * os-proto.h: Prototypes for _krb5_use_dns_realm(),
1212         _krb5_use_dns_kdc(), _krb5_conf_boolean().
1213
1214         * t_std_conf.c: Include k5-int.h for internal function prototypes.
1215
1216 2000-06-30  Ezra Peisach  <epeisach@mit.edu>
1217
1218         * t_an_to_ln.c: Include <stdio.h> for prototypes.
1219
1220         * locate_kdc.c (krb5_locate_srv_dns): Remove unused variable.
1221
1222         * changepw.c, sendto_kdc.c, sn2princ.c: Add parentheses around
1223         assignment used as truth value.
1224
1225         * ccdefname.c (get_from_os): Cast return from getuid() to long and
1226         indicate use of format in sprintf.
1227
1228 2000-06-28  Ezra Peisach  <epeisach@mit.edu>
1229
1230         * def_realm.c: Add newline at end of file.
1231
1232         * gmt_mktime.c: Define days_in_month as type int.
1233
1234         * locate_kdc.c (krb5_locate_srv_dns): Cleanup unused variables.
1235
1236 2000-06-23  Miro Jurisic  <meeroh@mit.edu>
1237
1238         * init_os_ctx.c (os_get_default_config_files): Return ENOENT when
1239         file is not found on MacOS (not ENFILE).  Use Kerberos Preferences
1240         library to locate the config files on Mac OS.  Eliminated some
1241         dead code.
1242
1243 2000-06-23  Nalin Dahyabhai  <nalin@redhat.com>
1244
1245         * an_to_ln.c (do_replacement):  Don't overflow buffers "in" or "out".
1246         * hst_realm.c (krb5_try_realm_txt_rr):  Don't overfill "host" when
1247         malformed DNS responses are received.
1248
1249         * ccdefname.c (get_from_os): Don't overflow buffer "name_buf".
1250         * kuserok.c (krb5_kuserok): Don't overflow buffer "pbuf".
1251
1252 2000-06-23  Ken Raeburn  <raeburn@mit.edu>
1253
1254         * localaddr.c: Include stddef.h.
1255         (foreach_localaddr): Check each address against previously used
1256         addresses, and skip duplicates, in case multiple interfaces have
1257         the same address.  If called functions fail, drop out of loop and
1258         return nonzero.  Use SIOCGSIZIFCONF ioctl if available to get the
1259         buffer size needed for SIOCGIFCONF, and skip the silly heuristics
1260         if it returns a reasonable value.
1261         (krb5_os_localaddr): Increment count of addresses to include null
1262         pointer terminator.  Delete check for zero count.
1263
1264         * locate_kdc.c (maybe_use_dns): Renamed from _krb5_use_dns.  Now
1265         takes an arg to indicate a key to look up in krb5.conf, falling
1266         back to "dns_fallback", and an arg indicating the default value if
1267         no config file entries match.
1268         (_krb5_use_dns_realm): New routine; use "dns_lookup_realm" and
1269         KRB5_DNS_LOOKUP_REALM setting.
1270         (_krb5_use_dns_kdc): New routine; use "dns_lookup_kdc" and
1271         KRB5_DNS_LOOKUP_KDC.
1272         (krb5_locate_kdc): Call _krb5_use_dns_kdc.
1273         * changepw.c (krb5_locate_kpasswd): Call _krb5_use_dns_kdc.
1274         * def_realm.c (krb5_get_default_realm): Call _krb5_use_dns_realm.
1275         * hst_realm.c (krb5_get_host_realm): Call _krb5_use_dns_realm.
1276
1277 2000-06-23      Alexandra Ellwood <lxs@mit.edu>
1278
1279         * ccdefname.c: Added support to store a krb5_principal in the os_context 
1280         along with the default ccache name (if known, this principal is the same 
1281         as the last time we looked at the ccache.
1282
1283 2000-05-09      Alexandra Ellwood <lxs@mit.edu>
1284
1285         *localaddr.c: Fixed the local_addr_fallback_kludge so that it actually does something.
1286         Before that the error code it was handling was blowing it away in cleanup.
1287
1288 2000-04-29  Jeffrey Altman <jaltman@columbia.edu>
1289
1290         * hst_realm.c (krb5_get_host_realm)
1291           remove the searchlist and defaultrealm _kerberos queries
1292
1293 2000-04-18  Danilo Almeida  <dalmeida@mit.edu>
1294
1295         * prompter.c (krb5int_set_prompt_types): Set to actual value
1296         intead of 0.
1297
1298 2000-4-13       Alexandra Ellwood <lxs@mit.edu>
1299
1300         * init_os_ctx.c: Added support to store a krb5_principal in the os_context 
1301         along with the default ccache name (if known, this principal is the same 
1302         as the last time we looked at the ccache.
1303
1304 2000-03-20  Miro Jurisic  <meeroh@mit.edu>
1305
1306         * def_realm.c (krb5_free_default_realm): Added, use to free
1307         result of krb5_get_default_realm
1308
1309 2000-03-15  Danilo Almeida  <dalmeida@mit.edu>
1310
1311         * prompter.c: Add krb5int_set_prompt_types() and
1312         krb5_get_prompt_types().
1313
1314 2000-03-14  Ken Raeburn  <raeburn@mit.edu>
1315
1316         * init_os_ctx.c (os_get_default_config_files): Remove unused
1317         variable.
1318
1319         * def_realm.c: Include netinet/in.h if available.
1320
1321 2000-02-25  Ken Raeburn  <raeburn@mit.edu>
1322
1323         * localaddr.c (foreach_localaddr): Broken out from old
1324         krb5_os_localaddr.  Iterates over all active interface addresses,
1325         invoking callback functions; knows nothing about Kerberos.
1326         (count_addrs, allocate, add_addr): New callback functions.
1327         (krb5_os_localaddr): Use the above.
1328         (allocate): Make room for NULL value at the end.
1329
1330 2000-02-16  Ken Raeburn  <raeburn@mit.edu>
1331
1332         * localaddr.c (krb5_os_localaddr): Dynamically grow buffer used
1333         for SIOCGIFCONF until it appears to have been big enough.
1334         Dynamically grow internal address pointer array as needed.
1335
1336 2000-02-11  Marshall Vale  <mjv@mit.edu>
1337
1338         * init_os_ctx.c (os_get_default_config_files.c): Added new
1339         file name "Kerberos Preferences" to the of valid configuration
1340         file names on Mac OS. The others will be removed at a later 
1341         date.
1342
1343 2000-02-08  Marshall Vale  <mjv@mit.edu>
1344
1345         * init_os_ctx.c (os_get_default_config_files.c): Added
1346         Application Support folder to list of locations to look
1347         for krb5 configuration file. Only looks at top level which
1348         needs to be improved.
1349         (GetMacProfileFileSpec): Added a parameter to declare which
1350         folder constants to use for file spec creation. Previously it
1351         had assumed just the Preferences folder.
1352
1353 2000-02-07  Scott McGuire  <smcguire@mit.edu>
1354
1355     * changepw.c (krb5_locate_kpasswd): fixed memory trashing
1356        caused by incorrect pointer arithmetic when assigning
1357        DEFAULT_KPASSWD_PORT in DNS code also.
1358
1359 2000-02-04  Scott McGuire  <smcguire@mit.edu>
1360
1361     * changepw.c (krb5_locate_kpasswd): fixed memory trashing
1362        caused by incorrect pointer arithmetic when assigning
1363        DEFAULT_KPASSWD_PORT in non-DNS code.
1364    
1365 1999-12-03  Danilo Almeida  <dalmeida@mit.edu>
1366
1367         * changepw.c: Define ETIMEDOUT for Windows.
1368
1369 1999-12-01  Ken Raeburn  <raeburn@mit.edu>
1370
1371         * init_os_ctx.c (krb5_secure_config_files): Do define; always
1372         return an error, but perform old functionality in case the error
1373         is ignored.  Delete when we can make a major version number
1374         change.
1375
1376 1999-11-23  Ken Raeburn  <raeburn@mit.edu>
1377
1378         * an_to_ln.c (default_an_to_ln): Avoid stomping byte after
1379         supplied buffer.  Thanks to Matt Crawford.
1380
1381         * init_os_ctx.c (os_init_paths): Delete SECURE argument; read the
1382         value from the profile structure instead.
1383         (krb5_os_init_context, krb5_get_profile): Don't pass SECURE
1384         argument.
1385         (os_init_paths, krb5_get_profile): Cast first arg to
1386         profile_init.
1387         (krb5_secure_config_files): Don't define.
1388
1389 1999-11-22  Miro Jurisic  <meeroh@mit.edu>
1390
1391         * ccdefname.c (get_from_os): Replaced Kerberos5GlobalsLib calls
1392         with CCAPI v3 calls
1393
1394 1999-11-02  Ken Raeburn  <raeburn@mit.edu>
1395
1396         * localaddr.c (krb5_os_localaddr): Conditionalize INET6 support on
1397         new KRB5_USE_INET6 macro.
1398
1399 1999-10-26  Wilfredo Sanchez  <tritan@mit.edu>
1400
1401         * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
1402         LOCAL_INCLUDES such that one can override CFLAGS from the command
1403         line without losing CPP search patchs and defines. Some associated
1404         Makefile cleanup.
1405
1406 1999-10-22  Ken Raeburn  <raeburn@mit.edu>
1407
1408         * prompter.c (krb5_prompter_posix): Make ointrfunc, fd, and
1409         errcode volatile.
1410         * promptusr.c (krb5_os_get_tty_uio): Make ointrfunc and retval
1411         volatile.
1412         * read_pwd.c (krb5_read_password): Make ointrfunc volatile.  Fix
1413         volatile decl for readin_string (pointer is volatile, doesn't
1414         point to volatile).
1415
1416         * changepw.c (krb5_change_password): Wait only two minutes, not
1417         indefinitely, for a response from the kpasswd server.
1418
1419 1999-10-18  Ken Raeburn  <raeburn@mit.edu>
1420
1421         * localaddr.c (krb5_os_localaddr): Don't bother trying to create
1422         inet6 socket; any socket type will do.
1423
1424 1999-10-17  Ken Raeburn  <raeburn@mit.edu>
1425
1426         * localaddr.c (krb5_os_localaddr): Raise buffer size to 10K.
1427         Handle INET6 addresses.  If INET6 support is built in but the
1428         socket creation fails, fall back to INET.
1429
1430 1999-09-28  Ken Raeburn  <raeburn@mit.edu>
1431
1432         * changepw.c (krb5_locate_kpasswd): Declare local variable i even
1433         when DNS code is not in use.
1434         (krb5_locate_srv_conf, krb5_locate_srv_dns): Delete declarations.
1435
1436 1999-09-21  Ken Raeburn  <raeburn@mit.edu>
1437
1438         Changes from Jeffrey Altman to look up kpasswd server using DNS.
1439         * changepw.c: (krb5_locate_kpasswd): New function, split out from
1440         krb5_change_password.  Calls krb5_locate_srv_dns if use of DNS is
1441         desired, and krb5_locate_srv_conf to check config file.
1442         (krb5_change_password): Call it to find the server.
1443         * locate_kdc.c (krb5_locate_srv_conf): No longer static.  Choose
1444         default port numbers based on service name rather than a single
1445         hard-coded value.
1446         (krb5_locate_srv_dns): No longer static.
1447
1448 1999-09-17  Tom Yu  <tlyu@mit.edu>
1449
1450         * def_realm.c: Patch from jaltman@columbia.edu to allow compiling
1451         under non-Windows platforms with DNS lookup enabled.
1452
1453 1999-09-01  Danilo Almeida  <dalmeida@mit.edu>
1454
1455         * kuserok.c (krb5_kuserok): Fix improper negation in
1456         non-Unix localname check.  Also fix calling convention
1457         before this function is exported by the Windows DLL.
1458
1459         * localaddr.c (krb5_os_localaddr): Fix memset to clear
1460         right address list.  (Thanks to jaltman@columbia.edu).
1461
1462 1999-09-01  Ken Raeburn  <raeburn@mit.edu>
1463
1464         * get_krbhst.c (krb5_get_krbhst): Fix double-indirection
1465         confusion.  Do actually copy string contents to newly allocated
1466         storage.
1467
1468 1999-08-21  Danilo Almeida  <dalmeida@mit.edu>
1469
1470         * localaddr.c (krb5_os_localaddr): Use multiple addresses, if
1471         present, on Mac and Windows.
1472
1473 1999-08-10      Alexandra Ellwood       <lxs@mit.edu>
1474
1475         * changepw.c (krb5_change_password):
1476                 Reorganized code so that krb5_change_password actually frees
1477                 everything it allocated on error.  Also fixed some memory 
1478                 leaks which happened even without an error occurring.
1479
1480 1999-08-09  Danilo Almeida  <dalmeida@mit.edu>
1481
1482         * prompter.c (krb5_prompter_posix): Provide Win32 implementation
1483         so that kinit and such work under Win32.
1484
1485 1999-08-06  Danilo Almeida  <dalmeida@mit.edu>
1486
1487         * def_realm.c (krb5_get_default_realm): 
1488         * hst_realm.c (krb5_get_host_realm): Make sure we have FQDN
1489         in the case where we use gethostname.
1490
1491         * def_realm.c (krb5_get_default_realm): Check that we have
1492         a realm before trying to copy it (since profile_get_string
1493         may return no error but not get anything).
1494
1495         * init_os_ctx.c (krb5_get_profile): Fix calling convention.
1496
1497 1999-08-05  Danilo Almeida  <dalmeida@mit.edu>
1498
1499         * t_std_conf.c (test_get_krbhst): Use krb5_free_krbhst to
1500         free buffers allocated by krb5_get_krbhst.
1501
1502         * locate_kdc.c (_krb5_use_dns): Add _krb_use_dns to abstract
1503         away looking up of whether we use DNS or not in the profile.
1504
1505         * ktdefname.c (krb5_kt_default_name): Use profile_release_string
1506         instead of free to free string allocated by profile_get_string.
1507
1508         * get_krbhst.c (krb5_get_krbhst): Copy results from profile_get_values
1509         into malloc'ed buffers so we can safely free them later.  Also call
1510         profile_free_list on the original values.
1511
1512         * locate_kdc.c (krb5_locate_kdc): 
1513         * hst_realm.c (krb5_get_host_realm): 
1514         * def_realm.c (krb5_get_default_realm): Use _krb5_use_dns to figure
1515         out whether to use DNS or not instead of directly reading the 
1516         profile in this routine.
1517
1518         * realm_dom.c (krb5_get_realm_domain): 
1519         * hst_realm.c (krb5_get_host_realm): 
1520         * def_realm.c (krb5_get_default_realm): Copy results of 
1521         profile_get_string into malloc'ed buffer so it can safely be free'd
1522         later.
1523
1524         * locate_kdc.c (krb5_locate_srv_conf):
1525         * def_realm.c (krb5_get_default_realm): 
1526         * changepw.c (krb5_change_password): 
1527         * an_to_ln.c (krb5_aname_to_localname): Use profile_free_list
1528         to free values allocated by profile_get_values.
1529
1530 1999-08-04  Danilo Almeida  <dalmeida@mit.edu>
1531
1532         * init_os_ctx.c (os_init_paths): Wrap use of ctx->profile_in_memory
1533         with KRB5_DNS_LOOKUP.  Use pointer value to determine whether to free 
1534         files by checking the files value rather than depending on the 
1535         return value.
1536
1537 1999-07-27  Miro Jurisic  <meeroh@mit.edu>
1538
1539         * init_os_ctx.c (GetMacProfileFileSpec): removed bogus string conversion
1540
1541 1999-07-26  Miro Jurisic  <meeroh@mit.edu>
1542
1543         * c_ustime.c (krb5_crypto_us_timeofday): Merged in changes from the
1544         Mac_V2_0_derivatives branch -- microseconds support and guaranteed 
1545         monotonically increasing microseconds on MacOS
1546
1547         * init_os_ctx.c (os_get_default_config_files): Merged in changes from the
1548         Mac_V2_0_derivatives branch -- NRL config file name
1549
1550         * init_os_ctx.c (krb5_get_profile): added krb5_get_profile
1551
1552 1999-07-22 Jeffrey Altman <jaltman@columbia.edu>
1553
1554         * init_os_ctx.c (os_init_paths)
1555           If profile_init() is unable to open a profile and returns ENOENT,
1556           remember in the context that the profile_in_memory and then 
1557           call profile_init() with a NULL filespec.
1558
1559         * def_realm.c (krb5_get_default_realm)
1560         * hst_realm.c (krb5_get_host_realm)
1561         * locate_kdc.c (krb5_locate_kdc)
1562           Use the profile entry [libdefaults] dns_fallback to determine
1563           if DNS SRV and TXT records should be used to find realms and
1564           servers if they are not found in the profile.
1565    
1566
1567 1999-07-21  Ken Raeburn  <raeburn@mit.edu>
1568
1569         * init_os_ctx.c (os_get_default_config_files): Fix some typos and
1570         missed name changes in the patch Miro just checked in but forgot
1571         to mention here, in which Mac filespecs are used instead of
1572         filenames.
1573         (krb5_free_config_files): Ditto.
1574
1575 1999-06-30  Ken Raeburn  <raeburn@mit.edu>
1576
1577         * locate_kdc.c (krb5_locate_kdc): Kerberos admin service name is
1578         "kerberos-adm", not "kadmin", so look up "_kerberos-adm._tcp" in
1579         DNS.
1580
1581 1999-06-21  Ken Raeburn  <raeburn@mit.edu>
1582         and Jeffrey Altman and Ken Hornstein
1583
1584         * def_realm.c (MAXHOSTNAMELEN) [KRB5_DNS_LOOKUP]: Define if not
1585         already defined.
1586         (MAX_DNS_NAMELEN) [KRB5_DNS_LOOKUP]: New macro.
1587         (krb5_get_default_realm): Return an error if an empty realm name
1588         is found.
1589         (krb5_get_default_realm) [KRB5_DNS_LOOKUP]: Use
1590         krb5_try_realm_txt_rr to determine the realm of the local host or
1591         domain.
1592
1593         * hst_realm.c [KRB5_DNS_LOOKUP]: Pull in some extra header files
1594         for resolver functionality.
1595         (MAX_DNS_NAMELEN): New macro.
1596         (krb5_try_realm_txt_rr) [KRB5_DNS_LOOKUP]: New function; looks up
1597         a TXT record.
1598         (krb5_get_host_realm): Use MAX_DNS_NAMELEN for buffer size.
1599         (krb5_get_host_realm) [KRB5_DNS_LOOKUP]: Use DNS lookup if config
1600         file doesn't contain a match.
1601
1602         * locate_kdc.c [KRB5_DNS_LOOKUP]: Pull in some extra header files
1603         for resolver functionality.
1604         (MAXHOSTNAMELEN) [KRB5_DNS_LOOKUP]: Define if not already
1605         defined.
1606         (MAX_DNS_NAMELEN) [KRB5_DNS_LOOKUP]: New macro.
1607         (krb5_locate_srv_conf): Renamed from krb5_locate_kdc; now static;
1608         extra char* argument replaces fixed "kdc" in array of names to
1609         look up in profile.
1610         (krb5_locate_srv_dns) [KRB5_DNS_LOOKUP]: New function; looks up
1611         SRV records, and returns addresses sorted by priority.
1612         (krb5_locate_kdc): New function, calls above routines.
1613
1614 1999-06-16  Danilo Almeida  <dalmeida@mit.edu>
1615
1616         * ccdefname.c (get_from_registry_indirect, try_dir, get_from_os): 
1617                 Extra robustness to win32 code.
1618
1619         * init_os_ctx.c (krb5_get_config_files, krb5_free_config_files):
1620                 Add function to get config files being used for current 
1621                 context with corresponding free function.
1622
1623 1999-06-16  Danilo Almeida  <dalmeida@mit.edu>
1624
1625         * init_os_ctx.c (os_init_paths): Enhance win32 heuristics to use 
1626                 environment variable (like Unix) and to use the registry
1627                 too.  Will try executable's dir before windows dir if 
1628                 not secure.
1629
1630         * ccdefname.c (get_from_os): Enhance win32 heuristics to use 
1631                 registry properly, default to API: properly,
1632                 and to use temp dirs before the windows dir.
1633
1634 1999-06-11  Miro Jurisic  <meeroh@mit.edu>
1635
1636         * init_os_ctx.c (os_init_paths): added NRL config file name correctly
1637                 (thanks dalmeida)
1638
1639 1999-06-09  Miro Jurisic  <meeroh@mit.edu>
1640
1641         * c_ustime.c (krb5_crypto_us_timeofday): fixed Mac PPC #ifdef
1642
1643 1999-06-09  Miro Jurisic  <meeroh@mit.edu>
1644
1645         * c_ustime.c (krb5_crypto_us_timeofday): #ifdefed microseconds on Mac to be
1646                 PPC-only
1647
1648 1999-06-09  Miro Jurisic  <meeroh@mit.edu>
1649
1650         * c_ustime.c (AbsoluteToSecsNanosecs): Fixed the UInt64 division
1651         * c_ustime.c (krb5_crypto_us_timeofday): now returning the correct value
1652
1653 1999-06-09  Miro Jurisic  <meeroh@mit.edu>
1654
1655         * c_ustime.c (AbsoluteToSecsNanosecs): Fixed the UInt64 comparison
1656
1657 1999-06-09  Miro Jurisic  <meeroh@mit.edu>
1658
1659         * net_read.c, net_write.c: now setting errno on Mac too
1660         
1661 1999-06-09  Miro Jurisic  <meeroh@mit.edu>
1662
1663         * c_ustime.c (krb5_crypto_us_timeofday, HaveAccurateTime,
1664                 AbsoluteToSecsNanosecs): Added support for microseconds or
1665                 better timers on the Mac when available
1666
1667         * c_ustime.c (krb5_crypto_us_timeofday): fixed usecs counting bug
1668                 (From Chas Williams)
1669
1670         * init_os_ctx.c (GetMacProfilePathname): removed hardcoded config file name
1671                 (From Chas Williams)
1672         
1673         * init_os_ctx.c (os_init_paths): added NRL config file name
1674                 (From Chas Williams)
1675
1676 Tue Jun  8 15:26:21 1999  Alexandra Ellwood  <lxs@mit.edu>
1677
1678         * changepw.c: Changed errno to SOCKET_ERRNO/SOCKET_SET_ERRNO
1679             after socket operations to work with new Mac OT SocketsLib.
1680         
1681         * hst_realm.c: Changed errno to SOCKET_ERRNO/SOCKET_SET_ERRNO
1682             after socket operations to work with new Mac OT SocketsLib.
1683         
1684         * localaddr.c: Changed errno to SOCKET_ERRNO/SOCKET_SET_ERRNO
1685             after socket operations to work with new Mac OT SocketsLib.
1686         
1687         * net_read.c: Changed errno to SOCKET_ERRNO/SOCKET_SET_ERRNO
1688             after socket operations to work with new Mac OT SocketsLib.
1689         
1690         * net_write.c: Changed errno to SOCKET_ERRNO/SOCKET_SET_ERRNO
1691             after socket operations to work with new Mac OT SocketsLib.
1692         
1693         * sn2princ.c: Changed errno to SOCKET_ERRNO/SOCKET_SET_ERRNO
1694             after socket operations to work with new Mac OT SocketsLib.
1695
1696 Mon May 10 15:26:20 1999  Danilo Almeida  <dalmeida@mit.edu>
1697
1698         * Makefile.in: Do win32 build in subdir.
1699
1700 Fri May  7 18:04:48 1999  Danilo D Almeida  <dalmeida@mit.edu>
1701
1702         * locate_kdc.c (krb5_locate_kdc): Fixed typo.
1703
1704 Fri May  7 14:39:08 1999  Theodore Y. Ts'o  <tytso@mit.edu>
1705
1706         * locate_kdc.c (krb5_locate_kdc): Return KRB5_REALM_UNKNOWN if
1707                 profile_get_values returns PROF_NO_RELATION or
1708                 PROF_NO_SECTION.
1709
1710 1999-04-01  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1711
1712         * prompter.c (krb5_prompter_posix): Update to use new prompter
1713                 prototype which takes an extra argument for the window
1714                 titlebar name.  (From Frank Cusack) [krb5-kdc/662]
1715
1716 Thu Mar 25 18:45:48 1999  Tom Yu  <tlyu@mit.edu>
1717
1718         * promptusr.c (krb5_os_get_tty_uio): getchar() returns int, not
1719         char.
1720
1721 1999-03-12  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1722
1723         * init_os_ctx.c (krb5_os_init_context, krb5_os_free_context):
1724                 Sample the ccdefault name at the time when we create the
1725                 context.  Free the ccdefault name when we free the os
1726                 context.
1727
1728         * ccdefname.c (krb5_cc_default_name, krb5_cc_set_default_name):
1729                 Check to make sure the context is valid and return an
1730                 error if it isn't.
1731
1732 1999-03-11  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1733
1734         * ccdefname.c (get_from_os): Add missing call to get_from_registry
1735                 under windows.
1736
1737 Fri Feb 19 20:49:18 1999  Tom Yu  <tlyu@mit.edu>
1738
1739         * ccdefname.c (get_from_os): Add missing close-paren; also replace
1740         #elif just in case.
1741
1742 Fri Feb  5 01:05:43 1999  Theodore Y. Ts'o  <tytso@mit.edu>
1743
1744         * ccdefname.c (get_from_os): On the Windows platform,
1745                 automatically generate the correct default cache name
1746                 based on what krb5_cc_dfl_ops is set to.
1747
1748         * realm_dom.c (krb5_get_realm_domain): Add modifiers so that this
1749                 function can get exported in a Windows DLL.
1750
1751 Tue Feb  2 16:01:58 1999  Tom Yu  <tlyu@mit.edu>
1752
1753         * read_pwd.c: Remove reference to CPP symbol "unix".
1754
1755 1999-01-29  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1756
1757         * ccdefname.c: Add a new function krb5_cc_set_default_name(),
1758                 which is used set the default ccname stored in the
1759                 krb5_context.  All of the OS-specific functions to
1760                 determine the default ccname is moved to this function.
1761                 The krb5_cc_default_name() function now just reads the
1762                 default ccname from the os_context, and will call
1763                 krb5_cc_set_default_name() to set the default ccname if
1764                 necessary.
1765
1766         * t_std_conf: Added functions to test krb5_cc_default_name and
1767                 krb5_cc_set_default_name().  Fixed the call to
1768                 krb5_locate_kdc to support the new variables added by
1769                 the Cygnus initial ticket API merge.
1770
1771 1999-01-27  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1772
1773         * localaddr.c: On the macintosh, check to see if getmyipaddr
1774                 returns NULL, and return an error in that case.
1775
1776 Tue Jan  5 00:11:49 1999  Theodore Y. Ts'o  <tytso@mit.edu>
1777
1778         * sn2princ.c (krb5_sname_to_principal): Windows NT5's broken
1779                  resolver gratuitously tacks on a trailing period to the
1780                  hostname (at least it does in Beta2).  Deal with this
1781                  brain-damage.
1782
1783 Tue Dec 22 01:22:24 1998  Theodore Y. Ts'o  <tytso@mit.edu>
1784
1785         * changepw.c: Add a test for _WIN16 as well as _WIN32 for sockets
1786                 workaround (in case we do want to build the 16 bit library
1787                 again someday)
1788
1789 Sat Dec  5 01:12:25 1998  Theodore Y. Ts'o  <tytso@mit.edu>
1790
1791         * localaddr.c: Added missing KRB5_DLLIMP and KRB5_CALLCONF macros
1792                 from the function definition.
1793
1794 1998-12-04  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1795
1796         * realm_iter.c: New function which iterators over the realms in
1797                 the krb5.conf file.
1798
1799 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1800
1801         * Makefile.in: Set the myfulldir and mydir variables (which are
1802                 relative to buildtop and thisconfigdir, respectively.)
1803
1804         * lock_file.c (krb5_lock_file): Fix bug where if the fcntl-style
1805                 lock succeeded, we should return immediately instead of
1806                 trying to do flock-style locking.  Also check for
1807                 HAVE_FCNTL_H and defined(F_SETLKW) and
1808                 defined(F_RDLCK) instead of POSIX_FILE_LOCKS (so we
1809                 can get rid of a non-standard autoconf symbol.)
1810
1811 1998-10-31  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1812
1813         * lock_file.c (krb5_lock_file): Move the flock() fallback code
1814                 from fcc_maybe.c into krb5_lock_file().  This works around
1815                 the bug that certain lossy operating systems (mainly from
1816                 our good friends at SunSoft) do not support
1817                 POSIX_FILE_LOCKS on all filesystems (namely tmpfs) but do
1818                 support flock on those filesystems.
1819
1820 1998-10-27  Marc Horowitz  <marc@mit.edu>
1821
1822         * c_ustime.c, localaddr.c: moved here from lib/crypto
1823
1824         * ktdefname.c (krb5_kt_default_name): there is code in the tree
1825         (notably, the admin server code) which uses globals to set the
1826         keytab which will be used by gssapi.  this is gross, and we need a
1827         better answer.  However, even that didn't work if there was an env
1828         var or krb5.conf variable, since those override krb5_defkeyname.
1829         Add a new global, krb5_overridekeyname, which really does override
1830         all the other keytab locators.  While I'm at it, make the buffer
1831         overflow checks sane.
1832
1833 Fri Sep 25 22:32:16 1998  Theodore Y. Ts'o  <tytso@mit.edu>
1834
1835         * ccdefname.c: We shouldn't try to use the CCache API on Unix
1836                 systems.  (The maze of #ifdef's was confusing.)
1837
1838 Tue Sep  1 15:44:11 1998  Theodore Y. Ts'o  <tytso@mit.edu>
1839
1840         * ccdefname.c (krb5_cc_default_name): Changed the PC version to
1841                 use the CCache API by default.  Removed the old Macintosh
1842                 code that had been commented out.  (If we need to
1843                 ressurect it, we'll get it from CVS.)
1844
1845 Fri Aug 21 17:37:00 1998  Miro Jurisic  <meeroh@mit.edu>
1846
1847         * ccdefname.c.c (krb5_cc_default_name): Changed the Mac
1848                         version to use CCache API by default.
1849
1850 Thu Jul 16 09:59:34 1998  Ezra Peisach  <epeisach@mit.edu>
1851
1852         * changepw.c (krb5_change_password): Changes casts from char * to
1853                 krb5_octet * to match krb5_address structure elements.
1854
1855 Wed Jul  1 17:54:56 1998  Theodore Y. Ts'o  <tytso@mit.edu>
1856
1857         * macsock.c(inet_ntoa): Fix obvious bug where we were returning a
1858                 pointer to an automatic variable which should have been a
1859                 static.  Fortunately nothing in the Mac tree was using
1860                 inet_ntoa()....
1861
1862 1998-05-06  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1863
1864         * t_std_conf.c (main): POSIX states that getopt returns -1
1865                 when it is done parsing options, not EOF.
1866
1867 Wed Sep 24 12:10:29 1997 Marshall Vale <mjv@mit.edu> (Checked in 1/13/98)
1868
1869         * init_os_ctx.c: Changed all PBGetCatInfo to PBGetCatInfoSync for new
1870                 Universal Headers.
1871                 
1872         * ccdefname.c: Changed all PBGetCatInfo to PBGetCatInfoSync for new
1873                 Universal Headers.
1874
1875 Fri Feb 27 18:03:33 1998  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1876
1877         * Makefile.in: Changed thisconfigdir to point at the lib/krb5
1878                 directory, since we've moved the configure.in tests in
1879                 this directory to the toplevel lib/krb5 configure.in
1880
1881 Wed Feb 18 16:24:39 1998  Tom Yu  <tlyu@mit.edu>
1882
1883         * Makefile.in: Remove trailing slash from thisconfigdir.  Fix up
1884         BUILDTOP for new conventions.
1885
1886 Mon Feb  2 17:02:19 1998  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1887
1888         * Makefile.in: Define BUILDTOP and thisconfigdir in the Makefile
1889
1890 Fri Jan 30 15:56:15 1998  Tom Yu  <tlyu@mit.edu>
1891
1892         * changepw.c (krb5_change_password): KRB5_USE_INET ->
1893         HAVE_NETINET_IN_H.
1894
1895 Fri Jan  2 21:28:56 1998  Tom Yu  <tlyu@mit.edu>
1896
1897         * locate_kdc.c (krb5_locate_kdc): Check return of
1898         malloc. [krb5-libs/518]
1899
1900         * changepw.c (krb5_change_password): Check return of
1901         malloc. [krb5-libs/518]
1902
1903 Tue Dec 16 11:00:18 1997  Ezra Peisach  <epeisach@mit.edu>
1904
1905         * locate_kdc.c (krb5_locate_kdc): Free hostlist array elements
1906                 when finished with them.
1907
1908 Sat Dec  6 23:12:23 1997  Ezra Peisach  <epeisach@mit.edu>
1909
1910         * locate_kdc.c (krb5_locate_kdc): Get rid of extra krb5_xfree
1911         which caused freeing of memory twice.
1912
1913 Sat Dec  6 02:34:50 1997  Tom Yu  <tlyu@mit.edu>
1914
1915         * Makefile.in: Add changepw.c, prompter.c.
1916
1917         * changepw.c: New file; Cygnus password changing protocol.
1918
1919         * locate_kdc.c: Add parameter to indicate master KDC.
1920
1921         * os-proto.h: Reflect changes to locate_kdc.
1922
1923         * prompter.c: New file; Cygnus initial creds.
1924
1925         * sendto_kdc.c: Add parameter to indicate master KDC.
1926
1927 Mon Oct  6 11:40:11 1997  Ezra Peisach  <epeisach@kangaroo.mit.edu>
1928
1929         * t_std_conf.c (main): Call krb5_free_context when done.
1930
1931 Wed Oct  1 04:58:34 1997  Tom Yu  <tlyu@mit.edu>
1932
1933         * configure.in: Punt some things that are otherwise gotten from
1934         include/krb5/configure.in.
1935
1936         * gmt_mktime.c: Get k5-int.h to get some autoconf symbols.
1937
1938 Tue Sep 30 19:57:27 1997  Tom Yu  <tlyu@mit.edu>
1939
1940         * timeofday.c: Replaace erroneously named POSIX_TYPES and timetype
1941         with plain old time_t, since we're using AC_CHECK_TYPE now to
1942         handle it.
1943
1944 Thu Sep 25 21:24:54 1997  Tom Yu  <tlyu@mit.edu>
1945
1946         * mk_faddr.c: Replace KRB5_USE_INET with something more sane.
1947
1948         * port2ip.c: Replace KRB5_USE_INET with something more sane.
1949
1950         * os-proto.h: Replace KRB5_USE_INET with something more sane.
1951
1952         * locate_kdc.c: Replace KRB5_USE_INET with something more sane.
1953
1954         * genaddrs.c (krb5_auth_con_genaddrs): Replace KRB5_USE_INET with
1955         something more sane.
1956
1957         * gen_port.c (krb5_gen_portaddr): Replace KRB5_USE_INET with
1958         something more sane.
1959
1960         * full_ipadr.c: Replace KRB5_USE_INET with something more sane.
1961
1962 Thu Sep 18 17:56:00 1997  Tom Yu  <tlyu@mit.edu>
1963
1964         * hst_realm.c: Replace USE_STRING_H with something more sane.
1965
1966 Mon Sep 15 15:21:12 1997  Ezra Peisach  <epeisach@mit.edu>
1967
1968         * ccdefname.c (krb5_cc_default_name): Returns a const char *.
1969
1970 Sat Aug 16 10:11:20 1997  Ezra Peisach  <epeisach@kangaroo.mit.edu>
1971
1972         * gmt_mktime.c (days_in_month): Now const.
1973           Originally by raeburn@cygnus.com from the Kerbnet release
1974
1975 Tue Feb 25 00:29:33 1997  Richard Basch  <basch@lehman.com>
1976
1977         * read_pwd.c: Define Windows interface for krb5_read_password
1978         * win-pwd.rc: Resource file for Windows password dialog box
1979         * win-pwd.h: Support definitions for Windows krb5_read_password
1980
1981 Sat Feb 22 22:41:02 1997  Richard Basch  <basch@lehman.com>
1982
1983         * Makefile.in: Use some of the new library list build rules in
1984                 win-post.in
1985
1986 Fri Feb 21 20:06:55 1997  Ezra Peisach  <epeisach@mit.edu>
1987
1988         * def_realm.c: Remove extern declaration of un-used krb5_config_file.
1989
1990 Fri Feb  7 11:11:18 1997  Richard Basch  <basch@lehman.com>
1991
1992         * mk_faddr.c (krb5_make_fulladdr): Add FAR declarations (win16)
1993
1994 Thu Nov 21 11:55:16 EST 1996    Richard Basch   <basch@lehman.com>
1995
1996         * Makefile.in: win32 build
1997
1998         * ccdefname.c, def_realm.c, free_hstrl.c, genaddrs.c, hst_realm.c,
1999         init_os_ctx.c, ktdefname.c, localaddr.c, sn2princ.c, timeofday.c,
2000         ustime.c
2001                 DLL export several more common functions (see lib/krb5.def
2002                 for the full list of functions exported)
2003
2004 Thu Feb  6 15:46:24 1997  Tom Yu  <tlyu@mit.edu>
2005
2006         * Makefile.in:
2007         * configure.in: Update to new program build procedure.
2008
2009 Thu Jan  2 17:19:11 1997  Tom Yu  <tlyu@mit.edu>
2010
2011         * configure.in: Update to new library build procedure.
2012
2013 Wed Nov 13 02:53:31 1996  Tom Yu  <tlyu@mit.edu>
2014
2015         * osconfig.c: Add warning re: global variables.
2016
2017         * ktdefname.c, osconfig.c: Revert previous kt_default_name
2018         changes.
2019
2020         * ktdefname.c (krb5_kt_default_name): Fix a few memory-leak type
2021         problems in previous changes.
2022
2023 Tue Nov 12 22:07:55 1996  Tom Yu  <tlyu@mit.edu>
2024
2025         * osconfig.c: Remove krb5_defkeyname to catch other things that
2026         may break.
2027
2028         * ktdefname.c (krb5_kt_default_name): Change logic to no longer
2029         use a global variable; also add krb5_kt_set_default_name() to
2030         allow for the changing of the default keytab name in the context.
2031
2032 Wed Nov  6 16:24:56 1996  Theodore Y. Ts'o  <tytso@mit.edu>
2033
2034         * init_os_ctx.c (os_init_paths): Don't ignore errors found from
2035                 parsing the config file.  Currently, we return an error if
2036                 the profile isn't found.  In the future we can maybe do
2037                 something better with intelligent defaulting if krb5.conf
2038                 doesn't exist, but we don't have this today.
2039
2040 Thu Aug 22 15:19:47 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
2041
2042         * an_to_ln.c (db_an_to_ln): Remove references to dead BERK_DB_DBM
2043                 code.
2044
2045 Tue Jul 30 19:15:55 1996  Sam Hartman  <hartmans@tertius.mit.edu>
2046
2047         * Makefile.in (check-unix): Comment out an_2_ln tests that use
2048         database.
2049
2050         * an_to_ln.c (krb5_aname_to_localname): Make the db lookup verison
2051         of aname_2_localname optional.
2052
2053 Sun Jul 28 22:39:12 1996  Tom Yu  <tlyu@mit.edu>
2054
2055         * an_to_ln.c (aname_do_match): #elif HAVE_REGEXP_H should have
2056                 been HAVE_REGEXPR_H
2057
2058 Fri Jul 26 15:58:32 1996  Marc Horowitz  <marc@mit.edu>
2059
2060         * configure.in, an_to_ln.c (do_replacement, aname_do_match): use
2061         the compile() function in -lgen on solaris.  Check for the
2062         relevant stuff at configure-time
2063
2064 Fri Jul 12 21:38:15 1996  Marc Horowitz  <marc@mit.edu>
2065
2066         * ktdefname.c (krb5_kt_default_name): allow the default keytab name
2067         to be specified in the config file.
2068
2069 Wed Jun 12 01:12:32 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
2070
2071         * net_read.c (krb5_net_read):
2072         * net_write.c (krb5_net_write): In case of an error, on Windows
2073                 machines, set errno from SOCKET_ERRNO, since the interface
2074                 assumes the error is passed back the errno global
2075                 varaible.  This really needs to be fixed sometime...
2076
2077         * read_msg.c: If ECONNABORTED is not defined, try using the
2078                 Winsock version of the error code (WSAECONNABORTED).
2079
2080 Mon Jun 10 21:48:45 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
2081
2082         * read_pwd.c:
2083         * promptusr.c:
2084         * lock_file.c:
2085         * kuserok.c:
2086         * ktdefname.c (krb5_kt_default_name): 
2087         * init_os_ctx.c (os_init_paths): 
2088         * ccdefname.c: 
2089         * an_to_ln.c (db_an_to_ln): Change _WINDOWS to _MSDOS, and add
2090                 check for _WIN32.
2091
2092 Thu Apr 18 16:24:44 1996  Theodore Y. Ts'o  <tytso@mit.edu>
2093
2094         * macsock.c (getsockname, getpeername): Correctly implement
2095                 getsockname(), so it does getsockname(), not
2096                 getpeername(), and add the function getpeername().
2097
2098 Sat May 11 10:08:15 1996  Ezra Peisach  <epeisach@kangaroo.mit.edu>
2099
2100         * configure.in: Need to include sys/types.h before regexp.h in
2101                 test to see if regcomp works.
2102                 Add V5_USE_SHARED_LIB for the tests that are built.
2103
2104 Tue Apr 30 17:51:47 1996  Ken Raeburn  <raeburn@cygnus.com>
2105
2106         * configure.in: Test that regcomp actually works.
2107
2108         * Makefile.in (check-unix): Use $(RM).
2109
2110         * t_an_to_ln.c (main): Print principal name when an error is
2111         detected.
2112
2113 Thu Apr 11 22:15:44 1996  Theodore Y. Ts'o  <tytso@dcl>
2114
2115         * ustime.c (krb5_us_timeofday): When doing the time offset
2116                 adjustments, make sure the microseconds field doesn't go
2117                 negative.
2118
2119 Thu Mar 28 17:20:12 1996  Theodore Y. Ts'o  <tytso@dcl>
2120
2121         * DNR.c: Replace eight-year-old version of this file with the
2122                 latest version from the Code Warrior MacTCP files.  
2123
2124         * macsock.c: Use new MacTCP header files.
2125
2126 Wed Mar 27 18:31:44 1996  Theodore Y. Ts'o  <tytso@dcl>
2127
2128         * macsock.c (gethostbyname, gethostbyaddr): Use universal
2129                 procedure pointers (UPP), which are required on the Mac
2130                 Power PC.
2131
2132 Mon Mar 18 21:49:39 1996  Ezra Peisach  <epeisach@kangaroo.mit.edu>
2133
2134         * configure.in: Add KRB5_RUN_FLAGS
2135
2136         * Makefile.in: Use runtime flags.
2137
2138 Mon Mar 18 17:30:54 1996  Ezra Peisach  <epeisach@kangaroo.mit.edu>
2139
2140         * sn2princ.c (krb5_sname_to_principal): Add casting to avoid warnings.
2141
2142 Mon Mar 18 14:18:58 EST 1996  Richard Basch  <basch@lehman.com>
2143
2144         * sn2princ.c: Do not try to re-assign const variables.
2145
2146 Sun Mar 17 20:42:17 1996  Ezra Peisach  <epeisach@mit.edu>
2147
2148         * configure.in: Add USE_ANAME, KRB5_LIBRARIES
2149
2150         * Makefile.in: Properly use libraries as specified by configure
2151
2152 Wed Mar 13 13:11:49 1996  Ezra Peisach  <epeisach@kangaroo.mit.edu>
2153
2154         * t_std_conf.c: Include string.h
2155
2156 Thu Feb 29 16:14:46 1996  Theodore Y. Ts'o  <tytso@dcl>
2157
2158         * sendto_kdc.c (krb5_sendto_kdc): Take out calls to
2159                 SOCKET_INITIALIZE and SOCKET_CLEANUP.  This gets done in
2160                 win_glue.c, and we only need to do this once.  (XXX What
2161                 about Macintosh?)
2162
2163 Tue Feb 27 18:48:03 1996  Theodore Y. Ts'o  <tytso@dcl>
2164
2165         * hostaddr.c (krb5_os_hostaddr): Use #define NEED_SOCKETS instead
2166                 of #including <netdb.h>  (this breaks under windows).
2167
2168 Mon Feb 26 17:04:26 1996  Theodore Y. Ts'o  <tytso@dcl>
2169
2170         * promptusr.c: Don't compile promptusr for Windows or Macintosh.
2171
2172 Sat Feb 24 18:57:56 1996  Theodore Y. Ts'o  <tytso@dcl>
2173
2174         * ktdefname.c (krb5_kt_default_name): Under Windows, assume that
2175                 the keytab file is located in the Windows directory.
2176
2177 Thu Feb 22 13:16:16 1996  Ezra Peisach  <epeisach@kangaroo.mit.edu>
2178
2179         * Makefile.in (check-unix): Set LD_LIBRARY_PATH for kdb5_anadd.
2180
2181         * hostaddr.c (krb5_os_hostaddr): Set magic number in structure.
2182
2183         * full_ipadr.c (krb5_make_full_ipaddr): Set magic number in structure.
2184
2185 Sat Feb 17 00:05:38 1996  Theodore Y. Ts'o  <tytso@pao.MIT.EDU>
2186
2187         * def_realm.c (krb5_get_default_realm): If the configuration file
2188                 does not exist (context->profile == NULL) return
2189                 KRB5_CONFIG_CANTOPEN; if the default realm is not defined
2190                 in the configuration file, return an error message saying
2191                 so.   These changes just make the diagnostic error
2192                 messages more clear.
2193
2194 Thu Jan 11 18:32:54 1996  Ezra Peisach  (epeisach@paris)
2195
2196         * Makefile.in (check-unix): Ultrix test does not support -x.
2197
2198 Fri Jan  5 09:00:47 1996  Ezra Peisach  <epeisach@kangaroo.mit.edu>
2199
2200         * locate_kdc.c (krb5_locate_kdc): Add parrentheses for assignment
2201                 in conditional. (gcc -Wall)
2202
2203         * init_os_ctx.c (krb5_os_init_context): Remove unused variables
2204
2205         * an_to_ln.c (aname_do_match): Initialize local variable before
2206                 referenced. 
2207
2208 Thu Jan  4 22:23:04 1996  Theodore Y. Ts'o  <tytso@dcl>
2209
2210         * hostaddr.c (krb5_os_hostaddr): New function which takes a
2211                 hostname and returns a list of krb5 addresses.  (This is
2212                 basically a glue routine that converts the result of
2213                 gethostbyname() to krb5 addresses.)
2214
2215 Thu Dec 21 17:51:58 1995  Theodore Y. Ts'o  <tytso@dcl>
2216
2217         * Makefile.in (t_an_to_ln): Use $(LD) instead of $(CC) to link
2218                 final executables, so that we can more easily use purify.
2219
2220         * hst_realm.c (krb5_get_host_realm): Eliminate memory leak; realm
2221                 was already being allocated by the profile library; no
2222                 reason to reallocate it again.
2223
2224 Wed Nov 15 10:53:16 1995    <tytso@rsts-11.mit.edu>
2225
2226         * promptusr.c: New function for doing generic tty input and output.
2227                 Eventually read_password should use this function.
2228
2229 Wed Nov 15 20:40:03 1995  Mark Eichin  <eichin@cygnus.com>
2230
2231         * lock_file.c (krb5_lock_file): initialize lock_arg to a copy of a
2232         static (thus zero) struct flock, to avoid panic'ing sunos 4.1.4.
2233
2234 Sun Nov 12 05:31:21 1995  Mark W. Eichin  <eichin@cygnus.com>
2235
2236         * def_realm.c (krb5_get_default_realm): check for PROF_NO_PROFILE
2237         and return KRB5_CONFIG_CANTOPEN instead of BADFORMAT so that the
2238         user in the end knows what is going on.
2239
2240 Mon Oct  9 19:05:24 1995  Ezra Peisach  <epeisach@kangaroo.mit.edu>
2241
2242         * ktdefname.c (krb5_kt_default_name): If profile_secure flag is
2243                 set in the context then do not allow changing the location
2244                 of the default keytab with an environment variable.
2245
2246 Fri Oct  6 22:04:57 1995  Theodore Y. Ts'o  <tytso@dcl>
2247
2248         * Makefile.in: Remove ##DOS!include of config/windows.in.
2249                 config/windows.in is now included by wconfig.
2250
2251 Thu Oct  5 07:49:26 1995  Ezra Peisach  <epeisach@kangaroo.mit.edu>
2252
2253         * init_os_ctx.c (krb5_secure_config_files): New function that 
2254                 will set flag and path to prevent user from overriding
2255                 configuration files with environment variables.
2256
2257 Mon Oct  2 17:36:38 1995  Ezra Peisach  <epeisach@kangaroo.mit.edu>
2258
2259         * init_os_ctx.c (krb5_os_init_context): Put back in the
2260                 KRB5_CONFIG environment before setting to default.
2261
2262 Tue Sep 26 22:46:01 1995  Mark Eichin  <eichin@cygnus.com>
2263
2264         * init_os_ctx.c (krb5_os_init_context): use profile_init_path for
2265         unix, and DEFAULT_PROFILE_PATH.
2266
2267 Fri Sep 29 16:31:47 1995  Theodore Y. Ts'o  <tytso@dcl>
2268
2269         * osconfig.c: Remove krb5_lname_file; it's not used any more.
2270
2271 Mon Sep 25 16:58:17 1995  Theodore Y. Ts'o  <tytso@dcl>
2272
2273         * Makefile.in: Removed "foo:: foo-$(WHAT)" lines from the
2274                 Makefile. 
2275
2276 Fri Sep 22 15:57:33 1995  Mark Eichin  <eichin@cygnus.com>
2277
2278         * write_msg.c (krb5_write_message): check the real length
2279         variable, not the net version.
2280
2281 Wed Sep 20 12:00:00 1995  James Mattly  <mattly@fusion.com>
2282
2283         * macsock.c:  Added TCP streams to the emulation package.  gethostname
2284                 now no longer returns true cannonical hostnames.
2285
2286 Wed Sep 13 11:01:18 1995 Keith Vetter (keithv@fusion.com)
2287
2288         * Makefile.in: had to define away DBFLAGS for the PC.
2289
2290 Mon Sep 11 17:46:18 1995  Ezra Peisach  <epeisach@kangaroo.mit.edu>
2291
2292         * genaddrs.c (krb5_auth_con_genaddrs): Replace function
2293                 declaration back to int instead of SOCKET due to prototype
2294                 mismatching. 
2295
2296 Sun Sep 10 12:00:00 1995  James Mattly  <mattly@fusion.com>
2297
2298         * ustime.c: use the version of getTimeZoneOffset in :os:crypto: for
2299                 _MACINTOSH.
2300
2301 Wed Sep  6 12:00:00 1995  James Mattly  <mattly@fusion.com>
2302
2303         * localaddr.c changed name to oslocaladdr.c for metrowerks project
2304                 file management.
2305
2306         * ustime.c:  changed mac version of krb5_crypto_us_timeofday to compile
2307                 with contemporary header files for metrowerks
2308
2309         * macsock.c:  added tcp stream support to suppliment the udp.  Added
2310                 getsockname.  Fixed gethostname to stop appending '.' to the
2311                 end of a connonical hostname.
2312
2313         * net_write.c:  need to cast file descriptors to SOCKETs
2314
2315         * net_read.c:  need to cast file descriptors to SOCKETs
2316
2317         * krbfileio.c:  mac doesn't support fsync, define the usage out
2318
2319         * init_os_cxt.c:  move the default location of the krb conf file to
2320                 the preferences folder.  Added some routines to take a 
2321                 mac FSSpec and turn it into a mac pathname string.
2322
2323         * hst_realm.c:  assign a NULL to retrealms to clean up a warning.
2324
2325         * genaddrs.c:  support getsockname from macsock
2326
2327         * ccdefname.c:  move the cred cache to the preferneces folder for mac
2328
2329         * an_to_ln.c:  turn functions off because I don't have a dbm library
2330
2331         * timeofday.c:  make krb5_timeofday use krb5_crypto_us_timeofday to 
2332                 incorperate the epoch difference between mac and unix.
2333
2334 Fri Sep  1 00:47:27 1995  Theodore Y. Ts'o  <tytso@dcl>
2335
2336         * Makefile.in (check-unix): Add a test case to make sure
2337                 krb5_get_host_realm does something sane when passed in a
2338                 hostname which doesn't have a default domain.
2339
2340         * hst_realm.c (krb5_get_host_realm): If an hostname does not have
2341                 a domain, don't try to get a domain default (which
2342                 results in a strange error being returned).
2343
2344         * toffset.c: Added new file which implements the abstract
2345                 interfaces for manipulating the time offset fields in the
2346                 os context.
2347
2348         * ustime.c (krb5_us_timeofday): Add support for using the time
2349                 offset fields in the os context.
2350
2351         * timeofday.c (krb5_timeofday): Add support for using the time
2352                 offset fields in the os context.
2353
2354         * init_os_ctx.c (krb5_os_init_context): Initialize the time offset
2355                 and flags fields in the os context.
2356
2357 Thu Aug 31 17:24:48 EDT 1995    Paul Park       (pjpark@mit.edu)
2358
2359         * t_an_to_ln.c - Translate until error and return status.
2360         * Makefile.in - Test aname_to_lname under check-unix.
2361
2362 Thu Aug 24 18:56:35 1995  Theodore Y. Ts'o  <tytso@dcl>
2363
2364         * .Sanitize: Update file list.
2365
2366 Wed Aug 16 02:45:19 1995  Chris Provenzano <proven@mit.edu>
2367
2368         * lock_file.c (krb5_lock_file()), unlck_file.c (krb5_unlock_file()):
2369                 Pass the fd in instead of converting it from FILE *.
2370
2371 Fri Aug  4 22:51:15 1995  Tom Yu  <tlyu@dragons-lair.MIT.EDU>
2372
2373         * kuserok.c (krb5_kuserok): Add parens to shut up gcc -Wall
2374
2375         * genaddrs.c (krb5_auth_con_genaddrs): Add parens to shut up gcc
2376                 -Wall
2377
2378         * an_to_ln.c: Include ctype.h to get some prototypes; also add
2379                 parens to shut up gcc -Wall
2380
2381 Fri Jul 28 23:28:11 1995  Sam Hartman  <hartmans@tertius.mit.edu>
2382
2383         * sn2princ.c (krb5_sname_to_principal): GDon't use default realm
2384         just because we are on local machine. Instead, go through normal
2385         translations.
2386
2387 Fri Jul 7 16:32:41 EDT 1995     Paul Park       (pjpark@mit.edu)
2388         * Makefile.in - Find com_err in TOPLIBD.
2389
2390 Thu Jul  6 17:26:03 1995  Tom Yu  <tlyu@lothlorien.MIT.EDU>
2391
2392         * localaddr.c: moved to lib/crypto/os; just a stub here.
2393
2394         * ustime.c: moved to lib/crypto/os; just a stub here.
2395
2396 Thu Jul  6 09:56:56 1995  Ezra Peisach  <epeisach@kangaroo.mit.edu>
2397
2398         * Makefile.in (clean): Remove t_an_to_ln.o
2399
2400 Wed July  5 15:52:31 1995  James Mattly  <mattly@fusion.com>
2401         * an_to_ln.c added _MACINTOSH conditions
2402         * genaddrs.c added HAS_MACSOCK_H conditions
2403         * krbfileio.c added THREEPARAMOPEN
2404         * kuserok.c added THREEPARAMOPEN
2405         * macsock.c added stub for gethostnameA
2406         * mk_faddr.c added HAS_MACSOCK_H conditions
2407         * read_pwd.c added _MACINTOSH condition
2408         * sys_log.c added _MACINTOSH condition
2409
2410 Fri Jun 30 14:44:17 EDT 1995    Paul Park       (pjpark@mit.edu)
2411         * an_to_ln.c - Add profile logic to aname_to_lname.  We can now
2412                 specify databases, rules and explicit mappings to convert
2413                 between auth name and local name.
2414         * t_an_to_ln.c - Rudimentary test procedure.  Needs work to be automatic
2415         * configure.in - Add --with-aname-dbm to select between Berkeley and
2416                 DBM aname database format.
2417         * Makefile.in - Add definitions to select aname rules.
2418
2419 Tue Jun 27 15:48:41 EDT 1995    Paul Park       (pjpark@mit.edu)
2420         * read_pwd.c(intr_routine) - Add signal name argument to signal handler
2421                 to conform to prototype.
2422
2423 Sat Jun 10 23:07:27 1995  Tom Yu  (tlyu@dragons-lair)
2424
2425         * genaddrs.c: krb5_auth_context redefinitions
2426
2427 Fri Jun  9 22:08:33 1995  Theodore Y. Ts'o  <tytso@dcl>
2428
2429         * gmt_mktime.c (gmt_mktime): Change assertion to check to make
2430                 sure that the day of the month is >= 1, not 0.
2431
2432 Fri Jun  9 19:34:29 1995    <tytso@rsx-11.mit.edu>
2433
2434         * configure.in: Remove standardized set of autoconf macros, which
2435                 are now handled by CONFIG_RULES.
2436
2437 Wed Jun  7 14:43:56 1995    <tytso@rsx-11.mit.edu>
2438
2439         * def_realm.c (krb5_get_default_realm), get_krbhst.c
2440                 (krb5_get_krbhst), hst_realm.c (krb5_get_host_realm), 
2441                 init_os_ctx.c (krb5_os_init_context), osconfig.c, 
2442                 realm_dom.c (krb5_get_realm_domain): Remove old ifdef'ed
2443                 code which read in krb.conf and krb.realms.
2444
2445         * read_pwd.c (krb5_read_password): Remove old #ifdef notdef code.
2446                 Significantly simplified and cleaned up function.
2447                 Removed BSD 4.3 compatibility code.  (If we ever need
2448                 to make this work on a non-POSIX system, we'll supply
2449                 POSIX termios emulation functions in src/lib/krb5/posix.)
2450
2451 Fri Jun 2 17:54:12 1995 Keith Vetter (keithv@fusion.com)
2452
2453         * net_read.c, net_write.c: made to work with sockets.
2454
2455 Fri May 26 20:20:58 1995  Theodore Y. Ts'o  (tytso@dcl)
2456
2457         * configure.in, Makefile.in: Add support for building shared libraries.
2458
2459 Thu May 25 15:33:45 1995 Keith Vetter (keithv@fusion.com)
2460
2461         * os-proto.h: moved prototype for krb5_make_fulladdr to
2462            los-proto.h since it's needed by the krb directory.
2463         * ktdefnam.c: fixed signed/unsigned mismatch.
2464         * read_pwd.c: pc stub didn't track changes to the real routines
2465            parameter list (const was added).
2466
2467 Tue May 23 16:29:24 1995  Theodore Y. Ts'o  (tytso@dcl)
2468
2469         * t_std_conf.c, timeofday.c, unlck_file.c: Rearrange #include
2470                 files so that krb5.h gets included first, so that the
2471                 debugging information can be more efficiently collapsed
2472                 since the type numbers will be the same.
2473
2474 Tue May 16 10:33:03 EDT 1995    Paul Park       (pjpark@mit.edu)
2475         * gmt_mktime.c  - Use the actual year instead of the number of years
2476                           since 1900 when determining if a year has a leapday.
2477                           Makes dates after February in the year 2000 correct.
2478
2479 Mon May 15 05:08:05 1995    <tytso@rsx-11.mit.edu>
2480
2481         * ktdefname.c (krb5_kt_default_name): Use the KRB5_KTNAME
2482                 environment variable to override the default location of
2483                 the keytab.
2484
2485 Mon May  8 22:19:23 1995  Ezra Peisach  <epeisach@kangaroo.mit.edu>
2486
2487         * read_pwd.c (krb5_read_password): use volatile on all
2488                 systems. Let configure define volatile to nothing on
2489                 systems without. 
2490
2491         * configure.in: Add HAS_ANSI_VOLATILE
2492
2493         * mk_faddr.c (krb5_make_fulladdr): Allocate enough memory for
2494                 raddr contents.
2495
2496         * read_pwd.c (krb5_read_password): Make arguments prompt and
2497                 prompt2 const char * for convenience to callers.
2498
2499 Mon May  1 17:05:21 1995  Ezra Peisach  <epeisach@kangaroo.mit.edu>
2500
2501         * init_os_ctx.c (krb5_set_config_files): Added required const to
2502                 function declaration to be compatbile with call to
2503                 profile_init. 
2504
2505 Mon May 01 15:56:32 1995  Chris Provenzano (proven@mit.edu)
2506
2507         * genaddrs.c (krb5_auth_con_genaddrs()),
2508         * mk_faddr.c (krb5_make_fulladdr()), os-proto.h :
2509                 Changes to auth_context to better support full addresses.
2510
2511 Sun Apr 30 16:03:59 1995  Ezra Peisach  <epeisach@kangaroo.mit.edu>
2512
2513         * osconfig.c: Global variables krb5_config_file and
2514                 krb5_trans_file conditionalized on OLD_CONFIG_FILES.
2515
2516 Sat Apr 29 07:07:22 1995  Theodore Y. Ts'o  <tytso@lurch.mit.edu>
2517
2518         * init_os_ctx.c (krb5_set_config_files): New function.  Provides a
2519                 way to set a new set of config files for a particular OS
2520                 context.
2521
2522         * init_os_ctx.c (krb5_os_init_context): Don't return an error if 
2523                 profile_init() returns an error.
2524
2525 Fri Apr 28 09:58:31 EDT 1995    Paul Park       (pjpark@mit.edu)
2526
2527         Move adm_conn.c from libkrb5 to libkadm.
2528
2529 Thu Apr 27 17:50:14 1995 Keith Vetter (keithv@fusion.com)
2530
2531         * adm_conn.c: added constant to pull in needed PC code, and
2532            removed two unused variables.
2533         * genaddrs.c: needed casts on getsockname and getpeername calls.
2534         * mk_faddr.c: the int->byte code needed explicit casts.
2535         * os-proto.h: added missing prototype for krb5_make_fulladdr.
2536
2537 Wed Apr 26 16:00:52 EDT 1995    Paul Park       (pjpark@mit.edu)
2538
2539         * Add adm_conn.c - module to provide a connection to an administrative
2540           (kpasswd/kadmin) server.
2541
2542 Wed Apr 27 11:30:00 1995 Keith Vetter (keithv@fusion.com)
2543
2544         * osconfig.c: krb5_find_config_files only used for OLD_CONFIG_FILES.
2545         * init_os_.c: Get config file location via windows ini files.
2546
2547 Thu Apr 27 13:04:54 1995  Ezra Peisach  <epeisach@kangaroo.mit.edu>
2548
2549         * Makefile.in (clean): Remove t_std_conf.o 
2550
2551 Tue Apr 25 21:58:23 1995  Chris Procenzano (proven@mit.edu)
2552
2553         * Makefile.in : Added source files mk_faddr.c and genaddrs.c.
2554         * mk_faddr.c (krb5_mk_fulladdr()): Makes a full address from
2555                 a struct sockaddr_in.
2556         * genaddrs.c (krb5_auth_con_genaddrs()) : Generate a full address
2557                 from the active file descriptor and place it in the 
2558                 auth_context for the calls mk_safe(), mk_priv(), mk_safe(), 
2559                 rd_cred(), rd_priv(), and rd_safe().
2560         * gen_rname.c (krb5_gen_replay_name()) : Fixed to take any type of
2561                 krb5_address and generate a rcache name.
2562         * os-proto.h (krb5_make_full_ipaddr()) : Removed prototype.
2563
2564 Tue Apr 25 14:09:26 1995  Theodore Y. Ts'o  <tytso@dcl>
2565
2566         * t_std_conf.c (main): Add declaration of optarg.
2567
2568 Tue Apr 25 04:50:13 1995  Chris Procenzano (proven@mit.edu)
2569
2570         * locate_kdc.c (krb5_locate_kdc()): Pass a NUL terminated realm
2571                 to profile_get_values(). 
2572
2573 Mon Apr 24 17:20:14 1995  Ezra Peisach  <epeisach@kangaroo.mit.edu>
2574
2575         * locate_kdc.c (krb5_locate_kdc): Don't deref NULL pointer
2576         returned from profile_get_values if profile is not set.
2577
2578 Sat Apr 22 00:11:12 1995  Theodore Y. Ts'o  (tytso@dcl)
2579
2580         * Makefile.in, configure.in, t_std_conf.c: Add test program to
2581                 test the standard configuration krb5 routines.
2582
2583         * osconfig.c: Don't define krb5_kdc_udp_portname and
2584                 krb5_kdc_sec_portname any more.  There's no real point...
2585
2586         * hst_realm.c (krb5_get_krbhst): Strip off the trailing dot from
2587                 the hostname if present.
2588
2589         * locate_kdc.c (krb5_locate_kdc): Use the profile code to get the
2590                 list of Kerberos servers (plus port numbers) for a
2591                 particular realm from [realms]/<realm>/kdc
2592
2593 Fri Apr 21 11:38:45 1995  Theodore Y. Ts'o  <tytso@lurch.mit.edu>
2594
2595         * def_realm.c (krb5_get_default_realm): Use the profile code to
2596                 get the default realm from [libdefaults]/default_realm.
2597
2598         * get_krbhst.c (krb5_get_krbhst): Use the profile code to get the
2599                 list of Kerberos servers for a particular realm from 
2600                 [realms]/<realm>/kdc
2601
2602         * realm_dom.c (krb5_get_realm_domain):  Use the profile code to
2603                 get the default domain postfix for a realm (used only to
2604                 convert V4 -> V5 principals) from 
2605                 [realms]/<realm>/default_domain
2606
2607         * hst_realm.c (krb5_get_host_realm): Use the profile code to get
2608                 the default realm given a particular host from
2609                 [domain_realm]/<host|domain>
2610
2611         * init_os_ctx.c (krb5_os_init_context): When the OS context is
2612                 initialized, also initialize the profile file.  This loads
2613                 in the /etc/krb5.conf file.
2614
2615 Wed Apr 19 13:50:19 1995  Ezra Peisach  (epeisach@kangaroo.mit.edu)
2616
2617         * def_realm.c: (krb5_get_default_realm) - remove global default realm.
2618                 Moved into the context. (krb5_set_default_realm) added.
2619
2620 Fri Apr 14 22:15:00 1995  Theodore Y. Ts'o  <tytso@lurch.mit.edu>
2621
2622         * an_to_ln.c (dbm_an_to_ln): Don't compile dbm_an_to_ln() if
2623                 USE_DBM_LNAME isn't defined.
2624
2625 Fri Apr 14 15:15:48 1995    <tytso@rsx-11.mit.edu>
2626
2627         * hst_realm.c (krb5_get_host_realm): Eliminate memory leak in the
2628                 unlikely case that gethostname fails.
2629
2630                 If the krb.realms file isn't available, use the default
2631                 realm of the host.
2632
2633 Thu Apr 13 15:49:16 1995 Keith Vetter (keithv@fusion.com)
2634
2635         * *.[ch]: removed unneeded INTERFACE from non-api functions.
2636         * read_pwd.c: __STDC__ conditional also checks the _WINDOWS define.
2637
2638 Fri Apr 7 15:32:04 1995 Keith Vetter (keithv@fusion.com)
2639
2640         * ccdefname.c: 
2641            changed windows stored filename syntax--dropped the 'FILE:' part.
2642            changed buffer from malloc to static since we don't want it 
2643             ever to fail, and nobody checks it for errors.
2644
2645 Wed Apr 5 16:32:07 1995 Keith Vetter (keithv@fusion.com)
2646
2647         * get_krbh.c: better error handling--old return values were 
2648            being overwritten.
2649         * locate_kdc.c: added new error code KRB5_REALM_CANT_RESOLVE for
2650            when we have realm names but can't find their addresses.
2651            Also, fixed up indenting of an if clause.
2652         * sendto_kdc.c: added winsock init/destroy calls because some
2653             PC tcp/ip stacks seem to need it.
2654
2655 Fri Mar 31 16:30:03 1995  Theodore Y. Ts'o  (tytso@dcl)
2656
2657         * realm_dom.c (krb5_get_realm_domain): Don't indent #ifdef's!
2658
2659         * hst_realm.c (krb5_get_host_realm): Don't indent #ifdef's!
2660
2661 Thu Mar 30 15:54:54 1995 Keith Vetter (keithv@fusion.com)
2662
2663         * localaddr.c: in Windows/Mac code, fixed bug due to wrong level
2664            of indirection on memcpy call.
2665
2666 Tue Mar 28 19:22:28 1995 Keith Vetter (keithv@fusion.com)
2667
2668         For Windows, added calls to get the default config, realms and
2669         ccache files out of a windows ini file.
2670         * ccdefname.c: does this for the credential cache.
2671         * osconfig.c: does this for the config and realms files.
2672         * get_krbh.c, realm_do.c, hst_real.c, def_real.c: added calls to
2673            set the default values.
2674
2675 Tue Mar 28 18:35:20 1995  John Gilmore  (gnu at toad.com)
2676
2677         * DNR.c:  Add Apple MacTCP source file for domain name resolution.
2678         * macsock.c:  Add fake socket support routines for MacTCP.
2679         * Makefile.in (OBJS, SRCS):  Add DNR and macsock.
2680         * ccdefname.c:  On Mac, default cred cache is "STDIO:krb5cc" for now.
2681         FIXME, this needs to find the Preferences folder and use that.
2682         FIXME, shouldn't be conditioned on HAVE_MACSOCK_H.
2683         * gmt_mktime.c:  Use HAVE_SYS_TYPES_H.
2684         * krbfileio.c:  Remove <sys/types.h>.
2685         * localaddr.c, sendto_kdc.c:  Convert to more generic socket
2686         support.  Use closesocket instead of close, SOCKET_ERRNO rather
2687         than errno, SOCKET rather than int, etc.
2688         * localaddr.c:  Use getmyipaddr() from macsock.c, if on Mac.
2689         Add FIXME for multiple local addresses.
2690         * lock_file.c:  Provide a dummy version for MacOS.
2691         * read_pwd.c (ECHO_PASSWORD):  Add #ifdef's to avoid all the ioctls
2692         and other stuff that turn off echoing.  This is useful for debugging
2693         on MacOS.  FIXME:  ECHO_PASSWORD needs to be added to configure.in.
2694         * ustime.c:  Bring in Mac-specific time-and-timezone code.  It
2695         probably isn't hooked up correctly, yet.
2696
2697 Mon Mar 27 14:16:39 1995  John Gilmore  (gnu at toad.com)
2698
2699         * full_ipadr.c, gen_rname.c, port2ip.c, read_msg.c, write_msg.c:
2700         Remove explicit includes of socket files.
2701         * locate_kdc.c:  Remove <sys/types.h> and "os-proto.h".
2702
2703         * macsock.c (connect, send, recv):  Add for K5 compatability.
2704         (getmyipaddr):  Add for use in K5.
2705
2706         * macsock.c:  Add Mac socket support file, verbatim from K4 release.
2707
2708 Fri Mar 24 17:58:15 1995  Theodore Y. Ts'o  (tytso@rt-11)
2709
2710         * locate_kdc.c: Don't include sys/socket.h, netdb.h, netinet/in.h,
2711                 since these files are already included by k5-config.h
2712         
2713         * sendto_kdc.c: Don't include sys/socket.h, since it is already
2714                 included by k5-config.h
2715
2716         * sn2princ.c: Don't include netdb.h, since it is already included
2717                 by k5-config.h
2718
2719 Thu Mar 23 23:11:36 1995  Theodore Y. Ts'o  <tytso@dcl>
2720
2721         * realm_dom.c (krb5_get_realm_domain): Don't indent preprocessor
2722                 directives.  (Not portable).
2723
2724         * hst_realm.c (krb5_get_host_realm): Don't indent preprocessor
2725                 directives.  Removed excess close paren introduced by
2726                 Keith.
2727
2728 Wed Mar 22 18:59:47 1995 Keith Vetter (keithv@fusion.com)
2729
2730         * hst_realm.c, realm_dom.c: windows DLL can't use fscanf so had
2731            to write a couple of routines to read what we need from the file.
2732
2733 Wed Mar 22 13:30:35 1995 Keith Vetter (keithv@fusion.com)
2734
2735         * an_to_ln.c, kuserok.c: last two os routines ported to the PC.
2736
2737 Fri Mar 17 19:56:39 1995  John Gilmore  (gnu at toad.com)
2738
2739         * Makefile.in (LDFLAGS):  Eliminate, duplicates config/pre.in.
2740         * localaddr.c:  Remove socket include files now handled in k5-int.h.
2741
2742 Wed Mar 15 12:19:47 1995 Keith Vetter (keithv@fusion.com)
2743
2744         * sendto_kdc.c: made to work on the PC.
2745
2746 Tue Mar  7 22:15:00 1995 Keith Vetter <keithv@fusion.com>
2747
2748         * sendto_kdc.c: stubbed on the PC for now.
2749
2750 Tue Mar  7 19:54:17 1995  Mark Eichin  <eichin@cygnus.com>
2751
2752         * configure.in: take out ISODE_DEFS, ISODE_INCLUDE.
2753
2754 Tue Mar 7 13:35:21 1995 Keith Vetter (keithv@fusion.com)
2755
2756         * *.c: ported all the c files except an_to_ln, kuserok, and
2757           sendto_kdc which have windows stubs.
2758         * Makefile.in: reflects above changes.
2759
2760 Wed Mar 1 17:30:00 1995 Keith Vetter (keithv@fusion.com)
2761
2762         * Makefile.in: made to work on the PC
2763         * ustime.c: added section for time on the PC
2764         * localaddr.c: added section for the PC--returns local IP address
2765         N.B. not sure how we're going to handle different machine dependent
2766         code changes. For now it's just added to the end of the file. Later,
2767         we have to decide on a solution for all.
2768
2769 Tue Feb 28 01:07:37 1995  John Gilmore  (gnu at toad.com)
2770
2771         * *.c:  Avoid <krb5/...> includes.
2772
2773 Fri Feb  3 08:24:18 1995  Theodore Y. Ts'o  (tytso@dcl)
2774
2775         * gmt_mktime.c (gmt_mktime): Don't double count the leap day in a
2776                 leap year.
2777
2778 Sun Jan 22 18:23:37 1995  John Gilmore  (gnu@cygnus.com)
2779
2780         * get_krbhst.c (krb5_get_krbhst):  Declare realm argument const,
2781         to match prototype.
2782
2783 Wed Jan 18 11:08:59 1995    <tytso@rsx-11.mit.edu>
2784
2785         * sendto_kdc.c (krb5_sendto_kdc): Fix use of connected sockets;
2786                 previously krb5_sendto_kdc only used one socket per
2787                 address family.  This doesn't work; it now uses one
2788                 socket per address. (krb5-bugs #938)
2789
2790 Fri Jan 13 15:23:47 1995  Chris Provenzano (proven@mit.edu)
2791
2792         * Actually move the file init_ctx.c to init_os_ctx.c in the CVS
2793                 repository and also rename the routine  krb5_free_os_context()
2794                 to krb5_os_free_context().
2795
2796 Fri Jan 13 15:23:47 1995  Chris Provenzano (proven@mit.edu)
2797
2798     * Added krb5_context to all krb5_routines
2799
2800         * Moved init_ctx.c to init_os_ctx.c because a library cannot
2801                 have more than on file with the same name. See krb/init_ctx.c
2802
2803 Mon Dec 19 15:20:35 1994  Theodore Y. Ts'o  (tytso@dcl)
2804
2805         * init_ctx.c: New file.  Initializes and frees the krb5_os_context
2806           structure. 
2807
2808         * realm_dom.c (krb5_get_realm_domain): Fixed minor bug where the
2809                 length of the returned domain was calculated incorrectly.
2810
2811 Mon Oct 31 17:04:08 1994  Theodore Y. Ts'o  (tytso@dcl)
2812
2813         * lock_file.c: Back out POSIX_FILE_LOCKS change.  (Should be
2814                 depending on autoconf.h to supply this #define if
2815                 necessary.) 
2816
2817 Thu Oct 13 17:24:31 1994  Theodore Y. Ts'o  (tytso@maytag)
2818
2819         * configure.in: Add ISODE_DEFS
2820
2821 Fri Oct  7 13:23:18 1994  Theodore Y. Ts'o  (tytso@dcl)
2822
2823         * configure.in: Add test for unistd.h
2824
2825         * lock_file.c: Use POSIX_FILE_LOCKS if _POSIX_VERSION is defined
2826                 in unistd.h
2827
2828 Thu Sep 22 20:46:08 1994  Theodore Y. Ts'o  (tytso@dcl)
2829
2830         * configure.in: Put in correct dependency order of configure.in
2831                 lines.
2832
2833 Wed Jul  6 13:26:59 1994  Mark Eichin  (eichin@cygnus.com)
2834
2835         * gmt_mktime.c (gmt_mktime): New file, new function. Similar to
2836         POSIX mktime, but always works in GMT.
2837         configure.in, Makefile.in: build gmt_mktime.
2838
2839 Wed Jun 22 15:49:30 1994  Theodore Y. Ts'o  (tytso at tsx-11)
2840
2841         * locate_kdc.c (krb5_locate_kdc): Fixed default port numbers so
2842         they are loaded in network byte order instead of host byte order.
2843
2844