1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-06 09:56:12 +02:00

Add remote.<name>.proxy

As well as allowing a default http.proxy option, allow it to be set
per-remote.

Signed-off-by: Sam Vilain <sam.vilain@catalyst.net.nz>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Sam Vilain 2007-12-04 10:48:54 +13:00 committed by Junio C Hamano
parent 9c5665aa3c
commit 14c9821884
4 changed files with 18 additions and 1 deletions

View File

@ -552,7 +552,8 @@ access method.
http.proxy::
Override the HTTP proxy, normally configured using the 'http_proxy'
environment variable (see gitlink:curl[1]).
environment variable (see gitlink:curl[1]). This can be overridden
on a per-remote basis; see remote.<name>.proxy
http.sslVerify::
Whether to verify the SSL certificate when fetching or pushing
@ -702,6 +703,11 @@ remote.<name>.url::
The URL of a remote repository. See gitlink:git-fetch[1] or
gitlink:git-push[1].
remote.<name>.proxy::
For remotes that require curl (http, https and ftp), the URL to
the proxy to use for that remote. Set to the empty string to
disable proxying for that remote.
remote.<name>.fetch::
The default set of "refspec" for gitlink:git-fetch[1]. See
gitlink:git-fetch[1].

View File

@ -278,6 +278,8 @@ static int handle_config(const char *key, const char *value)
} else if (!strcmp(subkey, ".tagopt")) {
if (!strcmp(value, "--no-tags"))
remote->fetch_tags = -1;
} else if (!strcmp(subkey, ".proxy")) {
remote->http_proxy = xstrdup(value);
}
return 0;
}

View File

@ -25,6 +25,11 @@ struct remote {
const char *receivepack;
const char *uploadpack;
/*
* for curl remotes only
*/
char *http_proxy;
};
struct remote *remote_get(const char *name);

View File

@ -470,6 +470,10 @@ static struct ref *get_refs_via_curl(struct transport *transport)
curl_easy_setopt(slot->curl, CURLOPT_WRITEFUNCTION, fwrite_buffer);
curl_easy_setopt(slot->curl, CURLOPT_URL, refs_url);
curl_easy_setopt(slot->curl, CURLOPT_HTTPHEADER, NULL);
if (transport->remote->http_proxy)
curl_easy_setopt(slot->curl, CURLOPT_PROXY,
transport->remote->http_proxy);
if (start_active_slot(slot)) {
run_active_slot(slot);
if (results.curl_result != CURLE_OK) {