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