Mercurial > hg > nginx
diff src/http/v2/ngx_http_v2.h @ 7025:7206c3630310
HTTP/2: don't send SETTINGS ACK before already queued DATA frames.
Previously, SETTINGS ACK was sent immediately upon receipt of SETTINGS
frame, before already queued DATA frames created using old SETTINGS.
This incorrect behavior was source of interoperability issues, because
peers rely on the fact that new SETTINGS are in effect after receiving
SETTINGS ACK.
Reported by Feng Li.
Signed-off-by: Piotr Sikora <piotrsikora@google.com>
author | Piotr Sikora <piotrsikora@google.com> |
---|---|
date | Fri, 02 Jun 2017 15:05:32 +0300 |
parents | 2c4dbcd6f2e4 |
children | 12cadc4669a7 |
line wrap: on
line diff
--- a/src/http/v2/ngx_http_v2.h Fri Jun 02 15:05:28 2017 +0300 +++ b/src/http/v2/ngx_http_v2.h Fri Jun 02 15:05:32 2017 +0300 @@ -261,6 +261,15 @@ } +static ngx_inline void +ngx_http_v2_queue_ordered_frame(ngx_http_v2_connection_t *h2c, + ngx_http_v2_out_frame_t *frame) +{ + frame->next = h2c->last_out; + h2c->last_out = frame; +} + + void ngx_http_v2_init(ngx_event_t *rev); void ngx_http_v2_request_headers_init(void);