Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nginx/nginx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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);