From 148d12ad31b03a813f4ffd9df14a85392aa74130 Mon Sep 17 00:00:00 2001 From: yuangongji <82787816@qq.com> Date: Thu, 19 Sep 2019 15:24:51 +0800 Subject: evutil_time: detect and use _gmtime64_s()/_gmtime64() --- evutil_time.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'evutil_time.c') diff --git a/evutil_time.c b/evutil_time.c index c3a23589..c576463b 100644 --- a/evutil_time.c +++ b/evutil_time.c @@ -158,18 +158,28 @@ evutil_date_rfc1123(char *date, const size_t datelen, const struct tm *tm) time_t t = time(NULL); -#ifndef _WIN32 +#if defined(EVENT__HAVE__GMTIME64_S) || !defined(_WIN32) struct tm sys; #endif /* If `tm` is null, set system's current time. */ if (tm == NULL) { -#ifdef _WIN32 - /** TODO: detect _gmtime64()/_gmtime64_s() */ - tm = gmtime(&t); -#else +#if !defined(_WIN32) gmtime_r(&t, &sys); tm = &sys; + /** detect _gmtime64()/_gmtime64_s() */ +#elif defined(EVENT__HAVE__GMTIME64_S) + errno_t err; + err = _gmtime64_s(&sys, &t); + if (err) { + event_errx(1, "Invalid argument to _gmtime64_s"); + } else { + tm = &sys; + } +#elif defined(EVENT__HAVE__GMTIME64) + tm = _gmtime64(&t); +#else + tm = gmtime(&t); #endif } -- cgit v1.2.1