Mercurial > hg > nginx
comparison src/http/ngx_http_spdy_filter_module.c @ 5512:9fffc0c46e5c
SPDY: fixed possible premature close of stream.
The "delayed" flag always should be set if there are unsent frames,
but this might not be the case if ngx_http_spdy_body_filter() was
called with NULL chain.
As a result, the "send_timeout" timer could be set on a stream in
ngx_http_writer(). And if the timeout occurred before all the stream
data has been sent, then the request was finalized with the "client
timed out" error.
author | Valentin Bartenev <vbart@nginx.com> |
---|---|
date | Tue, 14 Jan 2014 16:24:45 +0400 |
parents | dfb52d25cefb |
children | 311803b21504 |
comparison
equal
deleted
inserted
replaced
5511:dfb52d25cefb | 5512:9fffc0c46e5c |
---|---|
633 "spdy body filter \"%V?%V\"", &r->uri, &r->args); | 633 "spdy body filter \"%V?%V\"", &r->uri, &r->args); |
634 | 634 |
635 if (in == NULL || r->header_only) { | 635 if (in == NULL || r->header_only) { |
636 | 636 |
637 if (stream->queued) { | 637 if (stream->queued) { |
638 fc->write->delayed = 1; | |
638 return NGX_AGAIN; | 639 return NGX_AGAIN; |
639 } | 640 } |
640 | 641 |
641 fc->buffered &= ~NGX_SPDY_WRITE_BUFFERED; | 642 fc->buffered &= ~NGX_SPDY_WRITE_BUFFERED; |
642 | 643 |