changeset 545:0148586012ab release-0.2.1

nginx-0.2.1-RELEASE import *) Bugfix: if all backend using in load-balancing failed after one error, then nginx may got caught in an endless loop; the bug had appeared in 0.2.0.
author Igor Sysoev <igor@sysoev.ru>
date Fri, 23 Sep 2005 14:43:49 +0000
parents a65976d924b7
children a292162e6680
files docs/xml/nginx/changes.xml src/core/nginx.h src/core/ngx_conf_file.h src/event/ngx_event_connect.c
diffstat 4 files changed, 25 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/docs/xml/nginx/changes.xml
+++ b/docs/xml/nginx/changes.xml
@@ -9,6 +9,24 @@
 <title lang="en">nginx changelog</title>
 
 
+<changes ver="0.2.1" date="23.09.2005">
+
+<change type="bugfix">
+<para lang="ru">
+если все бэкенды, используемые для балансировки нагрузки, оказывались
+в нерабочем состоянии после одной ошибки, то nginx мог зациклится;
+ошибка появилась в 0.2.0.
+</para>
+<para lang="en">
+if all backend using in load-balancing failed after one error, then
+nginx may got caught in an endless loop;
+bug appeared in 0.2.0.
+</para>
+</change>
+
+</changes>
+
+
 <changes ver="0.2.0" date="23.09.2005">
 
 <change>
@@ -104,7 +122,6 @@ nginx did not try do connect to them dur
 </para>
 <para lang="en">
 in IMAP/POP3 command argument parsing.
-Thanks to Rob Mueller.
 </para>
 </change>
 
--- a/src/core/nginx.h
+++ b/src/core/nginx.h
@@ -8,7 +8,7 @@
 #define _NGINX_H_INCLUDED_
 
 
-#define NGINX_VER          "nginx/0.2.0"
+#define NGINX_VER          "nginx/0.2.1"
 
 #define NGINX_VAR          "NGINX"
 #define NGX_OLDPID_EXT     ".oldbin"
--- a/src/core/ngx_conf_file.h
+++ b/src/core/ngx_conf_file.h
@@ -97,19 +97,20 @@ struct ngx_open_file_s {
 };
 
 
-#define NGX_MODULE_V1          0, 0, 1, 0, 0, 0, 0
+#define NGX_MODULE_V1          0, 0, 0, 0, 0, 0, 1
 #define NGX_MODULE_V1_PADDING  0, 0, 0, 0, 0, 0, 0, 0
 
 struct ngx_module_s {
     ngx_uint_t            ctx_index;
     ngx_uint_t            index;
-    ngx_uint_t            version;
 
     ngx_uint_t            spare0;
     ngx_uint_t            spare1;
     ngx_uint_t            spare2;
     ngx_uint_t            spare3;
 
+    ngx_uint_t            version;
+
     void                 *ctx;
     ngx_command_t        *commands;
     ngx_uint_t            type;
--- a/src/event/ngx_event_connect.c
+++ b/src/event/ngx_event_connect.c
@@ -360,5 +360,7 @@ ngx_event_connect_peer_failed(ngx_peer_c
         pc->cur_peer = 0;
     }
 
-    pc->tries--;
+    if (pc->tries) {
+        pc->tries--;
+    }
 }