diff options
author | Matt Ward <ward.matt@gmail.com> | 2014-05-14 13:40:16 +0400 |
---|---|---|
committer | Matt Ward <ward.matt@gmail.com> | 2014-05-14 13:40:16 +0400 |
commit | baab2c4fe82ecc5563a331a677e26d884c598ef1 (patch) | |
tree | 3b4c2c3ecf74ed48b2346f55d24453d0c4467817 | |
parent | e429d19cb5e9a170dbd821222e2416d7ff3e9024 (diff) |
Fix proxy authentication failing on Mono.
Source code changes:
https://github.com/mrward/nuget/commit/5540acd6583d30f28be278897dda98afadccd065
When a system wide proxy is configured for all https requests then a
requesting a url such as https://www.nuget.org/api/v2 would fail to
request proxy credentials on Mono so the user would not be prompted.
Instead the request would be retried 10 times and then fail.
This only affects https requests. A request made to a http url such
as http://www.nuget.org/api/v2 would request the proxy credentials
from the credential provider.
With Microsoft's .NET Framework a WebException is thrown with:
WebException.Status = ProtocolError
WebException.Response.StatusCode = ProxyAuthenticationRequired
Exception call stack:
System.Net.WebException:
The remote server returned an error: (407) Proxy
Authentication Required.
at System.Net.HttpWebRequest.GetResponse()
On Mono a WebException is thrown with:
WebException.Status = SecureChannelFailure
WebException.Response = null
Exception call stack:
System.Net.WebException: Error getting response stream (The remote server
returned a 407 status code.): SecureChannelFailure ---> System.Exception:
at
System.Net.WebConnection.HandleError(WebExceptionStatus st, System.Exception e,
System.String where)
at System.Net.WebConnection.CreateTunnel(System.Net.HttpWebRequest request,
System.Uri connectUri, System.IO.Stream stream, System.Byte[] ByRef buffer)
at System.Net.WebConnection.CreateStream(System.Net.HttpWebRequest request)
at System.Net.WebConnection.InitConnection(System.Object state)
at System.Net.WebConnection.<WebConnection>m__20(System.Object state)
at System.Net.WebConnection.HandleError (WebExceptionStatus st,
System.Exception e, System.String where) [0x00000] in <filename unknown>:0
To handle this there is now a special case which checks the exception
message for the string 'The remote server returned a 407 status code.'
when running on Mono.
-rw-r--r-- | NuGet.Core.dll | bin | 561152 -> 562176 bytes |
-rw-r--r-- | NuGet.exe | bin | 1064448 -> 1064448 bytes |
2 files changed, 0 insertions, 0 deletions
diff --git a/NuGet.Core.dll b/NuGet.Core.dll Binary files differBinary files differindex 5fee943..18f769e 100644 --- a/NuGet.Core.dll +++ b/NuGet.Core.dll |