]> git.kaiwu.me - nginx.git/commitdiff
HTTP/2: handle duplicate INITIAL_WINDOW_SIZE settings.
authorRuslan Ermilov <ru@nginx.com>
Mon, 29 Jan 2018 12:54:36 +0000 (15:54 +0300)
committerRuslan Ermilov <ru@nginx.com>
Mon, 29 Jan 2018 12:54:36 +0000 (15:54 +0300)
src/http/v2/ngx_http_v2.c

index 2c621907b7e9946505e94d9622875c2b0837cc45..98eeabce2a9f23786c7817bcee77120310b3174c 100644 (file)
@@ -2000,8 +2000,6 @@ ngx_http_v2_state_settings_params(ngx_http_v2_connection_t *h2c, u_char *pos,
             }
 
             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_http_v2_connection_t *h2c, u_char *pos,
     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);