Mercurial > hg > nginx
view src/os/win32/ngx_time.c @ 537:c9ad0d9c7d59 release-0.1.43
nginx-0.1.43-RELEASE import
*) Feature: the listen(2) backlog in the "listen" directive can be
changed using the -HUP signal.
*) Feature: the geo2nginx.pl script was added to contrib.
*) Change: the FastCGI parameters with the empty values now are passed
to a server.
*) Bugfix: the segmentation fault occurred or the worker process may
got caught in an endless loop if the proxied or FastCGI server sent
the "Cache-Control" header line and the "expires" directive was
used; in the proxied mode the the bug had appeared in 0.1.29.
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Tue, 30 Aug 2005 10:55:07 +0000 |
parents | 9b8c906f6e63 |
children | 9c2f3ed7a247 |
line wrap: on
line source
/* * Copyright (C) Igor Sysoev */ #include <ngx_config.h> #include <ngx_core.h> void ngx_gettimeofday(struct timeval *tp) { uint64_t intervals; FILETIME ft; GetSystemTimeAsFileTime(&ft); /* * A file time is a 64-bit value that represents the number * of 100-nanosecond intervals that have elapsed since * January 1, 1601 12:00 A.M. UTC. * * Between January 1, 1970 (Epoch) and January 1, 1601 there were * 134744 days, * 11644473600 seconds or * 11644473600,000,000,0 100-nanosecond intervals. * * See also MSKB Q167296. */ intervals = ((uint64_t) ft.dwHighDateTime << 32) | ft.dwLowDateTime; intervals -= 116444736000000000; tp->tv_sec = (long) (intervals / 10000000); tp->tv_usec = (long) ((intervals % 10000000) / 10); } void ngx_libc_localtime(struct tm *tm) { time_t now; struct tm *t; now = ngx_time(); t = localtime(&now); *tm = *t; } void ngx_libc_gmtime(struct tm *tm) { time_t now; struct tm *t; now = ngx_time(); t = gmtime(&now); *tm = *t; } ngx_int_t ngx_gettimezone(void) { TIME_ZONE_INFORMATION tz; if (GetTimeZoneInformation(&tz) != TIME_ZONE_ID_INVALID) { return -tz.Bias; } return 0; }