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.
This commit is contained in:
Valentin Bartenev 2016-07-19 20:31:09 +03:00
parent ce6eb33d15
commit 3b2f54bc2e

View File

@ -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 {