diff options
| author | Maxim Dounin <mdounin@mdounin.ru> | 2013-08-23 22:18:46 +0400 |
|---|---|---|
| committer | Maxim Dounin <mdounin@mdounin.ru> | 2013-08-23 22:18:46 +0400 |
| commit | 73ec75a9744486c60255eeed278a5170a5ac80fe (patch) | |
| tree | a82fc81908b088227fb4fec3491c5f7b46ee8a28 | |
| parent | 0f49681f28139fabeb0da90f98129532221d5b0d (diff) | |
| download | nginx-73ec75a9744486c60255eeed278a5170a5ac80fe.tar.gz nginx-73ec75a9744486c60255eeed278a5170a5ac80fe.tar.bz2 | |
Upstream: posted requests handling after ssl handshake errors.
Missing call to ngx_http_run_posted_request() resulted in a main request hang
if subrequest's ssl handshake with an upstream server failed for some reason.
Reported by Aviram Cohen.
| -rw-r--r-- | src/http/ngx_http_upstream.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/http/ngx_http_upstream.c b/src/http/ngx_http_upstream.c index 9e2830d07..652222f8f 100644 --- a/src/http/ngx_http_upstream.c +++ b/src/http/ngx_http_upstream.c @@ -1338,13 +1338,19 @@ ngx_http_upstream_ssl_handshake(ngx_connection_t *c) c->write->handler = ngx_http_upstream_handler; c->read->handler = ngx_http_upstream_handler; + c = r->connection; + ngx_http_upstream_send_request(r, u); + ngx_http_run_posted_requests(c); return; } + c = r->connection; + ngx_http_upstream_next(r, u, NGX_HTTP_UPSTREAM_FT_ERROR); + ngx_http_run_posted_requests(c); } #endif |
