(Hopefully) fixed the SSL error

This commit is contained in:
RogueException
2015-09-16 11:18:41 -03:00
parent 5b9f31a445
commit b319fc703d

View File

@@ -1,6 +1,7 @@
using Newtonsoft.Json; using Newtonsoft.Json;
using System; using System;
using System.Diagnostics; using System.Diagnostics;
using System.Net;
using System.Net.Http; using System.Net.Http;
using System.Reflection; using System.Reflection;
using System.Threading; using System.Threading;
@@ -20,6 +21,7 @@ namespace Discord.Net.API
private readonly IRestEngine _engine; private readonly IRestEngine _engine;
private readonly LogMessageSeverity _logLevel; private readonly LogMessageSeverity _logLevel;
private CancellationToken _cancelToken; private CancellationToken _cancelToken;
private ServicePoint _servicePoint;
public RestClient(LogMessageSeverity logLevel) public RestClient(LogMessageSeverity logLevel)
{ {
@@ -109,6 +111,9 @@ namespace Discord.Net.API
stopwatch = Stopwatch.StartNew(); stopwatch = Stopwatch.StartNew();
string responseJson = await _engine.Send(method, path, requestJson, _cancelToken).ConfigureAwait(false); string responseJson = await _engine.Send(method, path, requestJson, _cancelToken).ConfigureAwait(false);
if (_servicePoint == null)
ConfigureServicePoint();
#if TEST_RESPONSES #if TEST_RESPONSES
if (!hasResponse && !string.IsNullOrEmpty(responseJson)) if (!hasResponse && !string.IsNullOrEmpty(responseJson))
throw new Exception("API check failed: Response is not empty."); throw new Exception("API check failed: Response is not empty.");
@@ -147,6 +152,9 @@ namespace Discord.Net.API
stopwatch = Stopwatch.StartNew(); stopwatch = Stopwatch.StartNew();
string responseJson = await _engine.SendFile(method, path, filePath, _cancelToken).ConfigureAwait(false); string responseJson = await _engine.SendFile(method, path, filePath, _cancelToken).ConfigureAwait(false);
if (_servicePoint == null)
ConfigureServicePoint();
#if TEST_RESPONSES #if TEST_RESPONSES
if (!hasResponse && !string.IsNullOrEmpty(responseJson)) if (!hasResponse && !string.IsNullOrEmpty(responseJson))
throw new Exception("API check failed: Response is not empty."); throw new Exception("API check failed: Response is not empty.");
@@ -184,5 +192,14 @@ namespace Discord.Net.API
internal void SetToken(string token) => _engine.SetToken(token); internal void SetToken(string token) => _engine.SetToken(token);
internal void SetCancelToken(CancellationToken token) => _cancelToken = token; internal void SetCancelToken(CancellationToken token) => _cancelToken = token;
private void ConfigureServicePoint()
{
_servicePoint = ServicePointManager.FindServicePoint(new Uri(Endpoints.BaseApi));
_servicePoint.Expect100Continue = true;
_servicePoint.UseNagleAlgorithm = false;
//_servicePoint.MaxIdleTime = int.MaxValue;
//_servicePoint.ConnectionLeaseTimeout = int.MaxValue;
}
} }
} }