aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2015-05-12 11:46:58 +0200
committerDaniel Stenberg <daniel@haxx.se>2015-05-18 09:33:47 +0200
commit193251794aa702b9156280967f19cbebaaae035d (patch)
treecd62841ca443653ee1f6141975e23df60309c1b5 /lib
parent8b38fcf2f610e5e5a7f9ffdb60611a8970a01d6d (diff)
IsPipeliningPossible: fixed for http2
Diffstat (limited to 'lib')
-rw-r--r--lib/url.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/lib/url.c b/lib/url.c
index 7eb1c4778..a38062aed 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -2810,21 +2810,26 @@ static bool SocketIsDead(curl_socket_t sock)
return ret_val;
}
+/*
+ * IsPipeliningPossible() returns TRUE if the options set would allow
+ * pipelining/multiplexing and the connection is using a HTTP protocol.
+ */
static bool IsPipeliningPossible(const struct SessionHandle *handle,
const struct connectdata *conn)
{
/* If a HTTP protocol and pipelining is enabled */
- if((conn->handler->protocol & PROTO_FAMILY_HTTP) &&
- Curl_pipeline_wanted(handle->multi, CURLPIPE_ANY)) {
+ if(conn->handler->protocol & PROTO_FAMILY_HTTP) {
- if((handle->set.httpversion != CURL_HTTP_VERSION_1_0) &&
+ if(Curl_pipeline_wanted(handle->multi, CURLPIPE_HTTP1) &&
+ (handle->set.httpversion != CURL_HTTP_VERSION_1_0) &&
(handle->set.httpreq == HTTPREQ_GET ||
handle->set.httpreq == HTTPREQ_HEAD))
/* didn't ask for HTTP/1.0 and a GET or HEAD */
return TRUE;
- if(conn->httpversion == 20)
- /* talking HTTP/2 */
+ if(Curl_pipeline_wanted(handle->multi, CURLPIPE_MULTIPLEX) &&
+ (handle->set.httpversion == CURL_HTTP_VERSION_2_0))
+ /* allows HTTP/2 */
return TRUE;
}
return FALSE;