optimize r->upstream usage

This commit is contained in:
Igor Sysoev 2007-12-10 12:29:43 +00:00
parent 86ef6aaa6b
commit f2932dcbe5

View File

@ -381,7 +381,7 @@ ngx_http_upstream_init(ngx_http_request_t *r)
} else { } else {
host = &r->upstream->resolved->host; host = &u->resolved->host;
umcf = ngx_http_get_module_main_conf(r, ngx_http_upstream_module); umcf = ngx_http_get_module_main_conf(r, ngx_http_upstream_module);
@ -840,10 +840,9 @@ ngx_http_upstream_reinit(ngx_http_request_t *r, ngx_http_upstream_t *u)
return NGX_ERROR; return NGX_ERROR;
} }
ngx_memzero(&r->upstream->headers_in, ngx_memzero(&u->headers_in, sizeof(ngx_http_upstream_headers_in_t));
sizeof(ngx_http_upstream_headers_in_t));
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)) sizeof(ngx_table_elt_t))
!= NGX_OK) != NGX_OK)
{ {
@ -1078,7 +1077,7 @@ ngx_http_upstream_process_header(ngx_event_t *rev)
u->buffer.tag = u->output.tag; 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)) sizeof(ngx_table_elt_t))
!= NGX_OK) != NGX_OK)
{ {
@ -1247,11 +1246,11 @@ ngx_http_upstream_process_header(ngx_event_t *rev)
umcf = ngx_http_get_module_main_conf(r, ngx_http_upstream_module); 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); 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; h = part->elts;
for (i = 0; /* void */; i++) { for (i = 0; /* void */; i++) {
@ -1278,7 +1277,7 @@ ngx_http_upstream_process_header(ngx_event_t *rev)
} }
} }
uri = &r->upstream->headers_in.x_accel_redirect->value; uri = &u->headers_in.x_accel_redirect->value;
args.len = 0; args.len = 0;
args.data = NULL; args.data = NULL;
flags = 0; flags = 0;
@ -1300,7 +1299,7 @@ ngx_http_upstream_process_header(ngx_event_t *rev)
return; return;
} }
part = &r->upstream->headers_in.headers.part; part = &u->headers_in.headers.part;
h = part->elts; h = part->elts;
for (i = 0; /* void */; i++) { for (i = 0; /* void */; i++) {
@ -2164,9 +2163,9 @@ ngx_http_upstream_store(ngx_http_request_t *r, ngx_http_upstream_t *u)
#endif #endif
if (r->upstream->headers_in.last_modified) { if (u->headers_in.last_modified) {
last_modified = &r->upstream->headers_in.last_modified->value; last_modified = &u->headers_in.last_modified->value;
lm = ngx_http_parse_time(last_modified->data, last_modified->len); 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_request_t *r = data;
ngx_http_upstream_t *u;
ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
"cleanup http upstream request: \"%V\"", &r->uri); "cleanup http upstream request: \"%V\"", &r->uri);
if (r->upstream->resolved && r->upstream->resolved->ctx) { u = r->upstream;
ngx_resolve_name_done(r->upstream->resolved->ctx);
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);
} }