mirror of
https://github.com/git-for-windows/git.git
synced 2026-05-08 23:07:47 -05:00
http: extract http_reauth_prepare() from retry paths
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 <mjcheetham@outlook.com>
This commit is contained in:
committed by
Johannes Schindelin
parent
fa2dbd096d
commit
7f0f061e18
7
http.c
7
http.c
@@ -680,6 +680,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)
|
||||
{
|
||||
@@ -2427,7 +2432,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);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
6
http.h
6
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 {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user