# HG changeset patch # User Igor Sysoev # Date 1240168129 0 # Node ID 9fd2f12fee0a40353a1a3b3871762f65789bef33 # Parent 53be1d485af9ebed32c75a367d9cee07f2e33e58 fix Win32 ngx_gettimezone() diff --git a/src/os/win32/ngx_time.c b/src/os/win32/ngx_time.c --- a/src/os/win32/ngx_time.c +++ b/src/os/win32/ngx_time.c @@ -60,11 +60,23 @@ ngx_libc_gmtime(time_t s, struct tm *tm) ngx_int_t ngx_gettimezone(void) { + u_long n; TIME_ZONE_INFORMATION tz; - if (GetTimeZoneInformation(&tz) != TIME_ZONE_ID_INVALID) { + n = GetTimeZoneInformation(&tz); + + switch (n) { + + case TIME_ZONE_ID_UNKNOWN: return -tz.Bias; + + case TIME_ZONE_ID_STANDARD: + return -(tz.Bias + tz.StandardBias); + + case TIME_ZONE_ID_DAYLIGHT: + return -(tz.Bias + tz.DaylightBias); + + default: /* TIME_ZONE_ID_INVALID */ + return 0; } - - return 0; }