Mercurial > hg > nginx
changeset 7335:fbb683496705
HTTP/2: workaround for clients which fail on table size updates.
There are clients which cannot handle HPACK's dynamic table size updates
as added in 12cadc4669a7 (1.13.6). Notably, old versions of OkHttp library
are known to fail on it (ticket #1397).
This change makes it possible to work with such clients by only sending
dynamic table size updates in response to SETTINGS_HEADER_TABLE_SIZE. As
a downside, clients which do not use SETTINGS_HEADER_TABLE_SIZE will
continue to maintain default 4k table.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Thu, 09 Aug 2018 20:12:17 +0300 |
parents | f17e313009b0 |
children | 1cd63ae46243 |
files | src/http/v2/ngx_http_v2.c |
diffstat | 1 files changed, 5 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/http/v2/ngx_http_v2.c Thu Aug 09 12:15:42 2018 +0300 +++ b/src/http/v2/ngx_http_v2.c Thu Aug 09 20:12:17 2018 +0300 @@ -270,8 +270,6 @@ h2c->frame_size = NGX_HTTP_V2_DEFAULT_FRAME_SIZE; - h2c->table_update = 1; - h2scf = ngx_http_get_module_srv_conf(hc->conf_ctx, ngx_http_v2_module); h2c->concurrent_pushes = h2scf->concurrent_pushes; @@ -2075,6 +2073,11 @@ h2c->concurrent_pushes = ngx_min(value, h2scf->concurrent_pushes); break; + case NGX_HTTP_V2_HEADER_TABLE_SIZE_SETTING: + + h2c->table_update = 1; + break; + default: break; }