diff options
author | Maxim Dounin <mdounin@mdounin.ru> | 2013-09-04 21:17:00 +0400 |
---|---|---|
committer | Maxim Dounin <mdounin@mdounin.ru> | 2013-09-04 21:17:00 +0400 |
commit | 4b189002af160515fdd523b3d1802c050268c45f (patch) | |
tree | 03af693ed951f989c2bb2fdb739da176c54daaab /src/http/ngx_http_request.c | |
parent | 2b0dba578fed500c1955979a8e281f4fad53bad9 (diff) | |
download | nginx-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.c | 7 |
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) |