- (dtucker) [misc.c] Fall back to time(2) at runtime if clock_gettime(
CLOCK_MONOTONIC...) fails. Some older versions of RHEL have the CLOCK_MONOTONIC define but don't actually support it. Found and tested by Kevin Brott, ok djm.
This commit is contained in:
parent
a5a3cbfa0f
commit
94396b7f06
|
@ -2,6 +2,10 @@
|
|||
- (dtucker) [regress/Makefile regress/test-exec.sh] Don't try to use test -nt
|
||||
since some platforms (eg really old FreeBSD) don't have it. Instead,
|
||||
run "make clean" before a complete regress run. ok djm.
|
||||
- (dtucker) [misc.c] Fall back to time(2) at runtime if clock_gettime(
|
||||
CLOCK_MONOTONIC...) fails. Some older versions of RHEL have the
|
||||
CLOCK_MONOTONIC define but don't actually support it. Found and tested
|
||||
by Kevin Brott, ok djm.
|
||||
|
||||
20130804
|
||||
- (dtucker) [auth-krb5.c configure.ac openbsd-compat/bsd-misc.h] Add support
|
||||
|
|
17
misc.c
17
misc.c
|
@ -854,19 +854,24 @@ ms_to_timeval(struct timeval *tv, int ms)
|
|||
tv->tv_usec = (ms % 1000) * 1000;
|
||||
}
|
||||
|
||||
#define clock_gettime(a,b) -1
|
||||
|
||||
time_t
|
||||
monotime(void)
|
||||
{
|
||||
#if defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC)
|
||||
struct timespec ts;
|
||||
static int gettime_failed = 0;
|
||||
|
||||
if (clock_gettime(CLOCK_MONOTONIC, &ts) != 0)
|
||||
fatal("clock_gettime: %s", strerror(errno));
|
||||
|
||||
return (ts.tv_sec);
|
||||
#else
|
||||
return time(NULL);
|
||||
if (!gettime_failed) {
|
||||
if (clock_gettime(CLOCK_MONOTONIC, &ts) == 0)
|
||||
return (ts.tv_sec);
|
||||
debug3("clock_gettime: %s", strerror(errno));
|
||||
gettime_failed = 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
return time(NULL);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
Loading…
Reference in New Issue