+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
#ifndef _KRB5_INT_H
#define _KRB5_INT_H
+#ifdef KRB5_GENERAL__
+#error krb5.h included before k5-int.h
+#endif /* KRB5_GENERAL__ */
+
#include "osconf.h"
/*
/* From krb5/os but needed but by the outside world */
krb5_error_code KRB5_CALLCONV krb5_us_timeofday
(krb5_context,
- krb5_int32 *,
+ krb5_timestamp *,
krb5_int32 * );
krb5_error_code KRB5_CALLCONV krb5_timeofday
(krb5_context,
- krb5_int32 * );
+ krb5_timestamp * );
/* get all the addresses of this host */
krb5_error_code KRB5_CALLCONV krb5_os_localaddr
(krb5_context,
#endif
krb5_error_code KRB5_CALLCONV krb5_set_real_time
- (krb5_context, krb5_int32, krb5_int32);
+ (krb5_context, krb5_timestamp, krb5_int32);
#if KRB5_PRIVATE
krb5_error_code krb5_set_debugging_time
- (krb5_context, krb5_int32, krb5_int32);
+ (krb5_context, krb5_timestamp, krb5_int32);
krb5_error_code krb5_use_natural_time
(krb5_context);
#endif
krb5_error_code KRB5_CALLCONV krb5_get_time_offsets
- (krb5_context, krb5_int32 *, krb5_int32 *);
+ (krb5_context, krb5_timestamp *, krb5_int32 *);
#if KRB5_PRIVATE
krb5_error_code krb5_set_time_offsets
- (krb5_context, krb5_int32, krb5_int32);
+ (krb5_context, krb5_timestamp, krb5_int32);
#endif
/* str_conv.c */
#include <limits.h>
#ifndef SIZE_MAX /* in case Microsoft defines max size of size_t */
+#ifdef MAX_SIZE /* Microsoft defines MAX_SIZE as max size of size_t */
+#define SIZE_MAX MAX_SIZE
+#else
#define SIZE_MAX UINT_MAX
#endif
+#endif
+
+/* To ensure backward compatibility of the ABI use 32-bit time_t on
+ * 32-bit Windows.
+ */
+#ifdef _KRB5_INT_H
+#ifdef KRB5_GENERAL__
+#error krb5.h included before k5-int.h
+#endif /* KRB5_GENERAL__ */
+#if _INTEGRAL_MAX_BITS >= 64 && _MSC_VER >= 1400 && !defined(_WIN64) && !defined(_USE_32BIT_TIME_T)
+#if defined(_TIME_T_DEFINED) || defined(_INC_IO) || defined(_INC_TIME) || defined(_INC_WCHAR)
+#error time_t has been defined as a 64-bit integer which is incompatible with Kerberos on this platform.
+#endif /* _TIME_T_DEFINED */
+#define _USE_32BIT_TIME_T
+#endif
+#endif
#ifndef KRB5_CALLCONV
# define KRB5_CALLCONV __stdcall
#ifndef KRB5_SYSTYPES__
#define KRB5_SYSTYPES__
#include <sys/types.h>
-typedef unsigned long u_long; /* Not part of sys/types.h on the pc */
-typedef unsigned int u_int;
-typedef unsigned short u_short;
-typedef unsigned char u_char;
-typedef unsigned int uint32_t;
-typedef int int32_t;
+typedef unsigned long u_long; /* Not part of sys/types.h on the pc */
+typedef unsigned int u_int;
+typedef unsigned short u_short;
+typedef unsigned char u_char;
+typedef unsigned int uint32_t;
+typedef int int32_t;
+#if _INTEGRAL_MAX_BITS >= 64
+typedef unsigned __int64 uint64_t;
+typedef __int64 int64_t;
+#endif
#endif /* KRB5_SYSTYPES__ */
#define MAXHOSTNAMELEN 512
+2005-11-14 Jeffrey Altman <jaltman@mit.edu>
+
+ * toffset.c: (krb5_set_real_time, krb5_set_debugging_time,
+ krb5_get_time_offsets, krb5_set_time_offsets)
+ * timeofday.c:(krb5_timeofday)
+ * ustime.c: (krb5_us_timeofday)
+
+ Change type of "seconds" parameter from krb5_int32 to krb5_timestamp
+ This does not alter the ABI on existing platforms but will provide
+ consistency when we need to consider changing krb5_timestamp to a
+ 64-bit value.
+
2005-09-16 Tom Yu <tlyu@mit.edu>
* dnsglue.c (USE_RES_NINIT): Fix braino: define to 1, not empty
#include <time.h>
krb5_error_code KRB5_CALLCONV
-krb5_timeofday(krb5_context context, register krb5_int32 *timeret)
+krb5_timeofday(krb5_context context, register krb5_timestamp *timeret)
{
krb5_os_context os_ctx = context->os_context;
time_t tval;
* routine
*/
krb5_error_code KRB5_CALLCONV
-krb5_set_real_time(krb5_context context, krb5_int32 seconds, krb5_int32 microseconds)
+krb5_set_real_time(krb5_context context, krb5_timestamp seconds, krb5_int32 microseconds)
{
krb5_os_context os_ctx = context->os_context;
krb5_int32 sec, usec;
* is useful for running the krb5 routines through test suites
*/
krb5_error_code
-krb5_set_debugging_time(krb5_context context, krb5_int32 seconds, krb5_int32 microseconds)
+krb5_set_debugging_time(krb5_context context, krb5_timestamp seconds, krb5_int32 microseconds)
{
krb5_os_context os_ctx = context->os_context;
* This routine returns the current time offsets in use.
*/
krb5_error_code KRB5_CALLCONV
-krb5_get_time_offsets(krb5_context context, krb5_int32 *seconds, krb5_int32 *microseconds)
+krb5_get_time_offsets(krb5_context context, krb5_timestamp *seconds, krb5_int32 *microseconds)
{
krb5_os_context os_ctx = context->os_context;
* This routine sets the time offsets directly.
*/
krb5_error_code
-krb5_set_time_offsets(krb5_context context, krb5_int32 seconds, krb5_int32 microseconds)
+krb5_set_time_offsets(krb5_context context, krb5_timestamp seconds, krb5_int32 microseconds)
{
krb5_os_context os_ctx = context->os_context;
#include "k5-int.h"
krb5_error_code KRB5_CALLCONV
-krb5_us_timeofday(krb5_context context, krb5_int32 *seconds, krb5_int32 *microseconds)
+krb5_us_timeofday(krb5_context context, krb5_timestamp *seconds, krb5_int32 *microseconds)
{
krb5_os_context os_ctx = context->os_context;
krb5_int32 sec, usec;