From 60610abe5d101f1f3acd452e51edd82033661a71 Mon Sep 17 00:00:00 2001 From: RogueException Date: Tue, 3 Nov 2015 19:08:17 -0400 Subject: [PATCH] Improved handling of SSL/TLS error --- src/Discord.Net/Net/Rest/SharpRestEngine.cs | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/Discord.Net/Net/Rest/SharpRestEngine.cs b/src/Discord.Net/Net/Rest/SharpRestEngine.cs index ff15fbff5..c8bb858bd 100644 --- a/src/Discord.Net/Net/Rest/SharpRestEngine.cs +++ b/src/Discord.Net/Net/Rest/SharpRestEngine.cs @@ -52,19 +52,15 @@ namespace Discord.Net.Rest } private async Task Send(RestRequest request, CancellationToken cancelToken) { - bool hasRetried = false; + int retryCount = 0; while (true) { var response = await _client.ExecuteTaskAsync(request, cancelToken).ConfigureAwait(false); int statusCode = (int)response.StatusCode; if (statusCode == 0) //Internal Error { - if (!hasRetried) - { - //SSL/TTS Error seems to work if we immediately retry - hasRetried = true; - continue; - } + if (response.ErrorException.HResult == -2146233079 && retryCount++ < 5) //The request was aborted: Could not create SSL/TLS secure channel. + continue; //Seems to work if we immediately retry throw response.ErrorException; } if (statusCode < 200 || statusCode >= 300) //2xx = Success