comparison src/http/ngx_http_request.c @ 330:c60beecc6ab5 NGINX_0_5_35

nginx 0.5.35 *) Change: now the ngx_http_userid_module adds start time microseconds to the cookie field contains a pid value. *) Change: now the uname(2) is used on Linux instead of procfs. Thanks to Ilya Novikov. *) Feature: the "If-Range" request header line support. Thanks to Alexander V. Inyukhin. *) Bugfix: in HTTPS mode requests might fail with the "bad write retry" error; bug appeared in 0.5.13. *) Bugfix: the STARTTLS in SMTP mode did not work. Thanks to Oleg Motienko. *) Bugfix: large_client_header_buffers did not freed before going to keep-alive state. Thanks to Olexander Shtepa. *) Bugfix: the "limit_rate" directive did not allow to use full throughput, even if limit value was very high. *) Bugfix: the $status variable was equal to 0 if a proxied server returned response in HTTP/0.9 version. *) Bugfix: if the "?" character was in a "error_page" directive, then it was escaped in a proxied request; bug appeared in 0.5.32.
author Igor Sysoev <http://sysoev.ru>
date Tue, 08 Jan 2008 00:00:00 +0300
parents 26ff8d6b618d
children 42974b9e97b5
comparison
equal deleted inserted replaced
329:d792b2cd78fe 330:c60beecc6ab5
94 offsetof(ngx_http_headers_in_t, content_type), 94 offsetof(ngx_http_headers_in_t, content_type),
95 ngx_http_process_header_line }, 95 ngx_http_process_header_line },
96 96
97 { ngx_string("Range"), offsetof(ngx_http_headers_in_t, range), 97 { ngx_string("Range"), offsetof(ngx_http_headers_in_t, range),
98 ngx_http_process_header_line }, 98 ngx_http_process_header_line },
99
100 { ngx_string("If-Range"),
101 offsetof(ngx_http_headers_in_t, if_range),
102 ngx_http_process_unique_header_line },
99 103
100 { ngx_string("Transfer-Encoding"), 104 { ngx_string("Transfer-Encoding"),
101 offsetof(ngx_http_headers_in_t, transfer_encoding), 105 offsetof(ngx_http_headers_in_t, transfer_encoding),
102 ngx_http_process_header_line }, 106 ngx_http_process_header_line },
103 107
2079 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, c->log, 0, "hc free: %p %d", 2083 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, c->log, 0, "hc free: %p %d",
2080 hc->free, hc->nfree); 2084 hc->free, hc->nfree);
2081 2085
2082 if (hc->free) { 2086 if (hc->free) {
2083 for (i = 0; i < hc->nfree; i++) { 2087 for (i = 0; i < hc->nfree; i++) {
2084 ngx_pfree(c->pool, hc->free[i]); 2088 ngx_pfree(c->pool, hc->free[i]->start);
2085 hc->free[i] = NULL; 2089 hc->free[i] = NULL;
2086 } 2090 }
2087 2091
2088 hc->nfree = 0; 2092 hc->nfree = 0;
2089 } 2093 }
2091 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, c->log, 0, "hc busy: %p %d", 2095 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, c->log, 0, "hc busy: %p %d",
2092 hc->busy, hc->nbusy); 2096 hc->busy, hc->nbusy);
2093 2097
2094 if (hc->busy) { 2098 if (hc->busy) {
2095 for (i = 0; i < hc->nbusy; i++) { 2099 for (i = 0; i < hc->nbusy; i++) {
2096 ngx_pfree(c->pool, hc->busy[i]); 2100 ngx_pfree(c->pool, hc->busy[i]->start);
2097 hc->busy[i] = NULL; 2101 hc->busy[i] = NULL;
2098 } 2102 }
2099 2103
2100 hc->nbusy = 0; 2104 hc->nbusy = 0;
2101 } 2105 }