diff options
author | Craig Tiller <ctiller@google.com> | 2016-04-04 14:38:05 -0700 |
---|---|---|
committer | Craig Tiller <ctiller@google.com> | 2016-04-04 14:38:05 -0700 |
commit | 22a3dfd95468daa0db7245a4e8e6679a52847579 (patch) | |
tree | 6aead82295a3597428d84f2e84e546cb8376fb20 /src/core | |
parent | fd114961bf9da5bfb31325b0de03d3513a7a4474 (diff) |
Fix stream id order handling
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/ext/transport/chttp2/transport/parsing.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/core/ext/transport/chttp2/transport/parsing.c b/src/core/ext/transport/chttp2/transport/parsing.c index c754c6005e..e827a43f7a 100644 --- a/src/core/ext/transport/chttp2/transport/parsing.c +++ b/src/core/ext/transport/chttp2/transport/parsing.c @@ -112,7 +112,7 @@ void grpc_chttp2_publish_reads( GOAWAY last-grpc_chttp2_stream-id=0 in this case. */ if (!transport_parsing->is_client) { transport_global->last_incoming_stream_id = - transport_parsing->incoming_stream_id; + transport_parsing->last_incoming_stream_id; } /* update global settings */ @@ -371,7 +371,9 @@ int grpc_chttp2_perform_read(grpc_exec_ctx *exec_ctx, if (!init_frame_parser(exec_ctx, transport_parsing)) { return 0; } - if (transport_parsing->incoming_stream_id) { + if (transport_parsing->incoming_stream_id != 0 && + transport_parsing->incoming_stream_id > + transport_parsing->last_incoming_stream_id) { transport_parsing->last_incoming_stream_id = transport_parsing->incoming_stream_id; } |