diff src/http/ngx_http_core_module.c @ 256:2e9c57a5e50a NGINX_0_4_13

nginx 0.4.13 *) Feature: the "proxy_pass" directive may be used inside the "limit_except" block. *) Feature: the "limit_except" directive supports all WebDAV methods. *) Bugfix: if the "add_before_body" directive was used without the "add_after_body" directive, then an response did not transferred complete. *) Bugfix: a large request body did not receive if the epoll method and the deferred accept() were used. *) Bugfix: a charset could not be set for ngx_http_autoindex_module responses; bug appeared in 0.3.50. *) Bugfix: the "[alert] zero size buf" error when FastCGI server was used; *) Bugfix: the --group= configuration parameter was ignored. Thanks to Thomas Moschny. *) Bugfix: the 50th subrequest in SSI response did not work; bug appeared in 0.3.50.
author Igor Sysoev <http://sysoev.ru>
date Wed, 15 Nov 2006 00:00:00 +0300
parents 644510700914
children 251bcd11a5b8
line wrap: on
line diff
--- a/src/http/ngx_http_core_module.c
+++ b/src/http/ngx_http_core_module.c
@@ -1298,6 +1298,7 @@ ngx_http_subrequest(ngx_http_request_t *
     if (r->main->subrequests == 0) {
         ngx_log_error(NGX_LOG_ERR, r->connection->log, 0,
                       "subrequests cycle while processing \"%V\"", uri);
+        r->main->subrequests = 1;
         return NGX_ERROR;
     }
 
@@ -1417,6 +1418,8 @@ ngx_http_subrequest(ngx_http_request_t *
         ngx_log_debug2(NGX_LOG_DEBUG_HTTP, c->log, 0,
                        "http subrequest done \"%V?%V\"", uri, &sr->args);
 
+        r->main->subrequests++;
+
         *psr = sr;
 
         if (sr->fast_subrequest) {
@@ -2661,9 +2664,19 @@ ngx_http_core_root(ngx_conf_t *cf, ngx_c
 
 
 static ngx_http_method_name_t  ngx_methods_names[] = {
-   { "GET",  (uint32_t) ~NGX_HTTP_GET },
-   { "HEAD", (uint32_t) ~NGX_HTTP_HEAD },
-   { "POST", (uint32_t) ~NGX_HTTP_POST },
+   { "GET",       (uint32_t) ~NGX_HTTP_GET },
+   { "HEAD",      (uint32_t) ~NGX_HTTP_HEAD },
+   { "POST",      (uint32_t) ~NGX_HTTP_POST },
+   { "PUT",       (uint32_t) ~NGX_HTTP_PUT },
+   { "DELETE",    (uint32_t) ~NGX_HTTP_DELETE },
+   { "MKCOL",     (uint32_t) ~NGX_HTTP_MKCOL },
+   { "COPY",      (uint32_t) ~NGX_HTTP_COPY },
+   { "MOVE",      (uint32_t) ~NGX_HTTP_MOVE },
+   { "OPTIONS",   (uint32_t) ~NGX_HTTP_OPTIONS },
+   { "PROPFIND" , (uint32_t) ~NGX_HTTP_PROPFIND },
+   { "PROPPATCH", (uint32_t) ~NGX_HTTP_PROPPATCH },
+   { "LOCK",      (uint32_t) ~NGX_HTTP_LOCK },
+   { "UNLOCK",    (uint32_t) ~NGX_HTTP_UNLOCK },
    { NULL, 0 }
 };