diff src/http/ngx_http_request.c @ 216:fa32d59d9a15 NGINX_0_3_55

nginx 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; bug appeared in 0.3.50.
author Igor Sysoev <http://sysoev.ru>
date Fri, 28 Jul 2006 00:00:00 +0400
parents 0ad9eeb6ac7f
children 1bf60f8c5c9e
line wrap: on
line diff
--- a/src/http/ngx_http_request.c
+++ b/src/http/ngx_http_request.c
@@ -853,7 +853,7 @@ ngx_http_process_request_headers(ngx_eve
 
             } 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_reque
                    "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_requ
         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);