Mercurial > hg > nginx-quic
comparison src/os/unix/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 | dadfa78d2270 |
children | bf38420c9e25 |
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_localtime(ngx_tm_t *tm) | 11 void |
12 ngx_localtime(time_t s, ngx_tm_t *tm) | |
12 { | 13 { |
13 #if (NGX_HAVE_LOCALTIME_R) | 14 #if (NGX_HAVE_LOCALTIME_R) |
14 time_t now; | 15 (void) localtime_r(&s, tm); |
15 | |
16 now = ngx_time(); | |
17 (void) localtime_r(&now, tm); | |
18 | 16 |
19 #else | 17 #else |
20 time_t now; | |
21 ngx_tm_t *t; | 18 ngx_tm_t *t; |
22 | 19 |
23 now = ngx_time(); | 20 t = localtime(&s); |
24 t = localtime(&now); | |
25 *tm = *t; | 21 *tm = *t; |
26 | 22 |
27 #endif | 23 #endif |
28 | 24 |
29 tm->ngx_tm_mon++; | 25 tm->ngx_tm_mon++; |
30 tm->ngx_tm_year += 1900; | 26 tm->ngx_tm_year += 1900; |
31 } | 27 } |
32 | 28 |
33 | 29 |
34 void ngx_libc_localtime(struct tm *tm) | 30 void |
31 ngx_libc_localtime(time_t s, struct tm *tm) | |
35 { | 32 { |
36 #if (NGX_HAVE_LOCALTIME_R) | 33 #if (NGX_HAVE_LOCALTIME_R) |
37 time_t now; | 34 (void) localtime_r(&s, tm); |
38 | |
39 now = ngx_time(); | |
40 (void) localtime_r(&now, tm); | |
41 | 35 |
42 #else | 36 #else |
43 time_t now; | |
44 struct tm *t; | 37 struct tm *t; |
45 | 38 |
46 now = ngx_time(); | 39 t = localtime(&s); |
47 t = localtime(&now); | |
48 *tm = *t; | 40 *tm = *t; |
49 | 41 |
50 #endif | 42 #endif |
51 } | 43 } |
52 | 44 |
53 | 45 |
54 void ngx_libc_gmtime(struct tm *tm) | 46 void |
47 ngx_libc_gmtime(time_t s, struct tm *tm) | |
55 { | 48 { |
56 #if (NGX_HAVE_LOCALTIME_R) | 49 #if (NGX_HAVE_LOCALTIME_R) |
57 time_t now; | 50 (void) gmtime_r(&s, tm); |
58 | |
59 now = ngx_time(); | |
60 (void) gmtime_r(&now, tm); | |
61 | 51 |
62 #else | 52 #else |
63 time_t now; | |
64 struct tm *t; | 53 struct tm *t; |
65 | 54 |
66 now = ngx_time(); | 55 t = gmtime(&s); |
67 t = gmtime(&now); | |
68 *tm = *t; | 56 *tm = *t; |
69 | 57 |
70 #endif | 58 #endif |
71 } | 59 } |