Imported Upstream version 6.4.0.173

Former-commit-id: 1fca76369cd4eee853c2b08d929399851f84c879
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2019-08-21 08:39:26 +00:00
parent 9763768dbe
commit 94da8f9655
53 changed files with 65 additions and 68 deletions

View File

@ -120,25 +120,21 @@ namespace Mono.Net.Security
ServicePointManager.CheckCertificateRevocationList).ConfigureAwait (false);
status = WebExceptionStatus.Success;
request.ServicePoint.UpdateClientCertificate (sslStream.InternalLocalCertificate);
} catch (Exception ex) {
WebConnection.Debug ($"MONO TLS STREAM ERROR: {socket.ID} {socket.CleanedUp} {ex.Message}");
if (socket.CleanedUp)
status = WebExceptionStatus.RequestCanceled;
else if (CertificateValidationFailed)
status = WebExceptionStatus.TrustFailure;
else
status = WebExceptionStatus.SecureChannelFailure;
throw;
} finally {
WebConnection.Debug ($"MONO TLS STREAM CREATE STREAM DONE: {socket.ID} {socket.CleanedUp}");
if (CertificateValidationFailed)
status = WebExceptionStatus.TrustFailure;
if (status == WebExceptionStatus.Success)
request.ServicePoint.UpdateClientCertificate (sslStream.InternalLocalCertificate);
else {
request.ServicePoint.UpdateClientCertificate (null);
sslStream.Dispose ();
sslStream = null;
}
request.ServicePoint.UpdateClientCertificate (null);
sslStream.Dispose ();
sslStream = null;
throw;
}
try {
@ -146,6 +142,7 @@ namespace Mono.Net.Security
await sslStream.WriteAsync (tunnel.Data, 0, tunnel.Data.Length, cancellationToken).ConfigureAwait (false);
} catch {
status = WebExceptionStatus.SendFailure;
sslStream.Dispose ();
sslStream = null;
throw;
}