comparison src/os/win32/ngx_time.c @ 563:9c2f3ed7a247 release-0.3.3

nginx-0.3.3-RELEASE import *) Change: the "bl" and "af" parameters of the "listen" directive was renamed to the "backlog" and "accept_filter". *) Feature: the "rcvbuf" and "sndbuf" parameters of the "listen" directive. *) Change: the "$msec" log parameter does not require now the additional the gettimeofday() system call. *) Feature: the -t switch now tests the "listen" directives. *) Bugfix: if the invalid address was specified in the "listen" directive, then after the -HUP signal nginx left an open socket in the CLOSED state. *) Bugfix: the mime type may be incorrectly set to default value for index file with variable in the name; the bug had appeared in 0.3.0. *) Feature: the "timer_resolution" directive. *) Feature: the millisecond "$upstream_response_time" log parameter. *) Bugfix: a temporary file with client request body now is removed just after the response header was transferred to a client. *) Bugfix: OpenSSL 0.9.6 compatibility. *) Bugfix: the SSL certificate and key file paths could not be relative. *) Bugfix: the "ssl_prefer_server_ciphers" directive did not work in the ngx_imap_ssl_module. *) Bugfix: the "ssl_protocols" directive allowed to specify the single protocol only.
author Igor Sysoev <igor@sysoev.ru>
date Wed, 19 Oct 2005 12:33:58 +0000
parents 9b8c906f6e63
children 9fd2f12fee0a
comparison
equal deleted inserted replaced
562:4b6108f69026 563:9c2f3ed7a247
6 6
7 #include <ngx_config.h> 7 #include <ngx_config.h>
8 #include <ngx_core.h> 8 #include <ngx_core.h>
9 9
10 10
11 void ngx_gettimeofday(struct timeval *tp) 11 void
12 ngx_gettimeofday(struct timeval *tp)
12 { 13 {
13 uint64_t intervals; 14 uint64_t intervals;
14 FILETIME ft; 15 FILETIME ft;
15 16
16 GetSystemTimeAsFileTime(&ft); 17 GetSystemTimeAsFileTime(&ft);
34 tp->tv_sec = (long) (intervals / 10000000); 35 tp->tv_sec = (long) (intervals / 10000000);
35 tp->tv_usec = (long) ((intervals % 10000000) / 10); 36 tp->tv_usec = (long) ((intervals % 10000000) / 10);
36 } 37 }
37 38
38 39
39 void ngx_libc_localtime(struct tm *tm) 40 void
41 ngx_libc_localtime(time_t s, struct tm *tm)
40 { 42 {
41 time_t now;
42 struct tm *t; 43 struct tm *t;
43 44
44 now = ngx_time(); 45 t = localtime(&s);
45 t = localtime(&now);
46 *tm = *t; 46 *tm = *t;
47 } 47 }
48 48
49 49
50 void ngx_libc_gmtime(struct tm *tm) 50 void
51 ngx_libc_gmtime(time_t s, struct tm *tm)
51 { 52 {
52 time_t now;
53 struct tm *t; 53 struct tm *t;
54 54
55 now = ngx_time(); 55 t = gmtime(&s);
56 t = gmtime(&now);
57 *tm = *t; 56 *tm = *t;
58 } 57 }
59 58
60 59
61 ngx_int_t ngx_gettimezone(void) 60 ngx_int_t
61 ngx_gettimezone(void)
62 { 62 {
63 TIME_ZONE_INFORMATION tz; 63 TIME_ZONE_INFORMATION tz;
64 64
65 if (GetTimeZoneInformation(&tz) != TIME_ZONE_ID_INVALID) { 65 if (GetTimeZoneInformation(&tz) != TIME_ZONE_ID_INVALID) {
66 return -tz.Bias; 66 return -tz.Bias;