diff --git "a/lib/nghttp2_time.c" "b/lib/nghttp2_time.c" index 897556f..ab06684 100644 --- "a/lib/nghttp2_time.c" +++ "b/lib/nghttp2_time.c" @@ -32,31 +32,15 @@ # include #endif /* HAVE_SYSINFOAPI_H */ -#if !defined(HAVE_GETTICKCOUNT64) || defined(__CYGWIN__) -static uint64_t time_now_sec(void) { - time_t t = time(NULL); +uint64_t nghttp2_time_now_sec(void) +{ + FILETIME file_time; + ULARGE_INTEGER time_value; + + GetSystemTimeAsFileTime(&file_time); - if (t == -1) { - return 0; - } + time_value.LowPart = file_time.dwLowDateTime; + time_value.HighPart = file_time.dwHighDateTime; - return (uint64_t)t; + return time_value.QuadPart / 10000000ULL; } -#endif /* !HAVE_GETTICKCOUNT64 || __CYGWIN__ */ - -#if defined(HAVE_GETTICKCOUNT64) && !defined(__CYGWIN__) -uint64_t nghttp2_time_now_sec(void) { return GetTickCount64() / 1000; } -#elif defined(HAVE_CLOCK_GETTIME) -uint64_t nghttp2_time_now_sec(void) { - struct timespec tp; - int rv = clock_gettime(CLOCK_MONOTONIC, &tp); - - if (rv == -1) { - return time_now_sec(); - } - - return (uint64_t)tp.tv_sec; -} -#else /* (!HAVE_CLOCK_GETTIME || __CYGWIN__) && !HAVE_GETTICKCOUNT64 */ -uint64_t nghttp2_time_now_sec(void) { return time_now_sec(); } -#endif /* (!HAVE_CLOCK_GETTIME || __CYGWIN__) && !HAVE_GETTICKCOUNT64 */