forked from krb5/krb5-anonsvn
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog
3236 lines (2200 loc) · 109 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2005-12-16 Ken Raeburn <raeburn@mit.edu>
* k5-thread.h (USE_PTHREAD_LOCK_ONLY_IF_LOADED): Define any time
HAVE_PRAGMA_WEAK_REF is defined.
2005-12-07 Ken Raeburn <raeburn@mit.edu>
* k5-thread.h (k5_mutex_lock_update_stats) [__GNUC__]: Use an
inline function, to avoid "statement with no effect" warnings.
2005-10-20 Jeffrey Altman <jaltman@mit.edu>
* win-mac.h:
- Add definitions for int64_t and uint64_t
- Force the use of 32-bit time_t on 32-bit Windows
- Correct the definition of MAX_SIZE to use the value
of SIZE_MAX which is defined in limits.h
- Add check to ensure that 32-bit time_t is forced
only when k5-int.h has been loaded.
* k5-int.h:
- Add check to ensure that k5-int.h is loaded before
krb5.h
* krb5.hin:
- Modify prototypes of functions that take krb5_int32
when they are really passing krb5_timestamp values
krb5_us_timeofday, krb5_timeofday, krb5_set_real_time,
krb5_set_debugging_time, krb5_get_time_offsets,
krb5_set_time_offsets
2005-10-20 Jeffrey Altman <jaltman@mit.edu>
* win-mac.h: Add definitions for int32_t and uint32_t
2005-07-01 Ken Raeburn <raeburn@mit.edu>
* k5-thread.h (k5_key_t): Add K5_KEY_KDB_ERR_HANDLER and
K5_KEY_KADM_CLNT_ERR_HANDLER.
2005-06-14 Ken Raeburn <raeburn@mit.edu>
* k5-platform.h: Include endian.h if it's available, or
machine/endian.h if it's available. Include byteswap.h if
available.
(K5_LE, K5_BE): Define based on endianness macros from header
files, if available. Only do the architecture tests if this
fails.
(SWAP16, SWAP32, SWAP64): Define if byteswap.h and bswap_16 are
available.
({load,store}_{16,32,64}_le): Disable building of little-endian
versions, which aren't currently used.
2005-06-09 Ken Raeburn <raeburn@mit.edu>
* k5-platform.h (load_*): Change argument type to point to const.
(K5_BE, K5_LE): New macros, defined based on architecture macros
for certain big-endian and little-endian platforms, respectively.
(PUT, GET) [__GNUC__]: New macros. Use GCC's packed-structure
support to do unaligned loads and stores.
(PUTSWAPPED, GETSWAPPED) [__GNUC__]: Similar, but invoke a
SWAP<size> macro (not defined yet) to swap the bytes of the
value.
(store_*, load_*): Use these macros when using GCC, depending on
endianness and availability of the SWAP<size> macros.
2005-06-07 Ken Raeburn <raeburn@mit.edu>
* k5-platform.h (MAYBE_DEFINE_CALLINIT_FUNCTION)
[DELAY_INITIALIZER]: New macro. If not __GNUC__, define
k5_call_init_function in the expansion; otherwise, do nothing.
(MAKE_INIT_FUNCTION) [DELAY_INITIALIZER]: Use it.
(k5_call_init_function): Don't define function form at top level.
2005-05-31 Ken Raeburn <raeburn@mit.edu>
* k5-thread.h (krb5int_pthread_loaded) [HAVE_PRAGMA_WEAK_REF]:
Declare.
(K5_PTHREADS_LOADED) [HAVE_PRAGMA_WEAK_REF]: Use it.
2005-05-28 Ken Raeburn <raeburn@mit.edu>
* k5-int.h (encode_krb5_sam_challenge, encode_krb5_sam_key,
encode_krb5_enc_sam_response_enc, encode_krb5_sam_response,
decode_krb5_sam_challenge, decode_krb5_enc_sam_response_enc,
decode_krb5_sam_response, decode_krb5_predicted_sam_response,
krb5_validate_times): Delete duplicate declarations.
2005-05-19 Sam Hartman <hartmans@mit.edu>
* k5-int.h (krb5int_c_ free_keyblock init_keyblock free_keyblock_contents): new
2005-05-13 Ken Raeburn <raeburn@mit.edu>
* configure.in: Deleted, content merged into ../configure.in.
* Makefile.in (thisconfigdir, mydir): Updated for configure
change.
($(srcdir)/krb5/autoconf.stmp): Use $(thisconfigdir) when
locating configure.in and autom4te.cache.
2005-05-06 Sam Hartman <hartmans@mit.edu>
* krb5.hin: Add krb5_c_prf_length
2005-04-28 Ken Raeburn <raeburn@mit.edu>
* k5-int.h: Include fcntl.h only if HAVE_FCNTL_H is defined.
(krb5int_zap_data): For PalmOS without gcc, call memset but
without the volatile cast.
* port-sockets.h: On PalmOS, include autoconf.h and netdb.h, and
define socklen_t.
* socket-utils.h: Include k5-platform.h.
(sa2sin, sa2sin6, ss2sa, ss2sin, ss2sin6): Always use inline
function form, and use "inline" instead of "__inline__".
2005-04-13 Ken Raeburn <raeburn@mit.edu>
* k5-int.h: Remove disabled code that used to be part of the
non-NEED_SOCKETS case.
2005-03-25 Ken Raeburn <raeburn@mit.edu>
* configure.in: Don't check for getpwnam_r and getpwuid_r with
AC_CHECK_FUNCS; use AC_CHECK_FUNC, and only set shell variables.
Run stricter tests on return types and numbers of arguments, and
only define the C macros if these parameters can actually be
determined.
* k5-platform.h (k5_getpwnam_r, k5_getpwuid_r): New macros.
* Makefile.in ($(srcdir)/krb5/autoconf.stmp): Nuke autom4te.cache
directory.
* k5-platform.h: Expand on init/fini comments some more.
(MAKE_FINI_FUNCTION): Add an HP-UX specific variant that defines
an auxiliary function fitting the signature of HP-UX 10 library
combined initializer/finalizer functions.
2005-03-04 Ken Raeburn <raeburn@mit.edu>
* configure.in: Check return type of gmtime_r, and define
GMTIME_R_RETURNS_INT if it returns int. If the return type can't
be determined, pretend the function isn't there.
2005-02-08 Ken Raeburn <raeburn@mit.edu>
* k5-platform.h (PROGRAM_EXITING) [__GNUC__ && !_WIN32 &&
CONSTRUCTOR_ATTR_WORKS]: Define as zero.
2005-02-02 Ken Raeburn <raeburn@mit.edu>
* configure.in: Put #ifndef/#define/#endif wrapper into
autoconf.h to protect against multiple inclusions. Don't look for
xom.h. Check for dlopen.
2005-01-21 Ezra Peisach <epeisach@mit.edu>
* k5-thread.h (k5_os_mutex_lock): Under Irix, invoke
k5_pthread_mutex_lock() with the k5_os_mutex, not the
pthread_mutex_t.
(k5_pthread_assert_locked,unlocked): If DEBUG_THREADS not use, provide
correct prototype. Add missing close paren.
2005-01-14 Ken Raeburn <raeburn@mit.edu>
* k5-thread.h [HAVE_PTHREAD && HAVE_PRAGMA_WEAK_REF]: Mark
pthread_self and pthread_equal as weak references.
2005-01-13 Ken Raeburn <raeburn@mit.edu>
* k5-thread.h (k5_os_mutex) [pthread case]: Add new field "owner"
if DEBUG_THREADS.
(k5_pthread_mutex_lock, k5_pthread_mutex_unlock,
k5_pthread_assert_locked): New macros/functions; if DEBUG_THREADS,
and thread support loaded, set or check the owner field.
(K5_OS_MUTEX_PARTIAL_INITIALIZER) [pthread case && DEBUG_THREADS]:
Set the owner field. If PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP
is defined, use it.
(k5_os_mutex_lock, k5_os_mutex_unlock, k5_os_mutex_assert_locked)
[pthread case]: Use k5_pthread_ versions.
(k5_mutex_destroy): Update the location data with the mutex
locked, before destroying it.
(k5_mutex_unlock): Update the location data while the mutex is
still locked, and check the assertion that the mutex really is
locked. Convert inline function to macro.
* k5-thread.h (krb5int_mutex_lock_update_stats,
krb5int_mutex_unlock_update_stats, krb5int_mutex_report_stats)
[!DEBUG_THREADS_STATS]: Declare KRB5_CALLCONV.
2005-01-09 Ken Raeburn <raeburn@mit.edu>
* k5-int.h (krb5int_zap_data): Fix preprocessor test for Windows.
2005-01-07 Ken Raeburn <raeburn@mit.edu>
* k5-thread.h (KRB5_CALLCONV, KRB5_CALLCONV_C): Define if not
defined.
(krb5int_mutx_lock_update_stats,
krb5int_mutex_unlock_update_stats, krb5int_mutex_report_stats)
[!DEBUG_THREADS_STATS]: Declare, with KRB5_CALLCONV.
(k5_debug_make_loc): Change "lineno" to type int.
(k5_debug_make_loc): Likewise for argument "line".
2005-01-04 Jeffrey Altman <jaltman@mit.edu>
* krb5.hin: add prototype for krb5_is_thread_safe
2005-01-04 Jeffrey Altman <jaltman@mit.edu>
* win-mac.h: define NEED_INSIXADDR_ANY for ipv6 symbol
2005-01-04 Ken Raeburn <raeburn@mit.edu>
* configure.in: Check for uint32_t and int32_t in system headers.
* Makefile.in (krb5.h): Don't pull in autoconf SIZEOF macros.
2004-12-21 Tom Yu <tlyu@mit.edu>
* krb5.hin: Flag krb5_principal2salt as KRB5_CALLCONV_WRONG.
2004-12-08 Ken Raeburn <raeburn@mit.edu>
* k5-int.h (KRB5INT_ACCESS_STRUCT_VERSION): Bump to 9.
(struct _krb5int_access): Add function pointer field use_dns_kdc.
2004-12-07 Sam Hartman <hartmans@mit.edu>
* k5-int.h: Add prf_length to the keytype function
* krb5.hin: Add krb5_c_prf
2004-12-06 Ken Raeburn <raeburn@mit.edu>
* k5-thread.h [DEBUG_THREADS_STATS]: Include string.h and
inttypes.h.
(get_current_time) [DEBUG_THREADS_STATS]: Define as inline.
(k5_mutex_init_stats) [DEBUG_THREADS_STATS]: Save away current
time as creation time.
(k5_mutex_stats_tmp): New typedef, k5_debug_time_t if recording
stats, dummy int otherwise.
(k5_mutex_stats_start): New macro, get current time if recording,
zero otherwise.
(krb5int_mutex_lock_update_stats,
krb5int_mutex_unlock_update_stats, krb5int_mutex_report_stats)
[DEBUG_THREADS_STATS]: Declare.
(krb5int_mutex_report_stats) [! DEBUG_THREADS_STATS]: New macro,
does nothing.
(k5_mutex_lock_update_stats, k5_mutex_unlock_update_stats): New
macros, map to krb5int_ functions if recording, dummy statements
otherwise.
(k5_mutex_destroy): Call krb5int_mutex_report_stats.
(k5_mutex_lock, k5_mutex_lock_1): Call k5_mutex_stats_start and
k5_mutex_lock_update_stats.
(k5_mutex_unlock_1): Call k5_mutex_unlock_update_stats.
2004-11-19 Ken Raeburn <raeburn@mit.edu>
* win-mac.h (HAVE_GETADDRINFO, HAVE_GETNAMEINFO): Define.
2004-11-16 Ken Raeburn <raeburn@mit.edu>
* k5-int.h (struct _krb5_cc_ops): Add new function pointer field
get_flags.
* krb5.hin (krb5_cc_get_flags): Declare.
2004-11-03 Ken Raeburn <raeburn@mit.edu>
* fake-addrinfo.h: Move most of code content into
util/support/fake-addrinfo.c.
(krb5int_getaddrinfo, krb5int_freeaddrinfo, krb5int_getnameinfo,
krb5int_gai_strerror): Declare.
(getaddrinfo, freeaddrinfo, getnameinfo, gai_strerror): Define as
macros mapping to the krb5int_ function names.
2004-10-29 Ken Raeburn <raeburn@mit.edu>
* fake-addrinfo.h: Include errno.h earlier.
2004-10-28 Ken Raeburn <raeburn@mit.edu>
* k5-thread.h (return_after_yield, k5_mutex_lock) [__GNUC__]: Add
macro versions so debugging line numbers will be useful.
(DEBUG_THREADS_SLOW): Don't define.
2004-10-05 Ken Raeburn <raeburn@mit.edu>
* fake-addrinfo.h (AI_ADDRCONFIG, AI_V4MAPPED, AI_ALL): If not
defined, or when completely faking getaddrinfo, define them as
zero.
2004-10-01 Ken Raeburn <raeburn@mit.edu>
* configure.in: Check for struct if_laddrconf, as for struct
lifconf.
2004-09-23 Ken Raeburn <raeburn@mit.edu>
* configure.in: Use AC_MSG_NOTICE for krb4 messages instead of
AC_MSG_RESULT, because there's no corresponding AC_MSG_CHECKING.
2004-09-21 Tom Yu <tlyu@mit.edu>
* configure.in: Remove KRB5_AC_NEED_BIND_8_COMPAT.
2004-09-15 Tom Yu <tlyu@mit.edu>
* configure.in: Check for h_errno declaration in netdb.h.
* port-sockets.h: Explicitly declare h_errno if it's missing.
2004-09-10 Tom Yu <tlyu@mit.edu>
* port-sockets.h: Remove _XOPEN_SOURCE_EXTENDED hack for netdb.h,
as it can cause inconsistencies between headers. It significantly
broke HP-UX 10.20 anyway.
2004-09-01 Jeffrey Altman <jaltman@mit.edu>
* krb5.hin: define KRB5_TC_NOTICKET for use with krb5_cc_set_flags
2004-08-23 Ken Raeburn <raeburn@mit.edu>
* fake-addrinfo.h (fai_add_hosts_by_name): Handle case where
returned ai_canonname is null.
2004-08-14 Ken Raeburn <raeburn@mit.edu>
* k5-thread.h (k5_os_nothread_mutex_assert_locked,
k5_os_nothread_mutex_assert_unlocked, k5_os_mutex_assert_locked,
k5_os_mutex_assert_unlocked): Assertion macros should always have
type void.
2004-08-12 Ken Raeburn <raeburn@mit.edu>
* k5-thread.h (k5_os_nothread_mutex_finish_init,
k5_os_nothread_mutex_init, k5_os_nothread_mutex_destroy,
k5_os_nothread_mutex_lock, k5_os_nothread_mutex_unlock)
[!DEBUG_THREADS]: Replace macros with inline functions, to gain
type checking and eliminate gratuitous compiler warnings.
(k5_pthread_assert_unlocked, k5_pthread_assert_locked): Likewise.
(k5_os_mutex_finish_init) [HAVE_PTHREAD &&
!USE_PTHREAD_LOCK_ONLY_IF_LOADED]: Likewise.
(return_after_yield): New inline function.
(k5_os_mutex_lock) [HAVE_PTHREAD]: Change back to a macro,
calling return_after_yield.
2004-08-09 Tom Yu <tlyu@mit.edu>
* configure.in: Solaris getpwnam_r returns struct passwd*, not
struct pwd*.
2004-08-08 Ken Raeburn <raeburn@mit.edu>
* configure.in: If getpwnam_r is available, determine its return
type.
2004-08-07 Ken Raeburn <raeburn@mit.edu>
* configure.in: Look for sched.h and sched_yield.
* k5-thread.h: Only include sched.h if it's available.
(MAYBE_SCHED_YIELD): Only use sched_yield if sched.h and
sched_yield are available; if weak references are supported and
sched_yield isn't available by default, check for it at run time.
2004-08-05 Ken Raeburn <raeburn@mit.edu>
* k5-thread.h [HAVE_PTHREAD]: Include sched.h if
DEBUG_THREADS_SLOW is defined.
(MAYBE_SCHED_YIELD) [HAVE_PTHREAD]: Define, to call sched_yield or
not, depending on DEBUG_THREADS_SLOW.
(k5_os_mutex_lock, k5_os_mutex_unlock) [HAVE_PTHREAD]: Use
MAYBE_SCHED_YIELD.
(DEBUG_THREADS_SLOW): Define.
2004-08-03 Ken Raeburn <raeburn@mit.edu>
* configure.in: Actually check for pthread_mutex_lock.
* k5-int.h (krb5_rc_recover_or_initialize): Declare.
2004-07-28 Ken Raeburn <raeburn@mit.edu>
* k5-thread.h [HAVE_PRAGMA_WEAK_REF]: Declare the pthread mutex
functions as weak.
(USE_PTHREAD_LOCK_ONLY_IF_LOADED): Define if pthread_mutex_lock
isn't available by default.
2004-07-23 Ken Raeburn <raeburn@mit.edu>
* fake-addrinfo.h: Include k5-thread.h.
(struct fac): Add a mutex.
(plant_face, find_face): Check that mutex is already locked.
(krb5int_lock_fac, krb5int_unlock_fac): Declare.
(fai_add_hosts_by_name): Use them to lock and unlock the mutex.
2004-07-22 Ken Raeburn <raeburn@mit.edu>
* configure.in: Look for "struct lifconf" and maybe define
HAVE_STRUCT_LIFCONF.
2004-07-19 Ken Raeburn <raeburn@mit.edu>
* fake-addrinfo.h (struct face, struct fac): Always declare.
(krb5int_fac): Renamed from fac, and made extern. Always
declare.
2004-07-16 Ken Raeburn <raeburn@mit.edu>
* configure.in, port-sockets.h: Don't check for macsock.h.
* fake-addrinfo.h: Don't include netdb.h, since port-sockets.h
already does.
* port-sockets.h: Define _XOPEN_SOURCE_EXTENDED around inclusion
of netdb.h if it's not defined and not Windows, as fake-addrinfo.h
used to do; otherwise just include it normally.
* port-sockets.h (inet_ntop): Cast NULL to desired return pointer
type.
2004-07-15 Alexandra Ellwood <lxs@mit.edu>
* k5-int.h (krb5_os_context)
Removed default_ccprincipal field from krb5_context
2004-07-14 Jeffrey Altman <jaltman@mit.edu>
* k5-int.h: define for WIN32 the macro krb5int_zap_data to
utilize the Win32 API SecureZeroMemory which is guaranteed
by Microsoft not to be optimized out by the compiler.
Both memset and ZeroMemory will be optimized out by the
compiler when possible.
2004-07-13 Ken Raeburn <raeburn@mit.edu>
* k5-platform.h (k5_call_init_function) [DELAY_INITIALIZER]
[__GNUC__]: Use a statement expression so any line number info
printed by assertion failures is useful.
* k5-thread.h (k5_os_mutex_init, k5_os_mutex_destroy): If
USE_PTHREAD_LOCK_ONLY_IF_LOADED is defined, use pthread_mutex_init
and _destroy only if pthread support is loaded.
(k5_key_t): Add a couple new values for GSSAPI ccache name
manipulation.
2004-07-11 Ken Raeburn <raeburn@mit.edu>
* k5-thread.h (k5_os_mutex_lock, k5_os_mutex_unlock,
k5_os_mutex_assert_locked, k5_os_mutex_assert_unlocked)
[USE_PTHREAD_LOCK_ONLY_IF_LOADED]: Fix typo in accessing
non-pthread versions.
* configure.in: Check krb5_cv_inet6_with_dinet6 as well as
krb5_cv_inet6 when deciding whether to test for in6addr_any. If
gcc is in use, suppress pedantic warnings about "inline".
* fake-addrinfo.h (in6addr_any): If we need to define a static
copy, rename it with a macro first.
2004-07-09 Ken Raeburn <raeburn@mit.edu>
* k5-thread.h: Test HAVE_PTHREAD instead of HAVE_PTHREAD_H.
* win-mac.h (KRB5_USE_INET6, ENABLE_THREADS): Define.
2004-07-07 Ken Raeburn <raeburn@mit.edu>
* k5-thread.h [! HAVE_PTHREAD_H]: Don't explicitly disable thread
support when pthread.h is missing.
(k5_os_mutex, K5_OS_MUTEX_PARTIAL_INITIALIZER,
k5_os_mutex_finish_init, k5_os_mutex_init, k5_os_mutex_destroy,
k5_os_mutex_lock, k5_os_mutex_unlock, k5_os_mutex_assert_unlocked,
k5_os_mutex_assert_locked) [_WIN32]: Define Windows versions;
still not enabled by default.
2004-07-06 Ken Raeburn <raeburn@mit.edu>
* k5-thread.h: Use K5_THREAD_H for multiple inclusion protection.
(k5_debug_mutex_stats, k5_mutex_init_stats,
k5_mutex_finish_init_stats, K5_MUTEX_STATS_INIT): Add some dummy
support for recording statistics on how long mutexes are held,
etc. Incomplete implementation started, but code not enabled.
(k5_mutex_t): Add statistics field.
(K5_MUTEX_PARTIAL_INITIALIZER, k5_mutex_init_1, k5_mutex_init):
Initialize it.
* configure.in: Check for getpwuid_r.
2004-07-02 Ken Raeburn <raeburn@mit.edu>
* k5-thread.h: Restructured mutex code.
(k5_debug_loc): New type, may contain file/line info if
DEBUG_THREADS_LOC is defined.
(k5_os_nothread_*): Dummy implementation of mutex lock for a
single-threded process. Uses a flag and assert() if DEBUG_THREADS
is defined, does nothing interesting otherwise.
(k5_os_mutex*, k5_once*): General implementations, with dummy or
POSIX or POSIX-if-loaded-otherwise-dummy variants.
(k5_mutex_*): Combine OS-specific mutex implementation with
optional file/line tracking, and provide a place to instrument for
other debugging or performance data.
2004-07-01 Ken Raeburn <raeburn@mit.edu>
* configure.in: Test for 'inline' support.
* k5-platform.h (inline): Don't define here.
* win-mac.h (inline): Define as __inline.
2004-06-30 Ken Raeburn <raeburn@mit.edu>
* k5-thread.h (k5_debug_assert_locked, k5_debug_assert_unlocked):
New macros.
(k5_assert_locked, k5_assert_unlocked): New macros, may or may not
call the debug macros.
(K5_MUTEX_DEBUG_INITIALIZER): Use current file and line.
(k5_mutex_debug_finish_init, k5_mutex_debug_init,
k5_mutex_debug_destroy): Save current file and line.
(k5_mutex_debug_lock): Verify that the lock was unlocked before,
and set the state to locked.
(k5_mutex_debug_unlock): Verify that the mutex was locked before,
and set the state to unlocked.
(k5_debug_assert_locked, k5_debug_assert_unlocked): Use
k5_mutex_debug_check_init instead of checking initialized==1.
2004-06-25 Ken Raeburn <raeburn@mit.edu>
* k5-platform.h (JOIN4, JOIN4_2, JOIN3, JOIN3_2): Unused macros
deleted.
(JOIN__2, JOIN__2_2): Renamed from JOIN2 and JOIN2_2. Insert
two underscores between the tokens supplied. All uses changed to
use new macros, and not use identifiers with leading underscores.
2004-06-22 Ken Raeburn <raeburn@mit.edu>
* k5-int.h: Don't test macintosh, __MWERKS__, applec, or THINK_C.
2004-06-18 Ken Raeburn <raeburn@mit.edu>
* k5-platform.h (MAKE_INIT_FUNCTION, CALL_INIT_FUNCTION,
INITIALIZER_RAN): Use the linker-driven version for Windows. The
auxinit function definition needs an argument list.
(MAKE_FINI_FUNCTION): Likewise.
* win-mac.h (HAVE_STRERROR, SYS_ERRLIST_DECLARED): Define.
2004-06-16 Ken Raeburn <raeburn@mit.edu>
* Makefile.in (all-mac, clean-mac): Targets deleted.
2004-06-08 Ken Raeburn <raeburn@mit.edu>
* Makefile.in ($(srcdir)/krb5/autoconf.stmp): Always use
--include, don't try --localdir.
(all-recurse): Depend on krb5/autoconf.h.
2004-06-04 Ken Raeburn <raeburn@mit.edu>
* configure.in: Check number of arguments to getpwnam_r and
getpwuid_r and define some new macros if they're the
four-argument draft POSIX versions.
2004-06-03 Ken Raeburn <raeburn@mit.edu>
* configure.in: Check for getpwnam_r, gmtime_r, and localtime_r.
2004-06-02 Ken Raeburn <raeburn@mit.edu>
* k5-thread.h: Error out at compile time if thread support is
enabled but the thread system isn't pthreads. (This is after the
code disabling thread support for non-pthreads systems, so it's a
placeholder for now that should never get invoked.)
* k5-int.h (struct krb5_rc_st, struct _krb5_rc_ops, krb5_rc_ops):
Move type definitions to rc-int.h.
(krb5_rc_register_type, krb5_rc_dfl_ops): Move declarations to
rc-int.h.
2004-05-30 Ken Raeburn <raeburn@mit.edu>
* k5-int.h (krb5int_crypto_init, krb5int_prng_init): Declare.
2004-05-12 Ken Raeburn <raeburn@mit.edu>
* k5-thread.h: On IRIX, with threads enabled, reject gcc older
than v3.
2004-05-05 Ken Raeburn <raeburn@mit.edu>
* foreachaddr.c: Implementation moved to lib/krb5/os/localaddr.c.
* foreachaddr.h: New file.
(krb5int_foreach_localaddr): Declare.
(foreach_localaddr): New macro.
2004-04-30 Ken Raeburn <raeburn@mit.edu>
* k5-thread.h (k5_mutex_debug_check_init,
k5_mutex_debug_update_loc): New macros.
(k5_mutex_debug_lock, k5_mutex_debug_unlock): Use them.
(k5_mutex_lock, k5_mutex_unlock) [ENABLE_THREADS &&
DEBUG_THREADS]: Use them instead of k5_mutex_debug_lock and
k5_mutex_debug_unlock.
(enum k5_mutex_debug_states): New enum.
(K5_MUTEX_DEBUG_LOCKED, K5_MUTEX_DEBUG_UNLOCKED): Change to
enumerator values.
(k5_mutex_debug_info): Use the enum type. Reorder fields.
(K5_MUTEX_DEBUG_INITIALIZER): Update for new field order.
* k5-int.h: Include k5-thread.h.
(struct krb5_rc_st): Add a mutex.
2004-04-29 Ken Raeburn <raeburn@mit.edu>
* k5-platform.h (DELAY_INITIALIZER): Don't define.
(CONSTRUCTOR_ATTR_WORKS, DESTRUCTOR_ATTR_WORKS): Don't define.
(USE_LINKER_FINI_OPTION): Don't define.
(MAYBE_DUMMY_INIT): New macro, to optionally produce a dummy
initializer for the linker to reference in the case where other
options indicate we don't want to use it.
(MAKE_INIT_FUNCTION): Use it in some versions. Set the exported
function name to have a __auxinit suffix.
(MAKE_FINI_FUNCTION) [!SHARED]: Declare the function static, and
do nothing to try to cause it to get invoked.
2004-04-24 Ken Raeburn <raeburn@mit.edu>
* k5-platform.h (DELAY_INITIALIZER): New macro, defined always.
(CONSTRUCTOR_ATTR_WORKS, DESTRUCTOR_ATTR_WORKS): New macro,
defined for Linux and NetBSD, and Solaris with gcc.
(USE_LINKER_FINI_OPTION): New macro, defined on IRIX, and on
Solaris with native compiler.
(JOIN2, JOIN2_2, JOIN3, JOIN3_2, JOIN4, JOIN4_2): New utility
macros.
(k5_init_t): New typedef, for some platforms.
(MAKE_INIT_FUNCTION, MAKE_FINI_FUNCTION, CALL_INIT_FUNCTION,
INITIALIZER_RAN, PROGRAM_EXITING): New macros for library
initialization and finalization support.
* k5-thread.h: Use k5_mutex_init instead of K5_MUTEX_INITIALIZER
for multiple-inclusion protection.
(K5_MUTEX_DEBUG_INITIALIZER): Change initial initialized flag to
2.
(k5_mutex_debug_finish_init): New macro, verifies value 2 and
changes it to 1.
(k5_mutex_debug_lock): Test various values of initialized and
locked flags separately, so assertion failure message is more
immediately informative.
(K5_MUTEX_PARTIAL_INITIALIZER): Rename from K5_MUTEX_INITIALIZER.
(k5_mutex_finish_init): New macro.
(pthread_once, pthread_mutexattr_setrobust_np): Consider
declaring weak based on availability.
(K5_PTHREADS_LOADED): New macro, tests to see if pthread
functions are available, if weak references are supported.
(k5_mutex_lock, k5_mutex_unlock): On IRIX, redefine to bypass
pthread code if pthread library isn't loaded.
(k5_once_t): New typedef.
(K5_ONCE_INIT, k5_once): New macros.
* Makefile.in (autoconf.stmp): Depend on aclocal.m4.
* k5-platform.h: Include limits.h before testing for SIZE_MAX.
* k5-thread.h (k5_key_t): New enumerator typedef.
(k5_key_register, k5_getspecific, k5_setspecific): New macros.
(krb5int_key_register, krb5int_getspecific, krb5int_setspecific,
krb5int_key_delete): Declare.
2004-04-16 Sam Hartman <hartmans@mit.edu>
* k5-int.h: krb5int_populate_gic_opt now takes credentials so it
can get lifetime related options out of them
2004-04-02 Ken Raeburn <raeburn@mit.edu>
* k5-int.h (krb5int_prng_cleanup): Declare.
2004-03-25 Sam Hartman <hartmans@mit.edu>
* configure.in: Check for mkstemp
2004-03-08 Ken Raeburn <raeburn@mit.edu>
* Makefile.in (LOCAL_SUBDIRS): Renamed from MY_SUBDIRS.
2004-03-05 Ken Raeburn <raeburn@mit.edu>
* krb5.hin (krb5_kt_register): Ops table is now const.
* k5-thread.h: New file.
2004-02-26 Jeffrey Altman <jaltman@mit.edu>
* k5-int.h: change prototype declarations necessary to support
the use of krb5_get_init_creds_password's use_master as an
in/out parameter
2004-02-26 Ken Raeburn <raeburn@mit.edu>
* win-mac.h (GETSOCKNAME_ARG2_TYPE, GETSOCKNAME_ARG3_TYPE): Set
proper values for Windows here.
(GETPEERNAME_ARG2_TYPE, GETPEERNAME_ARG3_TYPE): Map to the
getsockname versions.
2004-02-24 Sam Hartman <hartmans@avalanche-breakdown.mit.edu>
* krb5.hin: Remove des3 with 32-bit length
2004-01-04 Jeffrey Altman <jaltman@mit.edu>
* win-mac.h: conditionally define strcasecmp/strncasecmp macros
only if they do not already exist.
2003-12-23 Ken Raeburn <raeburn@mit.edu>
* configure.in: Check for flock, fchmod, chmod, strftime,
strptime, geteuid, setenv, unsetenv, getenv, gethostbyname2,
getifaddrs, stdarg.h, unistd.h, paths.h, regex.h, regexp.h,
regexpr.h, fcntl.h, memory.h, ifaddrs.h, and sys/filio.h, as was
previously done in the krb5 library configure script.
2003-12-19 Ken Raeburn <raeburn@mit.edu>
* fake-addrinfo.h: Include stdio.h.
2003-12-18 Jeffrey Altman <jaltman@mit.edu>
* k5-int.h: add new functions to krb5int_access for use by gssapi
2003-12-15 Ken Raeburn <raeburn@mit.edu>
* k5-platform.h (SIZE_MAX): Provide default definition if stdint.h
doesn't define it.
2003-12-15 Jeffrey Altman <jaltman@mit.edu>
* win-mac.h: source code written to the C99 standard assumes there
are standard definitions for the MAX sizes of C types including
size_t. The MAX preprocessor variables are declared in limits.h
but limits.h is not included by any of the other header files.
We will therefore include it via win-mac.h. We must also add a
declaration of SIZE_MAX (for size_t) because Microsoft does not
provide one.
2003-12-15 Jeffrey Altman <jaltman@mit.edu>
* k5-platform.h: apply casts (unsigned char) to the assignments from
64-bit ints to unsigned char fields to avoid warnings
2003-12-13 Ken Raeburn <raeburn@mit.edu>
* krb5.hin (KRB5_AUTH_CONTEXT_USE_SUBKEY): New macro.
* k5-int.h (struct krb5_keytypes): Added field required_ctype.
(krb5int_c_mandatory_cksumtype): New declaration.
(krb5int_generate_and_set_subkey): Declare.
(memset) [__GNUC__ && __GLIBC__]: Undef, to reduce compilation
warnings in zap() macro with volatile pointer.
* k5-platform.h: New header file. Manages inline-function and
64-bit support, in platform-specific ways.
* fake-addrinfo.h: Include k5-platform.h.
(inline): Don't define here.
* k5-int.h: Include k5-platform.h.
(krb5_ui_8, krb5_int64): New typedefs.
(krb5_ser_pack_int64, krb5_ser_unpack_int64): New function decls.
2003-10-08 Tom Yu <tlyu@mit.edu>
* k5-int.h: Add prototypes for decode_krb5_safe_with_body and
encode_krb5_safe_with_body.
2003-09-26 Ken Raeburn <raeburn@mit.edu>
* Makefile.in ($(srcdir)/krb5/autoconf.h.in): Depend on
autoconf.stmp only if maintainer mode is enabled.
2003-09-12 Ken Raeburn <raeburn@mit.edu>
* configure.in: Check for setsid() and <paths.h>.
2003-08-29 Ken Raeburn <raeburn@mit.edu>
* fake-addrinfo.h (WRAP_GETADDRINFO, COPY_FIRST_CANONNAME): Don't
define on Linux unless HAVE_GETADDRINFO is defined, for libc5
compatibility.
2003-08-26 Ken Raeburn <raeburn@mit.edu>
* krb5.hin (struct _krb5_donot_replay, krb5_rc_default)
(krb5_rc_resolve_type, krb5_rc_resolve_full, krb5_rc_get_type)
(krb5_rc_default_type, krb5_rc_default_name, krb5_auth_to_rep):
Private declarations moved...
* k5-int.h: ...to here.
* configure.in: Don't test for labs, memmove or bcopy.
* k5-int.h (labs, HAVE_LABS): Never define.
* win-mac.h (HAVE_LABS): Don't define.
* configure.in: Check for some C99 headers and types.
* fake-addrinfo.h (inline): Supported by Sun Forte Developer 7
compiler.
* foreachaddr.c (foreach_localaddr) [HAVE_IFADDRS_H]: Skip over
any returned data structure with a NULL ifa_addr field.
2003-08-21 Ken Raeburn <raeburn@mit.edu>
* fake-addrinfo.h (getnameinfo): Define to my_fake_getnameinfo
only if HAVE_GETADDRINFO is defined.
2003-08-20 Ken Raeburn <raeburn@mit.edu>
* fake-addrinfo.h (inline): Move definitions further up, before
first use. Do use __inline__ for gcc without c99 support.
(GET_SERV_BY_NAME) [!GETSERVBYNAME_R_RETURNS_INT]: Fix invocation
for IRIX definition.
* socket-utils.h: Include port-sockets.h to get a definition for
struct sockaddr_storage.
First cut at adding local caching to the getaddrinfo support.
Still needs work.
* fake-addrinfo.h: Delete the unused WRAP_GETNAMEINFO support.
(HAVE_GETADDRINFO) [__APPLE__ && __MACH__]: Don't undefine.
(FAI_CACHE) [__APPLE__ && __MACH__]: Define.
(system_getaddrinfo, system_freeaddrinfo, system_getnameinfo):
New functions.
(gaiptr, faiptr, gniptr): Variables deleted. Change references
to use the system_* functions above.
(getaddrinfo, freeaddrinfo) [FAI_CACHE]: Define as macros to the
my_fake_* versions.
(protoname, socktypename, familyname): Use caller-supplied
buffers instead of local static buffers.
(debug_dump_getaddrinfo_args): Provide a buffer.
(NEED_FAKE_GETNAMEINFO): Define if HAVE_GETADDRINFO is not
defined.
(inline): Rework macros to test for C99 and IRIX.
(NEED_FAKE_GETADDRINFO): Define if FAI_CACHE is defined.
(fai_add_entry) [KRB5_USE_INET6]: Support IPv6.
(CACHE_ENTRY_LIFETIME): New macro.
(struct face, struct fac): New types.
(fac): New static variable.
(plant_face, find_face): New functions.
(fai_add_hosts_by_name) [FAI_CACHE]: Check the cache before
looking up the hostname. Add the looked-up host info to the
cache.
(fake_getaddrinfo): Call GET_SERV_BY_NAME instead of
conditionally calling getservbyname or getservbyname_r. Don't
pass AF_INET to fai_add_hosts_by_name.
(fake_getnameinfo): Define only if NEED_FAKE_GETNAMEINFO is
defined.
(gai_strerror): Define if either HAVE_FAKE_GETADDRINFO or
NEED_FAKE_GETNAMEINFO is defined.
(getaddrinfo): Do define function if FAI_CACHE is defined.
(getnameinfo): Define only if NEED_FAKE_GETNAMEINFO is defined.
2003-08-13 Ken Raeburn <raeburn@mit.edu>
* configure.in: Check for mode_t.
2003-07-31 Jeffrey Altman <jaltman@mit.edu>
* krb5.hin: krb5_get_host_realm and krb5_free_host_realm should
not be labeled as KRB5_PRIVATE. They are required for many
applications including OpenAFS and UMich's Kx509. 1.2.8 had them
public but the change was never reflected on the trunk.
2003-07-22 Alexandra Ellwood <lxs@mit.edu>
* fake-addrinfo.h: Don't use broken getaddrinfo on Mac OS X
2003-07-22 Ken Raeburn <raeburn@mit.edu>
* k5-int.h (krb5int_zap_data, zap): New macros; call memset with
volatile cast for now.
(struct krb5_enc_provider, struct krb5_hash_provider, struct
krb5_keyhash_provider): Use numeric values for block size,
key size, hash size, etc, instead of function pointers.
2003-07-21 Alexandra Ellwood <lxs@mit.edu>
* krb5.hin: Export krb5_principal2salt.
2003-07-09 Alexandra Ellwood <lxs@mit.edu>
* krb5.hin: Export krb5_get_permitted_enctypes and
krb5_set_real_time for Samba.
2003-06-23 Ken Raeburn <raeburn@mit.edu>
* k5-int.h (struct krb5_cksumtypes): Add new field trunc_size.
2003-06-12 Tom Yu <tlyu@mit.edu>
* krb5.hin: krb524_init_ets() takes one argument.
2003-06-06 Ken Raeburn <raeburn@mit.edu>
* k5-int.h (struct srv_dns_entry): Declare.
(krb5int_make_srv_query_realm, krb5int_free_srv_dns_data):
Declare.
(struct _krb5int_access): Add make_srv_query_realm and
free_srv_dns_data fields.
2003-06-03 Ken Raeburn <raeburn@mit.edu>
* k5-int.h (struct _krb5int_access): Add locate_server back in.
2003-05-27 Ken Raeburn <raeburn@mit.edu>
* k5-int.h (KRB524_SERVICE, KRB524_PORT): Moved here...
* krb5.h: ...from here.
(krb5_524_convert_creds): Renamed from krb524_convert_creds_kdc,
fixed calling convention spec.
(krb524_convert_creds_kdc, krb524_init_ets) [KRB5_DEPRECATED]: New
macros.
* Makefile.in (clean-windows): Remove new "timestamp" file when
cleaning up.
2003-05-25 Ezra Peisach <epeisach@mit.edu>
* krb5.hin: Sequence number of krb5_replay_data should be unsigned.
2003-05-23 Ken Raeburn <raeburn@mit.edu>
* Makefile.in (krb5.h): Include krb524_err.h.
(krb524_err.h): Depend on rebuild-error-tables like krb5_err.h and
friends. Add a null command to cause make to recheck the
timestamp on the files possibly updated.
(clean-unix): Get rid of it.
* k5-int.h (KRb5INT_ACCESS_STRUCT_VERSION): Update to 7.
(struct ktext) [!defined(ANAME_SZ)]: Declare forward.
(krb5int_access): Delete krb5_locate_kdc, krb5_locate_server,
krb5_max_dgram_size and timeout fields. Add krb_life_to_time,
krb_time_to_life, and krb524_encode_v4tkt function pointer
fields. Reorder fields, and add comments.
(krb5int_krb_life_to_time, krb5int_krb_time_to_life,
krb5int_encode_v4tkt, krb5int_524_sendto_kdc): Declare.
* krb5.hin (KRB524_SERVICE, KRB524_PORT): New macros.
(struct credentials): Declare forward.
(krb524_convert_creds_kdc): Declare.
2003-05-22 Tom Yu <tlyu@mit.edu>
* k5-int.h: Add prototype for krb5int_auth_con_chkseqnum.
* krb5.hin: Default KRB5_DEPRECATED to 0. Default KRB5_PRIVATE to
0 on all platforms.
2003-05-22 Sam Hartman <hartmans@mit.edu>
* k5-int.h: krb5int_populate_gic_opt returns void
2003-05-19 Sam Hartman <hartmans@mit.edu>
* k5-int.h: Prototype krb5int_populate_gic_opt
2003-05-18 Tom Yu <tlyu@mit.edu>
* k5-int.h: Sequence numbers are now unsigned.
* krb5.hin: Sequence numbers are now unsigned.
2003-05-16 Ken Raeburn <raeburn@mit.edu>
* krb5.hin (KRB5_KPASSWD_ACCESSDENIED): New macro.
(KRB5_KPASSWD_BAD_VERSION, KRB5_KPASSWD_INITIAL_FLAG_NEEDED): New
macros.
2003-05-13 Sam Hartman <hartmans@mit.edu>
* k5-int.h: Add krb5int_copy_data_contents
2003-05-08 Sam Hartman <hartmans@mit.edu>
* krb5.hin: Add prototype for krb5_c_string_to_key_with_params
* k5-int.h: Add s2kparams to krb5_gic_get_as_key_fct
2003-05-07 Sam Hartman <hartmans@mit.edu>
* krb5.hin: Add KRB5_PADATA_ETYPE_INFO2
2003-05-09 Ken Raeburn <raeburn@mit.edu>
* k5-int.h (struct _krb5_context): New fields conf_tgs_ktypes,
conf_tgs_ktypes_count, use_conf_ktypes.
2003-05-09 Tom Yu <tlyu@mit.edu>
* krb5.hin: Add krb5_auth_con_getsendsubkey,
krb5_auth_con_getrecvsubkey, krb5_auth_con_setsendsubkey,
krb5_auth_con_setrecvsubkey. Mark krb5_auth_con_getlocalsubkey
and krb5_auth_con_getremotesubkey as deprecated.
2003-05-06 Sam Hartman <hartmans@mit.edu>