From: Daniel Stenberg Date: Mon, 11 Apr 2016 14:00:15 +0000 (+0200) Subject: http2: drain the socket better... X-Git-Tag: curl-7_49_0~144 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b2a0376350cb4f788ca2cdff2e89a23bdc789888;p=thirdparty%2Fcurl.git http2: drain the socket better... ... but ignore EAGAIN if the stream has ended so that we don't end up in a loop. This is a follow-up to c8ab613 in order to avoid the problem d261652 was made to fix. Reported-by: Jay Satiro Clues-provided-by: Tatsuhiro Tsujikawa Discussed in #750 --- diff --git a/lib/http2.c b/lib/http2.c index 5305eb71e1..8f19ebaeec 100644 --- a/lib/http2.c +++ b/lib/http2.c @@ -1246,6 +1246,10 @@ static ssize_t http2_recv(struct connectdata *conn, int sockindex, if(nread == -1) { if(result != CURLE_AGAIN) failf(data, "Failed receiving HTTP2 data"); + else if(stream->closed) + /* received when the stream was already closed! */ + return http2_handle_stream_close(conn, data, stream, err); + *err = result; return -1; }