Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ EstablishSslConnectionAsync()

static async ValueTask< SslStream > System.Net.Http.ConnectHelper.EstablishSslConnectionAsync ( SslClientAuthenticationOptions sslOptions,
HttpRequestMessage request,
bool async,
Stream stream,
CancellationToken cancellationToken )
inlinestatic

Definition at line 45 of file ConnectHelper.cs.

46 {
47 sslOptions = SetUpRemoteCertificateValidationCallback(sslOptions, request);
48 SslStream sslStream = new SslStream(stream);
49 try
50 {
51 if (async)
52 {
53 await sslStream.AuthenticateAsClientAsync(sslOptions, cancellationToken).ConfigureAwait(continueOnCapturedContext: false);
54 }
55 else
56 {
57 using (cancellationToken.UnsafeRegister(delegate(object s)
58 {
59 ((Stream)s).Dispose();
60 }, stream))
61 {
62 sslStream.AuthenticateAsClient(sslOptions);
63 }
64 }
65 }
66 catch (Exception ex)
67 {
68 sslStream.Dispose();
69 if (ex is OperationCanceledException)
70 {
71 throw;
72 }
73 if (CancellationHelper.ShouldWrapInOperationCanceledException(ex, cancellationToken))
74 {
75 throw CancellationHelper.CreateOperationCanceledException(ex, cancellationToken);
76 }
77 throw new HttpRequestException(System.SR.net_http_ssl_connection_failed, ex);
78 }
79 if (cancellationToken.IsCancellationRequested)
80 {
81 sslStream.Dispose();
82 throw CancellationHelper.CreateOperationCanceledException(null, cancellationToken);
83 }
84 return sslStream;
85 }
static SslClientAuthenticationOptions SetUpRemoteCertificateValidationCallback(SslClientAuthenticationOptions sslOptions, HttpRequestMessage request)
override void Dispose(bool disposing)
Definition SslStream.cs:725
virtual Task AuthenticateAsClientAsync(string targetHost)
Definition SslStream.cs:554
virtual void AuthenticateAsClient(string targetHost)
Definition SslStream.cs:485
static string net_http_ssl_connection_failed
Definition SR.cs:134
Definition SR.cs:7
new ConfiguredTaskAwaitable< TResult > ConfigureAwait(bool continueOnCapturedContext)
Definition Task.cs:226

References System.Net.Security.SslStream.AuthenticateAsClient(), System.Net.Security.SslStream.AuthenticateAsClientAsync(), System.cancellationToken, System.Threading.Tasks.Task< TResult >.ConfigureAwait(), System.Net.Http.CancellationHelper.CreateOperationCanceledException(), System.Net.Security.SslStream.Dispose(), System.SR.net_http_ssl_connection_failed, System.s, System.Net.Http.ConnectHelper.SetUpRemoteCertificateValidationCallback(), System.Net.Http.CancellationHelper.ShouldWrapInOperationCanceledException(), and System.stream.

Referenced by System.Net.Http.HttpConnectionPool.ConnectAsync().