diff options
| author | Valentin Bartenev <vbart@nginx.com> | 2016-07-19 20:31:09 +0300 |
|---|---|---|
| committer | Valentin Bartenev <vbart@nginx.com> | 2016-07-19 20:31:09 +0300 |
| commit | c64c12cae5c907ef90afffd6611cea4a752338b3 (patch) | |
| tree | 39f793b4594c8583d4abfec3da9f5b3a0b2a8d6d | |
| parent | 6ebe94522a07e294121c8bbbe68e6215345aeba5 (diff) | |
| download | nginx-c64c12cae5c907ef90afffd6611cea4a752338b3.tar.gz nginx-c64c12cae5c907ef90afffd6611cea4a752338b3.tar.bz2 | |
HTTP/2: fixed send timer handling.
Checking for return value of c->send_chain() isn't sufficient since there
are data can be left in the SSL buffer. Now the wew->ready flag is used
instead.
In particular, this fixed a connection leak in cases when all streams were
closed, but there's still some data to be sent in the SSL buffer and the
client forgot about the connection.
| -rw-r--r-- | src/http/v2/ngx_http_v2.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/http/v2/ngx_http_v2.c b/src/http/v2/ngx_http_v2.c index 959e3a6f3..0ce8bce26 100644 --- a/src/http/v2/ngx_http_v2.c +++ b/src/http/v2/ngx_http_v2.c @@ -549,7 +549,7 @@ ngx_http_v2_send_output_queue(ngx_http_v2_connection_t *h2c) c->tcp_nodelay = NGX_TCP_NODELAY_SET; } - if (cl) { + if (!wev->ready) { ngx_add_timer(wev, clcf->send_timeout); } else { |
