Mercurial > hg > nginx
comparison src/http/v2/ngx_http_v2.c @ 7190:e11a0679d349
HTTP/2: handle duplicate INITIAL_WINDOW_SIZE settings.
author | Ruslan Ermilov <ru@nginx.com> |
---|---|
date | Mon, 29 Jan 2018 15:54:36 +0300 |
parents | b6dc472299da |
children | 61d276dcd493 |
comparison
equal
deleted
inserted
replaced
7189:cbf59d483c9c | 7190:e11a0679d349 |
---|---|
1998 return ngx_http_v2_connection_error(h2c, | 1998 return ngx_http_v2_connection_error(h2c, |
1999 NGX_HTTP_V2_FLOW_CTRL_ERROR); | 1999 NGX_HTTP_V2_FLOW_CTRL_ERROR); |
2000 } | 2000 } |
2001 | 2001 |
2002 window_delta = value - h2c->init_window; | 2002 window_delta = value - h2c->init_window; |
2003 | |
2004 h2c->init_window = value; | |
2005 break; | 2003 break; |
2006 | 2004 |
2007 case NGX_HTTP_V2_MAX_FRAME_SIZE_SETTING: | 2005 case NGX_HTTP_V2_MAX_FRAME_SIZE_SETTING: |
2008 | 2006 |
2009 if (value > NGX_HTTP_V2_MAX_FRAME_SIZE | 2007 if (value > NGX_HTTP_V2_MAX_FRAME_SIZE |
2035 } | 2033 } |
2036 | 2034 |
2037 ngx_http_v2_queue_ordered_frame(h2c, frame); | 2035 ngx_http_v2_queue_ordered_frame(h2c, frame); |
2038 | 2036 |
2039 if (window_delta) { | 2037 if (window_delta) { |
2038 h2c->init_window += window_delta; | |
2039 | |
2040 if (ngx_http_v2_adjust_windows(h2c, window_delta) != NGX_OK) { | 2040 if (ngx_http_v2_adjust_windows(h2c, window_delta) != NGX_OK) { |
2041 return ngx_http_v2_connection_error(h2c, | 2041 return ngx_http_v2_connection_error(h2c, |
2042 NGX_HTTP_V2_INTERNAL_ERROR); | 2042 NGX_HTTP_V2_INTERNAL_ERROR); |
2043 } | 2043 } |
2044 } | 2044 } |