SPDY: drop the "delayed" flag when finalizing connection.

This flag in SPDY fake write events serves the same purposes as the "ready"
flag in real events, and it must be dropped if request needs to be handled.
Otherwise, it can prevent the request from finalization if ngx_http_writer()
was set, which results in a connection leak.

Found by Xiaochen Wang.
This commit is contained in:
Valentin Bartenev 2013-12-10 20:27:33 +04:00
parent fa512fdb76
commit 7f54528ca0

View File

@ -2855,7 +2855,9 @@ ngx_http_spdy_finalize_connection(ngx_http_spdy_connection_t *sc,
if (stream->waiting) {
r->blocked -= stream->waiting;
stream->waiting = 0;
ev = fc->write;
ev->delayed = 0;
} else {
ev = fc->read;