summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Martín Nieto <cmn@dwim.me>2016-03-14 17:36:04 +0100
committerCarlos Martín Nieto <cmn@dwim.me>2016-04-19 13:54:19 +0200
commit0d72f67f28d52b3d7fb2760484fb51c014273bb2 (patch)
tree17e9de02338e01e47a1f9af84b62985991d0dacd
parentdb01724fd969a7d01711e1b8e6f8d763873c9245 (diff)
downloadlibgit2-0d72f67f28d52b3d7fb2760484fb51c014273bb2.tar.gz
proxy: don't specify the protocol in the type
We leave this up to the scheme in the url field. The type should only tell us about whether we want a proxy and whether we want to auto-detect it.
-rw-r--r--include/git2/proxy.h15
-rw-r--r--src/transports/http.c2
-rw-r--r--src/transports/winhttp.c2
-rw-r--r--tests/online/clone.c4
4 files changed, 9 insertions, 14 deletions
diff --git a/include/git2/proxy.h b/include/git2/proxy.h
index b45b55b3b..dcd615633 100644
--- a/include/git2/proxy.h
+++ b/include/git2/proxy.h
@@ -18,6 +18,9 @@ GIT_BEGIN_DECL
typedef enum {
/**
* Do not attempt to connect through a proxy
+ *
+ * If built against lbicurl, it itself may attempt to connect
+ * to a proxy if the environment variables specify it.
*/
GIT_PROXY_NONE,
/**
@@ -25,17 +28,9 @@ typedef enum {
*/
GIT_PROXY_AUTO,
/**
- * Connect through a HTTP proxy
- */
- GIT_PROXY_HTTP,
- /**
- * Connect through a SOCKS v4 proxy
- */
- GIT_PROXY_SOCKS4,
- /**
- * Connect through a SOCKS v5 proxy
+ * Connect via the URL given in the options
*/
- GIT_PROXY_SOCKS5,
+ GIT_PROXY_SPECIFIED,
} git_proxy_t;
/**
diff --git a/src/transports/http.c b/src/transports/http.c
index 03a16da98..7bb3374a0 100644
--- a/src/transports/http.c
+++ b/src/transports/http.c
@@ -575,7 +575,7 @@ static int apply_proxy_config(http_subtransport *t)
if ((error = git_remote__get_http_proxy(t->owner->owner, !!t->connection_data.use_ssl, &url)) < 0)
return error;
- opts.type = GIT_PROXY_HTTP;
+ opts.type = GIT_PROXY_SPECIFIED;
opts.url = url;
error = git_stream_set_proxy(t->io, &opts);
git__free(url);
diff --git a/src/transports/winhttp.c b/src/transports/winhttp.c
index d9f38c826..580c3b91b 100644
--- a/src/transports/winhttp.c
+++ b/src/transports/winhttp.c
@@ -381,7 +381,7 @@ static int winhttp_stream_connect(winhttp_stream *s)
if (git_remote__get_http_proxy(t->owner->owner, !!t->connection_data.use_ssl, &proxy_url) < 0)
goto on_error;
}
- else if (proxy_opts->type == GIT_PROXY_HTTP) {
+ else if (proxy_opts->type == GIT_PROXY_SPECIFIED) {
proxy_url = git__strdup(proxy_opts->url);
GITERR_CHECK_ALLOC(proxy_url);
}
diff --git a/tests/online/clone.c b/tests/online/clone.c
index d2a5928da..0fc8d4271 100644
--- a/tests/online/clone.c
+++ b/tests/online/clone.c
@@ -678,7 +678,7 @@ void test_online_clone__proxy_credentials_request(void)
if (!_remote_proxy_url || !_remote_proxy_user || !_remote_proxy_pass)
cl_skip();
- g_options.fetch_opts.proxy_opts.type = GIT_PROXY_HTTP;
+ g_options.fetch_opts.proxy_opts.type = GIT_PROXY_SPECIFIED;
g_options.fetch_opts.proxy_opts.url = _remote_proxy_url;
g_options.fetch_opts.proxy_opts.credentials = proxy_creds;
called_proxy_creds = 0;
@@ -691,7 +691,7 @@ void test_online_clone__proxy_credentials_in_url(void)
if (!_remote_proxy_url)
cl_skip();
- g_options.fetch_opts.proxy_opts.type = GIT_PROXY_HTTP;
+ g_options.fetch_opts.proxy_opts.type = GIT_PROXY_SPECIFIED;
g_options.fetch_opts.proxy_opts.url = _remote_proxy_url;
called_proxy_creds = 0;
cl_git_pass(git_clone(&g_repo, "http://github.com/libgit2/TestGitRepository", "./foo", &g_options));