aboutsummaryrefslogtreecommitdiff
path: root/src/http/ngx_http_request.c
diff options
context:
space:
mode:
authorMaxim Dounin <mdounin@mdounin.ru>2013-09-04 21:17:00 +0400
committerMaxim Dounin <mdounin@mdounin.ru>2013-09-04 21:17:00 +0400
commit4b189002af160515fdd523b3d1802c050268c45f (patch)
tree03af693ed951f989c2bb2fdb739da176c54daaab /src/http/ngx_http_request.c
parent2b0dba578fed500c1955979a8e281f4fad53bad9 (diff)
downloadnginx-4b189002af160515fdd523b3d1802c050268c45f.tar.gz
nginx-4b189002af160515fdd523b3d1802c050268c45f.zip
Request cleanup code unified, no functional changes.
Additionally, detaching a cleanup chain from a request is a bit more resilent to various bugs if any.
Diffstat (limited to 'src/http/ngx_http_request.c')
-rw-r--r--src/http/ngx_http_request.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/http/ngx_http_request.c b/src/http/ngx_http_request.c
index 5887376d4..37efb2a52 100644
--- a/src/http/ngx_http_request.c
+++ b/src/http/ngx_http_request.c
@@ -3343,10 +3343,15 @@ ngx_http_free_request(ngx_http_request_t *r, ngx_int_t rc)
return;
}
- for (cln = r->cleanup; cln; cln = cln->next) {
+ cln = r->cleanup;
+ r->cleanup = NULL;
+
+ while (cln) {
if (cln->handler) {
cln->handler(cln->data);
}
+
+ cln = cln->next;
}
#if (NGX_STAT_STUB)