diff options
author | Maxim Dounin <mdounin@mdounin.ru> | 2015-03-02 21:44:42 +0300 |
---|---|---|
committer | Maxim Dounin <mdounin@mdounin.ru> | 2015-03-02 21:44:42 +0300 |
commit | 14a93c5a150500928d707f7ba3ded1ae1427dab6 (patch) | |
tree | 93f546be6fb13075b4f3d0f388f59ece6cf9451c | |
parent | 2b032e8df6f6a97454d4c4fc73ea9c5e86fca97c (diff) | |
download | nginx-14a93c5a150500928d707f7ba3ded1ae1427dab6.tar.gz nginx-14a93c5a150500928d707f7ba3ded1ae1427dab6.zip |
Upstream: upstream argument in ngx_http_upstream_process_request().
In case of filter finalization, r->upstream might be changed during
the ngx_event_pipe() call. Added an argument to preserve it while
calling the ngx_http_upstream_process_request() function.
-rw-r--r-- | src/http/ngx_http_upstream.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/http/ngx_http_upstream.c b/src/http/ngx_http_upstream.c index 7066d14af..baf2dd9ad 100644 --- a/src/http/ngx_http_upstream.c +++ b/src/http/ngx_http_upstream.c @@ -76,7 +76,8 @@ static ngx_int_t ngx_http_upstream_non_buffered_filter(void *data, static void ngx_http_upstream_process_downstream(ngx_http_request_t *r); static void ngx_http_upstream_process_upstream(ngx_http_request_t *r, ngx_http_upstream_t *u); -static void ngx_http_upstream_process_request(ngx_http_request_t *r); +static void ngx_http_upstream_process_request(ngx_http_request_t *r, + ngx_http_upstream_t *u); static void ngx_http_upstream_store(ngx_http_request_t *r, ngx_http_upstream_t *u); static void ngx_http_upstream_dummy_handler(ngx_http_request_t *r, @@ -3349,7 +3350,7 @@ ngx_http_upstream_process_downstream(ngx_http_request_t *r) } } - ngx_http_upstream_process_request(r); + ngx_http_upstream_process_request(r, u); } @@ -3417,18 +3418,17 @@ ngx_http_upstream_process_upstream(ngx_http_request_t *r, } } - ngx_http_upstream_process_request(r); + ngx_http_upstream_process_request(r, u); } static void -ngx_http_upstream_process_request(ngx_http_request_t *r) +ngx_http_upstream_process_request(ngx_http_request_t *r, + ngx_http_upstream_t *u) { ngx_temp_file_t *tf; ngx_event_pipe_t *p; - ngx_http_upstream_t *u; - u = r->upstream; p = u->pipe; if (u->peer.connection) { |