diff 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
line wrap: on
line diff
--- a/src/core/ngx_times.c
+++ b/src/core/ngx_times.c
@@ -70,12 +70,6 @@ ngx_time_update(time_t sec, ngx_uint_t m
         return;
     }
 
-    if (slot == NGX_TIME_SLOTS) {
-        slot = 0;
-    } else {
-        slot++;
-    }
-
     if (sec == 0) {
         ngx_gettimeofday(&tv);
 
@@ -87,14 +81,22 @@ ngx_time_update(time_t sec, ngx_uint_t m
 
     tp = &cached_time[slot];
 
-    tp->msec = msec;
-
     if (tp->sec == sec) {
+        tp->msec = msec;
         ngx_unlock(&ngx_time_lock);
         return;
     }
 
+    if (slot == NGX_TIME_SLOTS) {
+        slot = 0;
+    } else {
+        slot++;
+    }
+
+    tp = &cached_time[slot];
+
     tp->sec = sec;
+    tp->msec = msec;
 
     ngx_gmtime(sec, &gmt);