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 | |
| parent | 8b38fcf2f610e5e5a7f9ffdb60611a8970a01d6d (diff) | |
IsPipeliningPossible: fixed for http2
| -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; | 
