refactor log_subrequest
diff --git a/src/http/ngx_http_request.c b/src/http/ngx_http_request.c index 2be20aa..e1f0ae7 100644 --- a/src/http/ngx_http_request.c +++ b/src/http/ngx_http_request.c
@@ -1760,6 +1760,17 @@ 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 @@ 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_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 @@ "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 index 6368398..2486ca5 100644 --- a/src/http/ngx_http_request.h +++ b/src/http/ngx_http_request.h
@@ -464,6 +464,7 @@ unsigned expect_tested:1; unsigned root_tested:1; unsigned done:1; + unsigned logged:1; unsigned utf8:1; unsigned buffered:4;