From: Daniel Stenberg Date: Mon, 27 Apr 2015 10:52:07 +0000 (+0200) Subject: Curl_http2_setup: only do it once and enable multiplex on the server X-Git-Tag: curl-7_43_0~160 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f8586240522fe2405759ad6cb57eb2d4b142907c;p=curl Curl_http2_setup: only do it once and enable multiplex on the server Once we know we are HTTP/2 enabled we know the server can multiplex. --- diff --git a/lib/http2.c b/lib/http2.c index 9ff25803d..d01b52efd 100644 --- a/lib/http2.c +++ b/lib/http2.c @@ -32,6 +32,7 @@ #include "curl_base64.h" #include "rawstr.h" #include "multiif.h" +#include "bundles.h" /* The last #include files should be: */ #include "curl_memory.h" @@ -972,6 +973,11 @@ CURLcode Curl_http2_setup(struct connectdata *conn) { CURLcode result; struct http_conn *httpc = &conn->proto.httpc; + + if((conn->handler == &Curl_handler_http2_ssl) || + (conn->handler == &Curl_handler_http2)) + return CURLE_OK; /* already done */ + if(conn->handler->flags & PROTOPT_SSL) conn->handler = &Curl_handler_http2_ssl; else @@ -981,7 +987,7 @@ CURLcode Curl_http2_setup(struct connectdata *conn) if(result) return result; - infof(conn->data, "Using HTTP2\n"); + infof(conn->data, "Using HTTP2, server supports multi-use\n"); httpc->bodystarted = FALSE; httpc->error_code = NGHTTP2_NO_ERROR; httpc->closed = FALSE; @@ -996,6 +1002,7 @@ CURLcode Curl_http2_setup(struct connectdata *conn) httpc->status_code = -1; conn->httpversion = 20; + conn->bundle->server_supports_pipelining = TRUE; return CURLE_OK; }