aboutsummaryrefslogtreecommitdiff
path: root/src/http/ngx_http_core_module.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/http/ngx_http_core_module.c')
-rw-r--r--src/http/ngx_http_core_module.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c
index 2465a2d48..0e8d5a497 100644
--- a/src/http/ngx_http_core_module.c
+++ b/src/http/ngx_http_core_module.c
@@ -900,12 +900,21 @@ ngx_http_core_rewrite_phase(ngx_http_request_t *r, ngx_http_phase_handler_t *ph)
rc = ph->handler(r);
+ if (rc == NGX_OK) {
+ r->phase_handler = ph->next;
+ return NGX_AGAIN;
+ }
+
if (rc == NGX_DECLINED) {
r->phase_handler++;
return NGX_AGAIN;
}
- /* rc == NGX_OK || rc == NGX_ERROR || rc == NGX_HTTP_... */
+ if (rc == NGX_DONE) {
+ return NGX_OK;
+ }
+
+ /* NGX_AGAIN || rc == NGX_ERROR || rc == NGX_HTTP_... */
ngx_http_finalize_request(r, rc);