[nginx] HTTP/2: handle duplicate INITIAL_WINDOW_SIZE settings.

Ruslan Ermilov ru at nginx.com
Tue Jan 30 12:26:27 UTC 2018


details:   http://hg.nginx.org/nginx/rev/e11a0679d349
branches:  
changeset: 7190:e11a0679d349
user:      Ruslan Ermilov <ru at nginx.com>
date:      Mon Jan 29 15:54:36 2018 +0300
description:
HTTP/2: handle duplicate INITIAL_WINDOW_SIZE settings.

diffstat:

 src/http/v2/ngx_http_v2.c |  4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diffs (21 lines):

diff -r cbf59d483c9c -r e11a0679d349 src/http/v2/ngx_http_v2.c
--- a/src/http/v2/ngx_http_v2.c	Tue Jan 16 13:52:03 2018 +0300
+++ b/src/http/v2/ngx_http_v2.c	Mon Jan 29 15:54:36 2018 +0300
@@ -2000,8 +2000,6 @@ ngx_http_v2_state_settings_params(ngx_ht
             }
 
             window_delta = value - h2c->init_window;
-
-            h2c->init_window = value;
             break;
 
         case NGX_HTTP_V2_MAX_FRAME_SIZE_SETTING:
@@ -2037,6 +2035,8 @@ ngx_http_v2_state_settings_params(ngx_ht
     ngx_http_v2_queue_ordered_frame(h2c, frame);
 
     if (window_delta) {
+        h2c->init_window += window_delta;
+
         if (ngx_http_v2_adjust_windows(h2c, window_delta) != NGX_OK) {
             return ngx_http_v2_connection_error(h2c,
                                                 NGX_HTTP_V2_INTERNAL_ERROR);


More information about the nginx-devel mailing list