38 lines
1.1 KiB
Diff
38 lines
1.1 KiB
Diff
|
From 98d59387c749256c2421b22dc3419b94d381986a Mon Sep 17 00:00:00 2001
|
||
|
From: Daniel Stenberg <daniel@haxx.se>
|
||
|
Date: Mon, 26 Aug 2019 16:00:05 +0200
|
||
|
Subject: [PATCH] http2: when marked for closure and wanted to close == OK
|
||
|
|
||
|
It could otherwise return an error even when closed correctly if GOAWAY
|
||
|
had been received previously.
|
||
|
|
||
|
Reported-by: Tom van der Woerdt
|
||
|
Fixes #4267
|
||
|
Closes #4268
|
||
|
|
||
|
Upstream-commit: c1b6a384f9c8a91197c20adb49d43f30dc0e917d
|
||
|
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
|
||
|
---
|
||
|
lib/http2.c | 5 +++++
|
||
|
1 file changed, 5 insertions(+)
|
||
|
|
||
|
diff --git a/lib/http2.c b/lib/http2.c
|
||
|
index 930e85165..31d2d698a 100644
|
||
|
--- a/lib/http2.c
|
||
|
+++ b/lib/http2.c
|
||
|
@@ -1566,6 +1566,11 @@ static ssize_t http2_recv(struct connectdata *conn, int sockindex,
|
||
|
if(should_close_session(httpc)) {
|
||
|
H2BUGF(infof(data,
|
||
|
"http2_recv: nothing to do in this session\n"));
|
||
|
+ if(conn->bits.close) {
|
||
|
+ /* already marked for closure, return OK and we're done */
|
||
|
+ *err = CURLE_OK;
|
||
|
+ return 0;
|
||
|
+ }
|
||
|
*err = CURLE_HTTP2;
|
||
|
return -1;
|
||
|
}
|
||
|
--
|
||
|
2.20.1
|
||
|
|