diff --git a/transport/http2_client.go b/transport/http2_client.go index 8fa61bbb..a55c3c10 100644 --- a/transport/http2_client.go +++ b/transport/http2_client.go @@ -1022,8 +1022,7 @@ func (t *http2Client) operateHeaders(frame *http2.MetaHeadersFrame) { atomic.StoreUint32(&s.bytesReceived, 1) var state decodeState if err := state.decodeResponseHeader(frame); err != nil { - // TODO(mmukhi, dfawley): Perhaps send a reset stream. - t.closeStream(s, err, false, http2.ErrCodeNo, nil, nil, false) + t.closeStream(s, err, true, http2.ErrCodeProtocol, nil, nil, false) // Something wrong. Stops reading even when there is remaining. return } @@ -1105,8 +1104,7 @@ func (t *http2Client) reader() { t.mu.Unlock() if s != nil { // use error detail to provide better err message - // TODO(mmukhi, dfawley): Perhaps send a RST_STREAM to the server. - t.closeStream(s, streamErrorf(http2ErrConvTab[se.Code], "%v", t.framer.fr.ErrorDetail()), false, http2.ErrCodeNo, nil, nil, false) + t.closeStream(s, streamErrorf(http2ErrConvTab[se.Code], "%v", t.framer.fr.ErrorDetail()), true, http2.ErrCodeProtocol, nil, nil, false) } continue } else {