aboutsummaryrefslogtreecommitdiff
path: root/http.c
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2011-10-14 09:40:40 +0200
committerJunio C Hamano <gitster@pobox.com>2011-10-15 21:18:36 -0700
commitdeba49377b717d1e26c342f65c7f5e75a2db8641 (patch)
tree2750a54dc827a61ec64d362a791b3936f6cf6e97 /http.c
parent070b4dd5899927cb399b8ae9d75cad1fce537429 (diff)
downloadgit-deba49377b717d1e26c342f65c7f5e75a2db8641.tar.gz
git-deba49377b717d1e26c342f65c7f5e75a2db8641.tar.xz
http_init: accept separate URL parameter
The http_init function takes a "struct remote". Part of its initialization procedure is to look at the remote's url and grab some auth-related parameters. However, using the url included in the remote is: - wrong; the remote-curl helper may have a separate, unrelated URL (e.g., from remote.*.pushurl). Looking at the remote's configured url is incorrect. - incomplete; http-fetch doesn't have a remote, so passes NULL. So http_init never gets to see the URL we are actually going to use. - cumbersome; http-push has a similar problem to http-fetch, but actually builds a fake remote just to pass in the URL. Instead, let's just add a separate URL parameter to http_init, and all three callsites can pass in the appropriate information. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'http.c')
-rw-r--r--http.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/http.c b/http.c
index 7ae0c2a32..00a8553fc 100644
--- a/http.c
+++ b/http.c
@@ -369,7 +369,7 @@ static void set_from_env(const char **var, const char *envname)
*var = val;
}
-void http_init(struct remote *remote)
+void http_init(struct remote *remote, const char *url)
{
char *low_speed_limit;
char *low_speed_time;
@@ -433,11 +433,11 @@ void http_init(struct remote *remote)
if (getenv("GIT_CURL_FTP_NO_EPSV"))
curl_ftp_no_epsv = 1;
- if (remote && remote->url && remote->url[0]) {
- http_auth_init(remote->url[0]);
+ if (url) {
+ http_auth_init(url);
if (!ssl_cert_password_required &&
getenv("GIT_SSL_CERT_PASSWORD_PROTECTED") &&
- !prefixcmp(remote->url[0], "https://"))
+ !prefixcmp(url, "https://"))
ssl_cert_password_required = 1;
}