aboutsummaryrefslogtreecommitdiff
path: root/src/http/ngx_http_request.c
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2006-07-28 15:16:17 +0000
committerIgor Sysoev <igor@sysoev.ru>2006-07-28 15:16:17 +0000
commit8f1255877c4b64f83fce75baa4d903797e00e815 (patch)
treee6594c2c4578b85fa81c4a5fe334daac91142a6f /src/http/ngx_http_request.c
parent741c6e9c1ecd17d2165f2e8e3426023117f4b15d (diff)
downloadnginx-8f1255877c4b64f83fce75baa4d903797e00e815.tar.gz
nginx-8f1255877c4b64f83fce75baa4d903797e00e815.zip
nginx-0.3.55-RELEASE importrelease-0.3.55
*) Feature: the "stub" parameter in the "include" SSI command. *) Feature: the "block" SSI command. *) Feature: the unicode2nginx script was added to contrib. *) Bugfix: if a "root" was specified by variable only, then the root was relative to a server prefix. *) Bugfix: if the request contained "//" or "/./" and escaped symbols after them, then the proxied request was sent unescaped. *) Bugfix: the $r->headers_in("Cookie") of the ngx_http_perl_module now returns all "Cookie" header lines. *) Bugfix: a segmentation fault occurred if "client_body_in_file_only on" was used and nginx switched to a next upstream. *) Bugfix: on some condition while reconfiguration character codes inside the "charset_map" may be treated invalid; the bug had appeared in 0.3.50.
Diffstat (limited to 'src/http/ngx_http_request.c')
-rw-r--r--src/http/ngx_http_request.c33
1 files changed, 23 insertions, 10 deletions
diff --git a/src/http/ngx_http_request.c b/src/http/ngx_http_request.c
index 0145fe7d4..e645e811a 100644
--- a/src/http/ngx_http_request.c
+++ b/src/http/ngx_http_request.c
@@ -853,7 +853,7 @@ ngx_http_process_request_headers(ngx_event_t *rev)
} else {
for (i = 0; i < h->key.len; i++) {
- h->lowcase_key[i] = ngx_tolower(h->lowcase_key[i]);
+ h->lowcase_key[i] = ngx_tolower(h->key.data[i]);
}
}
@@ -1459,6 +1459,28 @@ ngx_http_finalize_request(ngx_http_request_t *r, ngx_int_t rc)
"http finalize request: %d, \"%V?%V\"",
rc, &r->uri, &r->args);
+ if (r != r->main
+ && rc != NGX_ERROR
+ && !r->connection->error
+ && !r->request_output
+ && r->out)
+ {
+ if (!r->header_sent) {
+ rc = ngx_http_set_content_type(r);
+
+ if (rc == NGX_OK) {
+ rc = ngx_http_send_header(r);
+
+ if (rc != NGX_ERROR) {
+ rc = ngx_http_output_filter(r, r->out);
+ }
+ }
+
+ } else {
+ rc = ngx_http_output_filter(r, r->out);
+ }
+ }
+
if (rc == NGX_ERROR
|| rc == NGX_HTTP_REQUEST_TIME_OUT
|| r->connection->error)
@@ -2435,15 +2457,6 @@ ngx_http_log_error_handler(ngx_http_request_t *r, ngx_http_request_t *sr,
buf = p;
}
- return ngx_http_log_error_info(r, buf, len);
-}
-
-
-u_char *
-ngx_http_log_error_info(ngx_http_request_t *r, u_char *buf, size_t len)
-{
- u_char *p;
-
if (r->headers_in.host) {
p = ngx_snprintf(buf, len, ", host: \"%V\"",
&r->headers_in.host->value);