aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJay Satiro <raysatiro@yahoo.com>2016-06-05 03:13:32 -0400
committerJay Satiro <raysatiro@yahoo.com>2016-06-05 03:13:32 -0400
commit1aa899ff38548a5d1c196f5c9ad7047f0fae3f5a (patch)
tree05d845afee79ea80291a6da67fb5494a21af6ddb /lib
parent61c92c7850cb83c572827dc348247b8b9b57c25a (diff)
downloadgnurl-1aa899ff38548a5d1c196f5c9ad7047f0fae3f5a.tar.gz
gnurl-1aa899ff38548a5d1c196f5c9ad7047f0fae3f5a.tar.bz2
gnurl-1aa899ff38548a5d1c196f5c9ad7047f0fae3f5a.zip
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
Diffstat (limited to 'lib')
-rw-r--r--lib/http.c7
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;