diff src/http/modules/proxy/ngx_http_proxy_upstream.c @ 416:b9bd635011de

nginx-0.0.10-2004-09-06-22:45:00 import
author Igor Sysoev <igor@sysoev.ru>
date Mon, 06 Sep 2004 18:45:00 +0000
parents 3c56e834be46
children da8c5707af39
line wrap: on
line diff
--- a/src/http/modules/proxy/ngx_http_proxy_upstream.c
+++ b/src/http/modules/proxy/ngx_http_proxy_upstream.c
@@ -954,20 +954,22 @@ static void ngx_http_proxy_process_upstr
 
     /* init or reinit the p->upstream->headers_in.headers table */
 
-    if (p->upstream->headers_in.headers.elts) {
-        p->upstream->headers_in.headers.nelts = 0;
+    if (p->upstream->headers_in.headers.part.elts) {
+        p->upstream->headers_in.headers.part.nelts = 0;
+        p->upstream->headers_in.headers.part.next = NULL;
+        p->upstream->headers_in.headers.last =
+                                         &p->upstream->headers_in.headers.part;
+
+        ngx_memzero(&p->upstream->headers_in.date,
+                    sizeof(ngx_http_proxy_headers_in_t) - sizeof(ngx_list_t));
 
     } else {
-        p->upstream->headers_in.headers.elts = ngx_pcalloc(p->request->pool,
-                                                 20 * sizeof(ngx_table_elt_t));
-        if (p->upstream->headers_in.headers.elts == NULL) {
+        if (ngx_list_init(&p->upstream->headers_in.headers, p->request->pool,
+                                     20, sizeof(ngx_table_elt_t)) == NGX_ERROR)
+        {
             ngx_http_proxy_finalize_request(p, NGX_HTTP_INTERNAL_SERVER_ERROR);
             return;
         }
-        /* p->upstream->headers_in.headers.nelts = 0; */
-        p->upstream->headers_in.headers.nalloc = 20;
-        p->upstream->headers_in.headers.size = sizeof(ngx_table_elt_t);
-        p->upstream->headers_in.headers.pool = p->request->pool;
     }
 
 
@@ -1025,9 +1027,7 @@ static void ngx_http_proxy_process_upstr
 
             /* a header line has been parsed successfully */
 
-            h = ngx_http_add_header(&p->upstream->headers_in,
-                                    ngx_http_proxy_headers_in);
-            if (h == NULL) {
+            if (!(h = ngx_list_push(&p->upstream->headers_in.headers))) {
                 ngx_http_proxy_finalize_request(p,
                                                 NGX_HTTP_INTERNAL_SERVER_ERROR);
                 return;