From 93f473c78ade963f2c32ee51185cb450dc03a3b5 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Thu, 30 Jan 2014 14:31:05 +0100 Subject: http2: fix EWOULDBLOCK in recv_callback() --- lib/http2.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'lib/http2.c') diff --git a/lib/http2.c b/lib/http2.c index a5b01e35d..d00e53759 100644 --- a/lib/http2.c +++ b/lib/http2.c @@ -124,12 +124,16 @@ static ssize_t recv_callback(nghttp2_session *h2, (void)h2; (void)flags; - if(rc) { - failf(conn->data, "Failed receiving HTTP2 data"); + if(CURLE_AGAIN == rc) { + infof(conn->data, "recv_callback() returns NGHTTP2_ERR_WOULDBLOCK\n"); + return NGHTTP2_ERR_WOULDBLOCK; + } + else if(rc) { + failf(conn->data, "Failed receiving HTTP2 data: %d", rc); return NGHTTP2_ERR_CALLBACK_FAILURE; } - if(!nread) - return NGHTTP2_ERR_WOULDBLOCK; + else + infof(conn->data, "recv_callback() returns %d to nghttp2\n", nread); return nread; } -- cgit v1.2.3