comparison src/os/unix/ngx_time.c @ 112:408f195b3482 NGINX_0_3_3

nginx 0.3.3 *) 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; bug 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 <http://sysoev.ru>
date Wed, 19 Oct 2005 00:00:00 +0400
parents 818201e5a553
children a094317ba307
comparison
equal deleted inserted replaced
111:a175b609c76d 112:408f195b3482
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 }