Mercurial > hg > nginx-vendor-0-7
comparison src/http/ngx_http_core_module.c @ 426:e7dbea1ee115 NGINX_0_7_25
nginx 0.7.25
*) Change: in subrequest processing.
*) Change: now POSTs without "Content-Length" header line are allowed.
*) Bugfix: now the "limit_req" and "limit_conn" directives log a
prohibition reason.
*) Bugfix: in the "delete" parameter of the "geo" directive.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Mon, 08 Dec 2008 00:00:00 +0300 |
parents | 9da1d9d94d18 |
children | dac47e9ef0d5 |
comparison
equal
deleted
inserted
replaced
425:f64d9e30046c | 426:e7dbea1ee115 |
---|---|
1829 ngx_str_t *uri, ngx_str_t *args, ngx_http_request_t **psr, | 1829 ngx_str_t *uri, ngx_str_t *args, ngx_http_request_t **psr, |
1830 ngx_http_post_subrequest_t *ps, ngx_uint_t flags) | 1830 ngx_http_post_subrequest_t *ps, ngx_uint_t flags) |
1831 { | 1831 { |
1832 ngx_connection_t *c; | 1832 ngx_connection_t *c; |
1833 ngx_http_request_t *sr; | 1833 ngx_http_request_t *sr; |
1834 ngx_http_log_ctx_t *ctx; | |
1835 ngx_http_core_srv_conf_t *cscf; | 1834 ngx_http_core_srv_conf_t *cscf; |
1836 ngx_http_postponed_request_t *pr, *p; | 1835 ngx_http_postponed_request_t *pr, *p; |
1837 | 1836 |
1838 r->main->subrequests--; | 1837 r->main->subrequests--; |
1839 | 1838 |
1894 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, c->log, 0, | 1893 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, c->log, 0, |
1895 "http subrequest \"%V?%V\"", uri, &sr->args); | 1894 "http subrequest \"%V?%V\"", uri, &sr->args); |
1896 | 1895 |
1897 sr->zero_in_uri = (flags & NGX_HTTP_ZERO_IN_URI) != 0; | 1896 sr->zero_in_uri = (flags & NGX_HTTP_ZERO_IN_URI) != 0; |
1898 sr->subrequest_in_memory = (flags & NGX_HTTP_SUBREQUEST_IN_MEMORY) != 0; | 1897 sr->subrequest_in_memory = (flags & NGX_HTTP_SUBREQUEST_IN_MEMORY) != 0; |
1898 sr->waited = (flags & NGX_HTTP_SUBREQUEST_WAITED) != 0; | |
1899 | 1899 |
1900 sr->unparsed_uri = r->unparsed_uri; | 1900 sr->unparsed_uri = r->unparsed_uri; |
1901 sr->method_name = ngx_http_core_get_method; | 1901 sr->method_name = ngx_http_core_get_method; |
1902 sr->http_protocol = r->http_protocol; | 1902 sr->http_protocol = r->http_protocol; |
1903 | 1903 |
1907 | 1907 |
1908 sr->main = r->main; | 1908 sr->main = r->main; |
1909 sr->parent = r; | 1909 sr->parent = r; |
1910 sr->post_subrequest = ps; | 1910 sr->post_subrequest = ps; |
1911 sr->read_event_handler = ngx_http_request_empty_handler; | 1911 sr->read_event_handler = ngx_http_request_empty_handler; |
1912 sr->write_event_handler = ngx_http_request_empty_handler; | 1912 sr->write_event_handler = ngx_http_handler; |
1913 | 1913 |
1914 if (c->data == r) { | 1914 if (c->data == r) { |
1915 c->data = sr; | 1915 c->data = sr; |
1916 } | 1916 } |
1917 | 1917 |
1938 | 1938 |
1939 } else { | 1939 } else { |
1940 r->postponed = pr; | 1940 r->postponed = pr; |
1941 } | 1941 } |
1942 | 1942 |
1943 ctx = c->log->data; | |
1944 ctx->current_request = sr; | |
1945 | |
1946 sr->internal = 1; | 1943 sr->internal = 1; |
1947 sr->fast_subrequest = 1; | |
1948 | 1944 |
1949 sr->discard_body = r->discard_body; | 1945 sr->discard_body = r->discard_body; |
1950 sr->main_filter_need_in_memory = r->main_filter_need_in_memory; | 1946 sr->main_filter_need_in_memory = r->main_filter_need_in_memory; |
1951 | 1947 |
1952 sr->uri_changes = NGX_HTTP_MAX_URI_CHANGES + 1; | 1948 sr->uri_changes = NGX_HTTP_MAX_URI_CHANGES + 1; |
1953 | 1949 |
1954 ngx_http_handler(sr); | 1950 r->main->subrequests++; |
1955 | 1951 |
1956 if (!c->destroyed) { | 1952 *psr = sr; |
1957 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, c->log, 0, | 1953 |
1958 "http subrequest done \"%V?%V\"", uri, &sr->args); | 1954 return ngx_http_post_request(sr); |
1959 | |
1960 r->main->subrequests++; | |
1961 | |
1962 *psr = sr; | |
1963 | |
1964 if (sr->fast_subrequest) { | |
1965 sr->fast_subrequest = 0; | |
1966 | |
1967 if (sr->done) { | |
1968 return NGX_OK; | |
1969 } | |
1970 } | |
1971 | |
1972 return NGX_AGAIN; | |
1973 } | |
1974 | |
1975 return NGX_DONE; | |
1976 } | 1955 } |
1977 | 1956 |
1978 | 1957 |
1979 ngx_int_t | 1958 ngx_int_t |
1980 ngx_http_internal_redirect(ngx_http_request_t *r, | 1959 ngx_http_internal_redirect(ngx_http_request_t *r, |