http2: handle DONE called for the paused stream

As it could otherwise stall all streams on the connection

Reported-by: Evangelos Foutras
Fixes #8626
Closes #8664
This commit is contained in:
Daniel Stenberg 2022-04-01 13:22:58 +02:00
parent 7c1acaf61e
commit b5a9680577
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2

View file

@ -1240,11 +1240,10 @@ void Curl_http2_done(struct Curl_easy *data, bool premature)
if(!nghttp2_submit_rst_stream(httpc->h2, NGHTTP2_FLAG_NONE,
http->stream_id, NGHTTP2_STREAM_CLOSED))
(void)nghttp2_session_send(httpc->h2);
if(http->stream_id == httpc->pause_stream_id) {
H2BUGF(infof(data, "stopped the pause stream!"));
httpc->pause_stream_id = 0;
}
}
if(http->stream_id == httpc->pause_stream_id) {
H2BUGF(infof(data, "DONE the pause stream!"));
httpc->pause_stream_id = 0;
}
if(data->state.drain)