Mercurial > hg > nginx-vendor-0-6
comparison src/core/ngx_times.c @ 262:e0b1d0a6c629 NGINX_0_5_1
nginx 0.5.1
*) Bugfix: the "post_action" directive might not run after a
unsuccessful completion of a request.
*) Workaround: for Eudora for Mac; bug appeared in 0.4.11.
Thanks to Bron Gondwana.
*) Bugfix: if the "upstream" name was used in the "fastcgi_pass", then
the message "no port in upstream" was issued; bug appeared in 0.5.0.
*) Bugfix: if the "proxy_pass" and "fastcgi_pass" directives used the
same servers but different ports, then these directives uses the
first described port; bug appeared in 0.5.0.
*) Bugfix: if the "proxy_pass" and "fastcgi_pass" directives used the
unix domain sockets, then these directives used first described
socket; bug appeared in 0.5.0.
*) Bugfix: ngx_http_auth_basic_module ignored the user if it was in the
last line in the password file and there was no the carriage return,
the line feed, or the ":" symbol after the password.
*) Bugfix: the $upstream_response_time variable might be equal to
"0.000", although response time was more than 1 millisecond.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Mon, 11 Dec 2006 00:00:00 +0300 |
parents | 408f195b3482 |
children | 6eb1e38f0f1f |
comparison
equal
deleted
inserted
replaced
261:e6ae240d5952 | 262:e0b1d0a6c629 |
---|---|
68 | 68 |
69 if (!ngx_trylock(&ngx_time_lock)) { | 69 if (!ngx_trylock(&ngx_time_lock)) { |
70 return; | 70 return; |
71 } | 71 } |
72 | 72 |
73 if (sec == 0) { | |
74 ngx_gettimeofday(&tv); | |
75 | |
76 sec = tv.tv_sec; | |
77 msec = tv.tv_usec / 1000; | |
78 } | |
79 | |
80 ngx_current_msec = (ngx_msec_t) sec * 1000 + msec; | |
81 | |
82 tp = &cached_time[slot]; | |
83 | |
84 if (tp->sec == sec) { | |
85 tp->msec = msec; | |
86 ngx_unlock(&ngx_time_lock); | |
87 return; | |
88 } | |
89 | |
73 if (slot == NGX_TIME_SLOTS) { | 90 if (slot == NGX_TIME_SLOTS) { |
74 slot = 0; | 91 slot = 0; |
75 } else { | 92 } else { |
76 slot++; | 93 slot++; |
77 } | 94 } |
78 | 95 |
79 if (sec == 0) { | |
80 ngx_gettimeofday(&tv); | |
81 | |
82 sec = tv.tv_sec; | |
83 msec = tv.tv_usec / 1000; | |
84 } | |
85 | |
86 ngx_current_msec = (ngx_msec_t) sec * 1000 + msec; | |
87 | |
88 tp = &cached_time[slot]; | 96 tp = &cached_time[slot]; |
89 | 97 |
98 tp->sec = sec; | |
90 tp->msec = msec; | 99 tp->msec = msec; |
91 | |
92 if (tp->sec == sec) { | |
93 ngx_unlock(&ngx_time_lock); | |
94 return; | |
95 } | |
96 | |
97 tp->sec = sec; | |
98 | 100 |
99 ngx_gmtime(sec, &gmt); | 101 ngx_gmtime(sec, &gmt); |
100 | 102 |
101 | 103 |
102 p0 = cached_http_time[slot]; | 104 p0 = cached_http_time[slot]; |