diff options
author | Jay Satiro <raysatiro@yahoo.com> | 2016-06-05 03:13:32 -0400 |
---|---|---|
committer | Jay Satiro <raysatiro@yahoo.com> | 2016-06-05 03:13:32 -0400 |
commit | 1aa899ff38548a5d1c196f5c9ad7047f0fae3f5a (patch) | |
tree | 05d845afee79ea80291a6da67fb5494a21af6ddb | |
parent | 61c92c7850cb83c572827dc348247b8b9b57c25a (diff) |
http: Fix HTTP/2 connection reuse
- Change the parser to not require a minor version for HTTP/2.
HTTP/2 connection reuse broke when we changed from HTTP/2.0 to HTTP/2
in 8243a95 because the parser still expected a minor version.
Bug: https://github.com/curl/curl/issues/855
Reported-by: Andrew Robbins, Frank Gevaerts
-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 6a76b88ed..357f81ef2 100644 --- a/lib/http.c +++ b/lib/http.c @@ -3308,6 +3308,13 @@ CURLcode Curl_http_readwrite_headers(struct SessionHandle *data, &httpversion_major, &conn->httpversion, &k->httpcode); + + if(nc == 1 && httpversion_major == 2 && + 1 == sscanf(HEADER1, " HTTP/2 %d", &k->httpcode)) { + conn->httpversion = 0; + nc = 3; + } + if(nc==3) { conn->httpversion += 10 * httpversion_major; |