diff --git a/src/core/transport/chttp2_transport.c b/src/core/transport/chttp2_transport.c index 5cc8375d659..2b15b2a8128 100644 --- a/src/core/transport/chttp2_transport.c +++ b/src/core/transport/chttp2_transport.c @@ -1655,6 +1655,12 @@ static int process_read(transport *t, gpr_slice slice) { if (!init_frame_parser(t)) { return 0; } + /* t->last_incoming_stream_id is used as last-stream-id when + sending GOAWAY frame. + https://tools.ietf.org/html/draft-ietf-httpbis-http2-17#section-6.8 + says that last-stream-id is peer-initiated stream ID. So, + since we don't have server pushed streams, client should send + GOAWAY last-stream-id=0 in this case. */ if (!t->is_client) { t->last_incoming_stream_id = t->incoming_stream_id; }