diff src/http/ngx_http_special_response.c @ 230:38e7b94d63ac NGINX_0_4_0

nginx 0.4.0 *) Change in internal API: the HTTP modules initialization was moved from the init module phase to the HTTP postconfiguration phase. *) Change: now the request body is not read beforehand for the ngx_http_perl_module: it's required to start the reading using the $r->has_request_body method. *) Feature: the ngx_http_perl_module supports the DECLINED return code. *) Feature: the ngx_http_dav_module supports the incoming "Date" header line for the PUT method. *) Feature: the "ssi" directive is available inside the "if" block. *) Bugfix: a segmentation fault occurred if there was an "index" directive with variables and the first index name was without variables; bug appeared in 0.1.29.
author Igor Sysoev <http://sysoev.ru>
date Wed, 30 Aug 2006 00:00:00 +0400
parents 9eebc1b2cdbb
children c982febb7588
line wrap: on
line diff
--- a/src/http/ngx_http_special_response.c
+++ b/src/http/ngx_http_special_response.c
@@ -307,7 +307,7 @@ ngx_http_special_response_handler(ngx_ht
     ngx_int_t                  rc;
     ngx_buf_t                 *b;
     ngx_str_t                 *uri, *location;
-    ngx_uint_t                 i, err, msie_padding;
+    ngx_uint_t                 i, n, err, msie_padding;
     ngx_chain_t               *out, *cl;
     ngx_http_err_page_t       *err_page;
     ngx_http_core_loc_conf_t  *clcf;
@@ -375,8 +375,23 @@ ngx_http_special_response_handler(ngx_ht
                     {
                         return NGX_ERROR;
                     }
+
+                    if (r->zero_in_uri) {
+                        for (n = 0; n < uri->len; n++) {
+                            if (uri->data[n] == '\0') {
+                                goto zero;
+                            }
+                        }
+
+                        r->zero_in_uri = 0;
+                    }
+
+                } else {
+                    r->zero_in_uri = 0;
                 }
 
+            zero:
+
                 if (uri->data[0] == '/') {
                     return ngx_http_internal_redirect(r, uri, NULL);
                 }