summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKartik Mahajan <kartik.mahajan@pubmatic.com>2018-01-18 22:28:59 +0530
committerDaniel Stenberg <daniel@haxx.se>2018-01-18 22:28:12 +0100
commita5e6d6ebcb8dc00f264c89c3e5376f042c372efb (patch)
treeae1d42ab05cf091b6029c26877be77390664b41f
parent87ddeee59b605bbc5ee7164105ad9aa413a4433e (diff)
downloadcurl-a5e6d6ebcb8dc00f264c89c3e5376f042c372efb.tar.gz
http2: don't close connection when single transfer is stopped
Fixes #2237 Closes #2249
-rw-r--r--lib/multi.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/multi.c b/lib/multi.c
index e35b8fa19..43823cc93 100644
--- a/lib/multi.c
+++ b/lib/multi.c
@@ -581,7 +581,8 @@ static CURLcode multi_done(struct connectdata **connp,
&& !(conn->ntlm.state == NTLMSTATE_TYPE2 ||
conn->proxyntlm.state == NTLMSTATE_TYPE2)
#endif
- ) || conn->bits.close || premature) {
+ ) || conn->bits.close
+ || (premature && !(conn->handler->flags & PROTOPT_STREAM))) {
CURLcode res2 = Curl_disconnect(conn, premature); /* close connection */
/* If we had an error already, make sure we return that one. But