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:
parent
9c5665aa3c
commit
14c9821884
@ -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].
|
||||
|
2
remote.c
2
remote.c
@ -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;
|
||||
}
|
||||
|
5
remote.h
5
remote.h
@ -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);
|
||||
|
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user