| 123456789101112131415161718192021222324252627282930313233 |
- From c7de3617464f935f6bab113b4da1bb91253baa7e Mon Sep 17 00:00:00 2001
- From: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
- Date: Sat, 13 Sep 2014 11:59:23 +0900
- Subject: [PATCH] http2: Fix busy loop when EOF is encountered
- Previously we did not handle EOF from underlying transport socket and
- wrongly just returned error code CURL_AGAIN from http2_recv, which
- caused busy loop since socket has been closed. This patch adds the
- code to handle EOF situation and tells the upper layer that we got
- EOF.
- ---
- lib/http2.c | 6 ++++++
- 1 file changed, 6 insertions(+)
- diff --git a/lib/http2.c b/lib/http2.c
- index 604514d..f86d3eb 100644
- --- a/lib/http2.c
- +++ b/lib/http2.c
- @@ -744,6 +744,12 @@ static ssize_t http2_recv(struct connectdata *conn, int sockindex,
- }
- infof(conn->data, "nread=%zd\n", nread);
- +
- + if(nread == 0) {
- + failf(conn->data, "EOF");
- + return 0;
- + }
- +
- rv = nghttp2_session_mem_recv(httpc->h2,
- (const uint8_t *)httpc->inbuf, nread);
- --
- 2.0.1
|