comparison 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
comparison
equal deleted inserted replaced
255:a13bad126e69 256:2e9c57a5e50a
1296 r->main->subrequests--; 1296 r->main->subrequests--;
1297 1297
1298 if (r->main->subrequests == 0) { 1298 if (r->main->subrequests == 0) {
1299 ngx_log_error(NGX_LOG_ERR, r->connection->log, 0, 1299 ngx_log_error(NGX_LOG_ERR, r->connection->log, 0,
1300 "subrequests cycle while processing \"%V\"", uri); 1300 "subrequests cycle while processing \"%V\"", uri);
1301 r->main->subrequests = 1;
1301 return NGX_ERROR; 1302 return NGX_ERROR;
1302 } 1303 }
1303 1304
1304 sr = ngx_pcalloc(r->pool, sizeof(ngx_http_request_t)); 1305 sr = ngx_pcalloc(r->pool, sizeof(ngx_http_request_t));
1305 if (sr == NULL) { 1306 if (sr == NULL) {
1414 ngx_http_handler(sr); 1415 ngx_http_handler(sr);
1415 1416
1416 if (!c->destroyed) { 1417 if (!c->destroyed) {
1417 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, c->log, 0, 1418 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, c->log, 0,
1418 "http subrequest done \"%V?%V\"", uri, &sr->args); 1419 "http subrequest done \"%V?%V\"", uri, &sr->args);
1420
1421 r->main->subrequests++;
1419 1422
1420 *psr = sr; 1423 *psr = sr;
1421 1424
1422 if (sr->fast_subrequest) { 1425 if (sr->fast_subrequest) {
1423 sr->fast_subrequest = 0; 1426 sr->fast_subrequest = 0;
2659 return NGX_CONF_OK; 2662 return NGX_CONF_OK;
2660 } 2663 }
2661 2664
2662 2665
2663 static ngx_http_method_name_t ngx_methods_names[] = { 2666 static ngx_http_method_name_t ngx_methods_names[] = {
2664 { "GET", (uint32_t) ~NGX_HTTP_GET }, 2667 { "GET", (uint32_t) ~NGX_HTTP_GET },
2665 { "HEAD", (uint32_t) ~NGX_HTTP_HEAD }, 2668 { "HEAD", (uint32_t) ~NGX_HTTP_HEAD },
2666 { "POST", (uint32_t) ~NGX_HTTP_POST }, 2669 { "POST", (uint32_t) ~NGX_HTTP_POST },
2670 { "PUT", (uint32_t) ~NGX_HTTP_PUT },
2671 { "DELETE", (uint32_t) ~NGX_HTTP_DELETE },
2672 { "MKCOL", (uint32_t) ~NGX_HTTP_MKCOL },
2673 { "COPY", (uint32_t) ~NGX_HTTP_COPY },
2674 { "MOVE", (uint32_t) ~NGX_HTTP_MOVE },
2675 { "OPTIONS", (uint32_t) ~NGX_HTTP_OPTIONS },
2676 { "PROPFIND" , (uint32_t) ~NGX_HTTP_PROPFIND },
2677 { "PROPPATCH", (uint32_t) ~NGX_HTTP_PROPPATCH },
2678 { "LOCK", (uint32_t) ~NGX_HTTP_LOCK },
2679 { "UNLOCK", (uint32_t) ~NGX_HTTP_UNLOCK },
2667 { NULL, 0 } 2680 { NULL, 0 }
2668 }; 2681 };
2669 2682
2670 2683
2671 static char * 2684 static char *