changeset 1705:d22095839d86

optimize r->upstream usage
author Igor Sysoev <igor@sysoev.ru>
date Mon, 10 Dec 2007 12:29:43 +0000
parents e584e946e198
children 9242e21d2f8d
files src/http/ngx_http_upstream.c
diffstat 1 files changed, 19 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/src/http/ngx_http_upstream.c
+++ b/src/http/ngx_http_upstream.c
@@ -381,7 +381,7 @@ ngx_http_upstream_init(ngx_http_request_
 
     } else {
 
-        host = &r->upstream->resolved->host;
+        host = &u->resolved->host;
 
         umcf = ngx_http_get_module_main_conf(r, ngx_http_upstream_module);
 
@@ -840,10 +840,9 @@ ngx_http_upstream_reinit(ngx_http_reques
         return NGX_ERROR;
     }
 
-    ngx_memzero(&r->upstream->headers_in,
-                sizeof(ngx_http_upstream_headers_in_t));
-
-    if (ngx_list_init(&r->upstream->headers_in.headers, r->pool, 8,
+    ngx_memzero(&u->headers_in, sizeof(ngx_http_upstream_headers_in_t));
+
+    if (ngx_list_init(&u->headers_in.headers, r->pool, 8,
                       sizeof(ngx_table_elt_t))
         != NGX_OK)
     {
@@ -1078,7 +1077,7 @@ ngx_http_upstream_process_header(ngx_eve
 
         u->buffer.tag = u->output.tag;
 
-        if (ngx_list_init(&r->upstream->headers_in.headers, r->pool, 8,
+        if (ngx_list_init(&u->headers_in.headers, r->pool, 8,
                           sizeof(ngx_table_elt_t))
             != NGX_OK)
         {
@@ -1247,11 +1246,11 @@ ngx_http_upstream_process_header(ngx_eve
 
     umcf = ngx_http_get_module_main_conf(r, ngx_http_upstream_module);
 
-    if (r->upstream->headers_in.x_accel_redirect) {
+    if (u->headers_in.x_accel_redirect) {
 
         ngx_http_upstream_finalize_request(r, u, NGX_DECLINED);
 
-        part = &r->upstream->headers_in.headers.part;
+        part = &u->headers_in.headers.part;
         h = part->elts;
 
         for (i = 0; /* void */; i++) {
@@ -1278,7 +1277,7 @@ ngx_http_upstream_process_header(ngx_eve
             }
         }
 
-        uri = &r->upstream->headers_in.x_accel_redirect->value;
+        uri = &u->headers_in.x_accel_redirect->value;
         args.len = 0;
         args.data = NULL;
         flags = 0;
@@ -1300,7 +1299,7 @@ ngx_http_upstream_process_header(ngx_eve
         return;
     }
 
-    part = &r->upstream->headers_in.headers.part;
+    part = &u->headers_in.headers.part;
     h = part->elts;
 
     for (i = 0; /* void */; i++) {
@@ -2164,9 +2163,9 @@ ngx_http_upstream_store(ngx_http_request
 
 #endif
 
-    if (r->upstream->headers_in.last_modified) {
-
-        last_modified = &r->upstream->headers_in.last_modified->value;
+    if (u->headers_in.last_modified) {
+
+        last_modified = &u->headers_in.last_modified->value;
 
         lm = ngx_http_parse_time(last_modified->data, last_modified->len);
 
@@ -2372,14 +2371,18 @@ ngx_http_upstream_cleanup(void *data)
 {
     ngx_http_request_t *r = data;
 
+    ngx_http_upstream_t  *u;
+
     ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
                    "cleanup http upstream request: \"%V\"", &r->uri);
 
-    if (r->upstream->resolved && r->upstream->resolved->ctx) {
-        ngx_resolve_name_done(r->upstream->resolved->ctx);
+    u = r->upstream;
+
+    if (u->resolved && u->resolved->ctx) {
+        ngx_resolve_name_done(u->resolved->ctx);
     }
 
-    ngx_http_upstream_finalize_request(r, r->upstream, NGX_DONE);
+    ngx_http_upstream_finalize_request(r, u, NGX_DONE);
 }