summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Martín Nieto <cmn@dwim.me>2015-09-23 04:39:05 +0200
committerCarlos Martín Nieto <cmn@dwim.me>2016-04-19 13:54:19 +0200
commit22e6aa0d4fc7a619472aa8da69163dc210781956 (patch)
treec304ac47eda55a6b5a338bc286bb8d1094688c8a
parent2f3f1ee08532b10993b7e9270e5fe61f08f795ee (diff)
downloadlibgit2-22e6aa0d4fc7a619472aa8da69163dc210781956.tar.gz
proxy: don't require the trailing slash on WinHTTP
The path is not something that you use for proxies, so make use of the new optionality of the path when extracting URL parts.
-rw-r--r--appveyor.yml4
-rw-r--r--src/transports/winhttp.c3
2 files changed, 4 insertions, 3 deletions
diff --git a/appveyor.yml b/appveyor.yml
index 50152adb2..4c58df6b3 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -40,9 +40,9 @@ test_script:
ctest -V -R libgit2_clar-cred_callback
Start-Job { java -jar $Env:APPVEYOR_BUILD_FOLDER\build\poxyproxy.jar -d --port 8080 --credentials foo:bar }
ctest -V .
- $env:GITTEST_REMOTE_PROXY_URL = "http://foo:bar@localhost:8080/"
+ $env:GITTEST_REMOTE_PROXY_URL = "http://foo:bar@localhost:8080"
.\Debug\libgit2_clar.exe -sonline::clone::proxy_credentials_in_url
- $env:GITTEST_REMOTE_PROXY_URL = "http://localhost:8080/"
+ $env:GITTEST_REMOTE_PROXY_URL = "http://localhost:8080"
$env:GITTEST_REMOTE_PROXY_USER = "foo"
$env:GITTEST_REMOTE_PROXY_PASS = "bar"
.\Debug\libgit2_clar.exe -sonline::clone::proxy_credentials_request
diff --git a/src/transports/winhttp.c b/src/transports/winhttp.c
index 22be39c6c..5a506d20d 100644
--- a/src/transports/winhttp.c
+++ b/src/transports/winhttp.c
@@ -388,7 +388,8 @@ static int winhttp_stream_connect(winhttp_stream *s)
WINHTTP_PROXY_INFO proxy_info;
wchar_t *proxy_wide;
- if ((error = gitno_connection_data_from_url(&t->proxy_connection_data, proxy_url, NULL)) < 0)
+ if ((error = gitno_extract_url_parts(&t->proxy_connection_data.host, &t->proxy_connection_data.port, NULL,
+ &t->proxy_connection_data.user, &t->proxy_connection_data.pass, proxy_url, NULL)) < 0)
goto on_error;
if (t->proxy_connection_data.user && t->proxy_connection_data.pass) {