Unlike response headers, trailers are queued along with the stream data.
Blocking the queue on them would hold back every frame queued later,
including higher priority streams.
Also, this way unsent trailers are discarded along with the stream data
when the stream is reset.
}
if (trailers != NGX_HTTP_V2_NO_TRAILERS) {
+ trailers->blocked = 0;
cl->buf->last_buf = 0;
}
}
if (frame->stream == stream && !frame->blocked) {
*fn = frame->next;
- window += frame->length;
+ if (frame->handler == ngx_http_v2_data_frame_handler) {
+ window += frame->length;
+ }
if (--stream->queued == 0) {
break;