diff options
author | Jay Satiro <raysatiro@yahoo.com> | 2019-05-08 03:39:53 -0400 |
---|---|---|
committer | Jay Satiro <raysatiro@yahoo.com> | 2019-05-08 22:50:41 -0400 |
commit | b5901cab574aa673b0b7195be501ab9492b3832b (patch) | |
tree | b95ce39cf5d2aaef0ef71d15df75f964c4c12980 /lib | |
parent | 21d070a0cb3b980c94f72375e2d8553ad5403aec (diff) |
http: Ignore HTTP/2 prior knowledge setting for HTTP proxies
- Do not switch to HTTP/2 for an HTTP proxy that is not tunnelling to
the destination host.
We already do something similar for HTTPS proxies by not sending h2. [1]
Prior to this change setting CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE would
incorrectly use HTTP/2 to talk to the proxy, which is not something we
support (yet?). Also it's debatable whether or not that setting should
apply to HTTP/2 proxies.
[1]: https://github.com/curl/curl/commit/17c5d05
Bug: https://github.com/curl/curl/issues/3570
Bug: https://github.com/curl/curl/issues/3832
Closes https://github.com/curl/curl/pull/3853
Diffstat (limited to 'lib')
-rw-r--r-- | lib/http.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/http.c b/lib/http.c index 76a504b5a..b182844ff 100644 --- a/lib/http.c +++ b/lib/http.c @@ -1970,6 +1970,13 @@ CURLcode Curl_http(struct connectdata *conn, bool *done) #ifdef USE_NGHTTP2 if(conn->data->set.httpversion == CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE) { + if(conn->bits.httpproxy && !conn->bits.tunnel_proxy) { + /* We don't support HTTP/2 proxies yet. Also it's debatable whether + or not this setting should apply to HTTP/2 proxies. */ + infof(data, "Ignoring HTTP/2 prior knowledge due to proxy\n"); + break; + } + DEBUGF(infof(data, "HTTP/2 over clean TCP\n")); conn->httpversion = 20; |