From: Guus Sliepen Date: Mon, 21 Jan 2013 15:12:18 +0000 (+0100) Subject: Get microsecond time resolution on Windows. X-Git-Tag: import-tinc-1.1~188 X-Git-Url: https://git.meshlink.io/?a=commitdiff_plain;h=87416bcd8bd3e8816750150e2dbe90a970400a00;p=meshlink Get microsecond time resolution on Windows. --- diff --git a/src/dropin.c b/src/dropin.c index f1a51ac8..ab3fd6bb 100644 --- a/src/dropin.c +++ b/src/dropin.c @@ -158,8 +158,18 @@ int vasprintf(char **buf, const char *fmt, va_list ap) { #ifndef HAVE_GETTIMEOFDAY int gettimeofday(struct timeval *tv, void *tz) { +#ifdef HAVE_MINGW + FILETIME ft; + GetSystemTimeAsFileTime(&ft); + uint64_t lt = (uint64_t)ft.dwLowDateTime | ((uint64_t)ft.dwHighDateTime << 32); + lt -= 116444736000000000ULL; + tv->tv_sec = lt / 10000000; + tv->tv_usec = (lt / 10) % 1000000; +#else +#warning No high resolution time source! tv->tv_sec = time(NULL); tv->tv_usec = 0; +#endif return 0; } #endif