From b2a0376350cb4f788ca2cdff2e89a23bdc789888 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Mon, 11 Apr 2016 16:00:15 +0200 Subject: 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 --- lib/http2.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'lib/http2.c') diff --git a/lib/http2.c b/lib/http2.c index 5305eb71e..8f19ebaee 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; } -- cgit v1.2.3