]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
Curl_http2_setup: don't change connection data on repeat invokes
authorDaniel Stenberg <daniel@haxx.se>
Thu, 16 Sep 2021 06:50:54 +0000 (08:50 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Thu, 16 Sep 2021 09:23:55 +0000 (11:23 +0200)
Regression from 3cb8a748670ab88c (releasde in 7.79.0). That change moved
transfer oriented inits to before the check but also erroneously moved a
few connection oriented ones, which causes problems.

Reported-by: Evangelos Foutras
Fixes #7730
Closes #7731

lib/http2.c

index a3de607c7d246f417160f281a59050d7cd5dc488..6d63f43636a52e1a84054c8f50904fc29142002b 100644 (file)
@@ -2221,12 +2221,6 @@ CURLcode Curl_http2_setup(struct Curl_easy *data,
   stream->mem = data->state.buffer;
   stream->len = data->set.buffer_size;
 
-  httpc->inbuflen = 0;
-  httpc->nread_inbuf = 0;
-
-  httpc->pause_stream_id = 0;
-  httpc->drain_total = 0;
-
   multi_connchanged(data->multi);
   /* below this point only connection related inits are done, which only needs
      to be done once per connection */
@@ -2252,6 +2246,12 @@ CURLcode Curl_http2_setup(struct Curl_easy *data,
   conn->httpversion = 20;
   conn->bundle->multiuse = BUNDLE_MULTIPLEX;
 
+  httpc->inbuflen = 0;
+  httpc->nread_inbuf = 0;
+
+  httpc->pause_stream_id = 0;
+  httpc->drain_total = 0;
+
   infof(data, "Connection state changed (HTTP/2 confirmed)");
 
   return CURLE_OK;