aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRuslan Ermilov <ru@nginx.com>2020-04-23 15:10:26 +0300
committerRuslan Ermilov <ru@nginx.com>2020-04-23 15:10:26 +0300
commitee9c61b89bcb891575c809e388affd2bb04e9e60 (patch)
tree2716a32d1c80ae8b16a1310650aff72e1ffb7c13 /src
parent4c8abb84e399f964d6b70f24c6324f261fd4565a (diff)
downloadnginx-ee9c61b89bcb891575c809e388affd2bb04e9e60.tar.gz
nginx-ee9c61b89bcb891575c809e388affd2bb04e9e60.zip
gRPC: WINDOW_UPDATE after END_STREAM handling (ticket #1797).
As per https://tools.ietf.org/html/rfc7540#section-6.9, WINDOW_UPDATE received after a frame with the END_STREAM flag should be handled and not treated as an error.
Diffstat (limited to 'src')
-rw-r--r--src/http/modules/ngx_http_grpc_module.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/http/modules/ngx_http_grpc_module.c b/src/http/modules/ngx_http_grpc_module.c
index 9e62d8e2a..992211e73 100644
--- a/src/http/modules/ngx_http_grpc_module.c
+++ b/src/http/modules/ngx_http_grpc_module.c
@@ -2091,7 +2091,8 @@ ngx_http_grpc_filter(void *data, ssize_t bytes)
}
if (ctx->stream_id && ctx->done
- && ctx->type != NGX_HTTP_V2_RST_STREAM_FRAME)
+ && ctx->type != NGX_HTTP_V2_RST_STREAM_FRAME
+ && ctx->type != NGX_HTTP_V2_WINDOW_UPDATE_FRAME)
{
ngx_log_error(NGX_LOG_ERR, r->connection->log, 0,
"upstream sent frame for closed stream %ui",