#ifdef HAVE_MACOS_SYS_TIMEX
#include <dlfcn.h>
#include "sys_netbsd.h"
-#include "sys_timex.h"
static int have_ntp_adjtime = 0;
-static int have_bad_adjtime = 0;
#endif
/* ================================================== */
/* ================================================== */
-#ifdef HAVE_MACOS_SYS_TIMEX
-/*
- Test adjtime() to see if Apple have fixed the signed/unsigned bug
-*/
-static int
-test_adjtime()
-{
- struct timeval tv1 = {-1, 0};
- struct timeval tv2 = {0, 0};
- struct timeval tv;
-
- if (PRV_AdjustTime(&tv1, &tv) != 0) {
- return 0;
- }
- if (PRV_AdjustTime(&tv2, &tv) != 0) {
- return 0;
- }
- if (tv.tv_sec < -1 || tv.tv_sec > 1) {
- return 0;
- }
- return 1;
-}
-#endif
-
-/* ================================================== */
-
void
SYS_MacOSX_Initialise(void)
{
#ifdef HAVE_MACOS_SYS_TIMEX
have_ntp_adjtime = (dlsym(RTLD_NEXT, "ntp_adjtime") != NULL);
if (have_ntp_adjtime) {
- have_bad_adjtime = !test_adjtime();
- if (have_bad_adjtime) {
- LOG(LOGS_WARN, "adjtime() is buggy - using timex driver");
- SYS_Timex_Initialise();
- } else {
- SYS_NetBSD_Initialise();
- }
+ SYS_NetBSD_Initialise();
return;
}
#endif
{
#ifdef HAVE_MACOS_SYS_TIMEX
if (have_ntp_adjtime) {
- if (have_bad_adjtime) {
- SYS_Timex_Finalise();
- } else {
- SYS_NetBSD_Finalise();
- }
+ SYS_NetBSD_Finalise();
return;
}
#endif