diff options
author | Daniel Stenberg <daniel@haxx.se> | 2015-05-12 11:46:58 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2015-05-18 09:33:47 +0200 |
commit | 193251794aa702b9156280967f19cbebaaae035d (patch) | |
tree | cd62841ca443653ee1f6141975e23df60309c1b5 /lib | |
parent | 8b38fcf2f610e5e5a7f9ffdb60611a8970a01d6d (diff) |
IsPipeliningPossible: fixed for http2
Diffstat (limited to 'lib')
-rw-r--r-- | lib/url.c | 15 |
1 files changed, 10 insertions, 5 deletions
@@ -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; |