diff options
-rw-r--r-- | lib/http.c | 16 | ||||
-rw-r--r-- | lib/url.c | 4 | ||||
-rw-r--r-- | tests/data/test540 | 13 |
3 files changed, 17 insertions, 16 deletions
diff --git a/lib/http.c b/lib/http.c index 961c80080..0b680b2d6 100644 --- a/lib/http.c +++ b/lib/http.c @@ -2312,20 +2312,10 @@ CURLcode Curl_http(struct connectdata *conn, bool *done) te ); - /* clear userpwd to avoid re-using credentials from re-used connections */ + /* clear userpwd and proxyuserpwd to avoid re-using old credentials + * from re-used connections */ Curl_safefree(conn->allocptr.userpwd); - - /* - * Free proxyuserpwd for Negotiate/NTLM. Cannot reuse as it is associated - * with the connection and shouldn't be repeated over it either. - */ - switch(data->state.authproxy.picked) { - case CURLAUTH_NEGOTIATE: - case CURLAUTH_NTLM: - case CURLAUTH_NTLM_WB: - Curl_safefree(conn->allocptr.proxyuserpwd); - break; - } + Curl_safefree(conn->allocptr.proxyuserpwd); if(result) return result; @@ -3277,9 +3277,7 @@ proxy_info_matches(const struct proxy_info* data, { if((data->proxytype == needle->proxytype) && (data->port == needle->port) && - Curl_safe_strcasecompare(data->host.name, needle->host.name) && - Curl_safe_strcasecompare(data->user, needle->user) && - Curl_safe_strcasecompare(data->passwd, needle->passwd)) + Curl_safe_strcasecompare(data->host.name, needle->host.name)) return TRUE; return FALSE; diff --git a/tests/data/test540 b/tests/data/test540 index 8decaea9d..8391cbe78 100644 --- a/tests/data/test540 +++ b/tests/data/test540 @@ -11,6 +11,9 @@ multi # Server-side <reply> +<servercmd> +connection-monitor +</servercmd> # this is returned first since we get no proxy-auth <data> @@ -40,6 +43,10 @@ Content-Length: 21 Server: no
Nice proxy auth sir! +HTTP/1.1 407 Authorization Required to proxy me my dear
+Proxy-Authenticate: Digest realm="weirdorealm", nonce="12345"
+Content-Length: 33
+
HTTP/1.1 200 OK
Content-Length: 21
Server: no
@@ -88,10 +95,16 @@ Proxy-Connection: Keep-Alive GET http://test.remote.example.com/path/540 HTTP/1.1
Host: custom.set.host.name
+Accept: */*
+Proxy-Connection: Keep-Alive
+
+GET http://test.remote.example.com/path/540 HTTP/1.1
+Host: custom.set.host.name
Proxy-Authorization: Digest username="silly", realm="weirdorealm", nonce="12345", uri="/path/540", response="ca507dcf189196b6a5374d3233042261"
Accept: */*
Proxy-Connection: Keep-Alive
+[DISCONNECT] </protocol> </verify> </testcase> |