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 b463b5ee76
commit b8550fd94e

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 {