Mercurial > hg > nginx
comparison 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 |
comparison
equal
deleted
inserted
replaced
7024:79de0d2aa432 | 7025:7206c3630310 |
---|---|
259 frame->next = *out; | 259 frame->next = *out; |
260 *out = frame; | 260 *out = frame; |
261 } | 261 } |
262 | 262 |
263 | 263 |
264 static ngx_inline void | |
265 ngx_http_v2_queue_ordered_frame(ngx_http_v2_connection_t *h2c, | |
266 ngx_http_v2_out_frame_t *frame) | |
267 { | |
268 frame->next = h2c->last_out; | |
269 h2c->last_out = frame; | |
270 } | |
271 | |
272 | |
264 void ngx_http_v2_init(ngx_event_t *rev); | 273 void ngx_http_v2_init(ngx_event_t *rev); |
265 void ngx_http_v2_request_headers_init(void); | 274 void ngx_http_v2_request_headers_init(void); |
266 | 275 |
267 ngx_int_t ngx_http_v2_read_request_body(ngx_http_request_t *r); | 276 ngx_int_t ngx_http_v2_read_request_body(ngx_http_request_t *r); |
268 ngx_int_t ngx_http_v2_read_unbuffered_request_body(ngx_http_request_t *r); | 277 ngx_int_t ngx_http_v2_read_unbuffered_request_body(ngx_http_request_t *r); |