From 901804ef95777b8e735a55b77f8dd630a58c575b Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Thu, 16 Sep 2021 08:50:54 +0200 Subject: [PATCH] Curl_http2_setup: don't change connection data on repeat invokes 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 | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/http2.c b/lib/http2.c index a3de607c7d..6d63f43636 100644 --- a/lib/http2.c +++ b/lib/http2.c @@ -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;