diff options
author | Matt Ward <ward.matt@gmail.com> | 2014-05-14 13:51:14 +0400 |
---|---|---|
committer | Matt Ward <ward.matt@gmail.com> | 2014-05-14 13:51:14 +0400 |
commit | fdcde2929428e18f10fb05ea5b43ea3ed119053e (patch) | |
tree | 3113b6104b9293d022fba7aa3690744015640e8f /main/external/nuget-binary | |
parent | 8c05492222320a5f1ba73dcfbdb7802607a23695 (diff) |
[NuGet] Fix proxy credentials not requested for https package source.
Fix bug 19688 - Getting error "could not add packages" while creating
Xamarin.Forms solution after selecting secure web proxy (Https) on Mac.
https://bugzilla.xamarin.com/show_bug.cgi?id=19688
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.
Diffstat (limited to 'main/external/nuget-binary')
m--------- | main/external/nuget-binary | 0 |
1 files changed, 0 insertions, 0 deletions
diff --git a/main/external/nuget-binary b/main/external/nuget-binary -Subproject e429d19cb5e9a170dbd821222e2416d7ff3e902 +Subproject baab2c4fe82ecc5563a331a677e26d884c598ef |