# HG changeset patch # User Igor Sysoev # Date 1222694321 0 # Node ID 763c89919807f13d68af23f5a1be05cab0f5729b # Parent 440e8bfbc57eb7577cfba4909dd894b6efec28c1 refactor log_subrequest diff --git a/src/http/ngx_http_request.c b/src/http/ngx_http_request.c --- a/src/http/ngx_http_request.c +++ b/src/http/ngx_http_request.c @@ -1760,6 +1760,17 @@ ngx_http_finalize_request(ngx_http_reque return; } + clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module); + + if (r != r->main && !r->logged) { + + if (clcf->log_subrequest) { + ngx_http_log_request(r); + } + + r->logged = 1; + } + if (r != r->main || rc == NGX_AGAIN) { if (ngx_http_set_write_handler(r) != NGX_OK) { return; @@ -1775,8 +1786,6 @@ ngx_http_finalize_request(ngx_http_reque return; } - clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module); - if (r != r->main) { pr = r->parent; @@ -1810,11 +1819,6 @@ ngx_http_finalize_request(ngx_http_reque ngx_log_debug2(NGX_LOG_DEBUG_HTTP, c->log, 0, "http fast subrequest: \"%V?%V\" done", &r->uri, &r->args); - - if (clcf->log_subrequest) { - ngx_http_log_request(r); - } - return; } @@ -1823,18 +1827,8 @@ ngx_http_finalize_request(ngx_http_reque "http wake parent request: \"%V?%V\"", &pr->uri, &pr->args); - if (clcf->log_subrequest) { - ngx_http_log_request(r); - } - pr->write_event_handler(pr); } - - return; - } - - if (clcf->log_subrequest) { - ngx_http_log_request(r); } return; diff --git a/src/http/ngx_http_request.h b/src/http/ngx_http_request.h --- a/src/http/ngx_http_request.h +++ b/src/http/ngx_http_request.h @@ -464,6 +464,7 @@ struct ngx_http_request_s { unsigned expect_tested:1; unsigned root_tested:1; unsigned done:1; + unsigned logged:1; unsigned utf8:1; unsigned buffered:4;