From: Daniel Stenberg Date: Tue, 22 Dec 2020 08:09:46 +0000 (+0100) Subject: h2: do not wait for RECV on paused transfers X-Git-Tag: curl-7_75_0~188 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c7f95fa0cc252167cb210e1c0ab4f8bbabc1c371;p=thirdparty%2Fcurl.git h2: do not wait for RECV on paused transfers ... as the socket might be readable all the time when paused and thus causing a busy-loop. Reported-by: Harry Sintonen Reviewed-by: Jay Satiro Fixes #6356 Closes #6357 --- diff --git a/lib/http2.c b/lib/http2.c index b138fb4b0f..7a337a7f3e 100644 --- a/lib/http2.c +++ b/lib/http2.c @@ -101,9 +101,10 @@ static int http2_perform_getsock(const struct connectdata *conn, sock[0] = conn->sock[FIRSTSOCKET]; - /* in a HTTP/2 connection we can basically always get a frame so we should - always be ready for one */ - bitmap |= GETSOCK_READSOCK(FIRSTSOCKET); + if(!(k->keepon & KEEP_RECV_PAUSE)) + /* Unless paused - in a HTTP/2 connection we can basically always get a + frame so we should always be ready for one */ + bitmap |= GETSOCK_READSOCK(FIRSTSOCKET); /* we're still uploading or the HTTP/2 layer wants to send data */ if(((k->keepon & (KEEP_SEND|KEEP_SEND_PAUSE)) == KEEP_SEND) ||