From: Junio C Hamano Date: Thu, 16 Apr 2026 16:21:24 GMT Subject: Re: [PATCH 1/3] http: extract http_reauth_prepare() from retry paths Message-ID: In-Reply-To: <49488cc7d44404b9af55859dd892427bc8ee9142.1776331259.git.gitgitgadget@gmail.com> "Matthew John Cheetham via GitGitGadget" writes: > From: Matthew John Cheetham > > All three HTTP retry paths (http_request_recoverable, post_rpc, > probe_rpc) call credential_fill() directly when handling > HTTP_REAUTH. Extract this into a helper function so that a > subsequent commit can add pre-fill logic (such as attempting > empty-auth before prompting) in one place. > > No functional change. > > Signed-off-by: Matthew John Cheetham > --- > http.c | 7 ++++++- > http.h | 6 ++++++ > remote-curl.c | 4 ++-- > 3 files changed, 14 insertions(+), 3 deletions(-) Neat. > > diff --git a/http.c b/http.c > index d8d016891b..f208e0ad82 100644 > --- a/http.c > +++ b/http.c > @@ -665,6 +665,11 @@ static void init_curl_http_auth(CURL *result) > } > } > > +void http_reauth_prepare(int all_capabilities) > +{ > + credential_fill(the_repository, &http_auth, all_capabilities); > +} > + > /* *var must be free-able */ > static void var_override(char **var, char *value) > { > @@ -2398,7 +2403,7 @@ static int http_request_recoverable(const char *url, > sleep(retry_delay); > } > } else if (ret == HTTP_REAUTH) { > - credential_fill(the_repository, &http_auth, 1); > + http_reauth_prepare(1); > } > > ret = http_request(url, result, target, options); > diff --git a/http.h b/http.h > index f9ee888c3e..729c51904d 100644 > --- a/http.h > +++ b/http.h > @@ -76,6 +76,12 @@ extern int http_is_verbose; > extern ssize_t http_post_buffer; > extern struct credential http_auth; > > +/** > + * Prepare for an HTTP re-authentication retry. This fills credentials > + * via credential_fill() so the next request can include them. > + */ > +void http_reauth_prepare(int all_capabilities); > + > extern char curl_errorstr[CURL_ERROR_SIZE]; > > enum http_follow_config { > diff --git a/remote-curl.c b/remote-curl.c > index aba60d5712..affdb880f7 100644 > --- a/remote-curl.c > +++ b/remote-curl.c > @@ -946,7 +946,7 @@ static int post_rpc(struct rpc_state *rpc, int stateless_connect, int flush_rece > do { > err = probe_rpc(rpc, &results); > if (err == HTTP_REAUTH) > - credential_fill(the_repository, &http_auth, 0); > + http_reauth_prepare(0); > } while (err == HTTP_REAUTH); > if (err != HTTP_OK) > return -1; > @@ -1068,7 +1068,7 @@ retry: > rpc->any_written = 0; > err = run_slot(slot, NULL); > if (err == HTTP_REAUTH && !large_request) { > - credential_fill(the_repository, &http_auth, 0); > + http_reauth_prepare(0); > curl_slist_free_all(headers); > goto retry; > }