<div dir="ltr">Get it, I'll try it, t<span style="font-size:small;text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">hank you again.<span> </span></span></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Jul 12, 2018 at 1:02 AM Maxim Dounin <<a href="mailto:mdounin@mdounin.ru">mdounin@mdounin.ru</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello!<br>
<br>
On Wed, Jul 11, 2018 at 08:56:56PM +0800, 洪志道 wrote:<br>
<br>
> But there are still some clients use the old version.<br>
> Is it a way to be compatible with it?<br>
> Or other suggestions?<br>
> @Maxim Dounin <<a href="mailto:mdounin@mdounin.ru" target="_blank">mdounin@mdounin.ru</a>><br>
<br>
As I already wrote in ticket #1397, we can try introducing a <br>
workaround in nginx, but I'm not convinced it worth the effort and, <br>
more importantly, associated downsides for non-broken clients.<br>
<br>
# HG changeset patch<br>
# User Maxim Dounin <<a href="mailto:mdounin@mdounin.ru" target="_blank">mdounin@mdounin.ru</a>><br>
# Date 1531328359 -10800<br>
# Wed Jul 11 19:59:19 2018 +0300<br>
# Node ID f44e74d331885dce8682d2a9802eb707be7ae86f<br>
# Parent 54683f650cbdcd73f7f8d845c843295978da5a85<br>
HTTP/2: workaround for clients which fail on table size updates.<br>
<br>
There are clients which cannot handle HPACK's dynamic table size updates<br>
as added in 12cadc4669a7 (1.13.6). Notably, old versions of OkHttp library<br>
are known to fail on it (ticket #1397).<br>
<br>
This change makes it possible to work with such clients by only sending<br>
dynamic table size updates in response to SETTINGS_HEADER_TABLE_SIZE. As<br>
a downside, clients which do not use SETTINGS_HEADER_TABLE_SIZE will<br>
continue to maintain default 4k table.<br>
<br>
diff --git a/src/http/v2/ngx_http_v2.c b/src/http/v2/ngx_http_v2.c<br>
--- a/src/http/v2/ngx_http_v2.c<br>
+++ b/src/http/v2/ngx_http_v2.c<br>
@@ -270,8 +270,6 @@ ngx_http_v2_init(ngx_event_t *rev)<br>
<br>
h2c->frame_size = NGX_HTTP_V2_DEFAULT_FRAME_SIZE;<br>
<br>
- h2c->table_update = 1;<br>
-<br>
h2scf = ngx_http_get_module_srv_conf(hc->conf_ctx, ngx_http_v2_module);<br>
<br>
h2c->concurrent_pushes = h2scf->concurrent_pushes;<br>
@@ -2075,6 +2073,11 @@ ngx_http_v2_state_settings_params(ngx_ht<br>
h2c->concurrent_pushes = ngx_min(value, h2scf->concurrent_pushes);<br>
break;<br>
<br>
+ case NGX_HTTP_V2_HEADER_TABLE_SIZE_SETTING:<br>
+<br>
+ h2c->table_update = 1;<br>
+ break;<br>
+<br>
default:<br>
break;<br>
}<br>
<br>
-- <br>
Maxim Dounin<br>
<a href="http://mdounin.ru/" rel="noreferrer" target="_blank">http://mdounin.ru/</a><br>
_______________________________________________<br>
nginx-devel mailing list<br>
<a href="mailto:nginx-devel@nginx.org" target="_blank">nginx-devel@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-devel" rel="noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-devel</a></blockquote></div>