diff --git a/http-fetch.c b/http-fetch.c index 3af4c71bd0fb8370c6f08b0e3d43adc722cac2f4..e341872a6bcfc5730cbbfd19b97f8cf58865e403 100644 --- a/http-fetch.c +++ b/http-fetch.c @@ -63,7 +63,7 @@ int main(int argc, const char **argv) git_config(git_default_config, NULL); - http_init(NULL); + http_init(NULL, url); walker = get_http_walker(url); walker->get_tree = get_tree; walker->get_history = get_history; diff --git a/http-push.c b/http-push.c index 6e8f6d09abb6397f1782fa32d9d273fc4fc740fe..ecbfae56da8d0a8fe304bf9d1a00073a3d6a5363 100644 --- a/http-push.c +++ b/http-push.c @@ -1747,7 +1747,6 @@ int main(int argc, char **argv) int i; int new_refs; struct ref *ref, *local_refs; - struct remote *remote; git_extract_argv0_path(argv[0]); @@ -1821,14 +1820,7 @@ int main(int argc, char **argv) memset(remote_dir_exists, -1, 256); - /* - * Create a minimum remote by hand to give to http_init(), - * primarily to allow it to look at the URL. - */ - remote = xcalloc(sizeof(*remote), 1); - ALLOC_GROW(remote->url, remote->url_nr + 1, remote->url_alloc); - remote->url[remote->url_nr++] = repo->url; - http_init(remote); + http_init(NULL, repo->url); #ifdef USE_CURL_MULTI is_running_queue = 0; diff --git a/http.c b/http.c index 7ae0c2a3208966bfda15e73299388595b510a776..00a8553fcc10af2c37520d4a0eaae9e50f8e504c 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; } diff --git a/http.h b/http.h index 0bf8592dc45209c9be5b8ddac3a53f6fc11e29be..3c332a98e9358a296b937453351018ac1042120e 100644 --- a/http.h +++ b/http.h @@ -86,7 +86,7 @@ extern void add_fill_function(void *data, int (*fill)(void *)); extern void step_active_slots(void); #endif -extern void http_init(struct remote *remote); +extern void http_init(struct remote *remote, const char *url); extern void http_cleanup(void); extern int data_received; diff --git a/remote-curl.c b/remote-curl.c index 6c24ab157c76d2571cc13cd8817c1625dbb5659d..d4d0910e60200f0592c46aa2075acbe8394f7f85 100644 --- a/remote-curl.c +++ b/remote-curl.c @@ -850,7 +850,7 @@ int main(int argc, const char **argv) url = strbuf_detach(&buf, NULL); - http_init(remote); + http_init(remote, url); do { if (strbuf_getline(&buf, stdin, '\n') == EOF)