# HG changeset patch # User Igor Sysoev # Date 1197289783 0 # Node ID d22095839d8696e1524d40b1b81de112e8803f60 # Parent e584e946e1981a6af11958d49f83a3e2863e3903 optimize r->upstream usage diff --git a/src/http/ngx_http_upstream.c b/src/http/ngx_http_upstream.c --- 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); }