HTTP/2: send SETTINGS ACK after applying all SETTINGS params.

This avoids sending unnecessary SETTINGS ACK in case of PROTOCOL_ERROR.

Signed-off-by: Piotr Sikora <piotrsikora@google.com>
This commit is contained in:
Piotr Sikora 2017-06-02 15:05:24 +03:00
parent 6cfc65c993
commit 1429139c57

View File

@ -1959,8 +1959,6 @@ ngx_http_v2_state_settings(ngx_http_v2_connection_t *h2c, u_char *pos,
return ngx_http_v2_connection_error(h2c, NGX_HTTP_V2_SIZE_ERROR); return ngx_http_v2_connection_error(h2c, NGX_HTTP_V2_SIZE_ERROR);
} }
ngx_http_v2_send_settings(h2c, 1);
return ngx_http_v2_state_settings_params(h2c, pos, end); return ngx_http_v2_state_settings_params(h2c, pos, end);
} }
@ -2026,6 +2024,8 @@ ngx_http_v2_state_settings_params(ngx_http_v2_connection_t *h2c, u_char *pos,
pos += NGX_HTTP_V2_SETTINGS_PARAM_SIZE; pos += NGX_HTTP_V2_SETTINGS_PARAM_SIZE;
} }
ngx_http_v2_send_settings(h2c, 1);
if (window_delta) { if (window_delta) {
if (ngx_http_v2_adjust_windows(h2c, window_delta) != NGX_OK) { if (ngx_http_v2_adjust_windows(h2c, window_delta) != NGX_OK) {
return ngx_http_v2_connection_error(h2c, return ngx_http_v2_connection_error(h2c,