976 lines
30 KiB
C#
976 lines
30 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Runtime.InteropServices;
|
|
using System.Security.Cryptography.X509Certificates;
|
|
using System.Threading;
|
|
using BestHTTP.Caching;
|
|
using BestHTTP.Cookies;
|
|
using BestHTTP.Extensions;
|
|
using BestHTTP.Logger;
|
|
using BestHTTP.PlatformSupport.FileSystem;
|
|
using BestHTTP.Statistics;
|
|
using Cpp2IlInjected;
|
|
using Org.BouncyCastle.Crypto.Tls;
|
|
using UnityEngine;
|
|
|
|
namespace BestHTTP
|
|
{
|
|
// Token: 0x020012A1 RID: 4769
|
|
[Token(Token = "0x20012A1")]
|
|
[StructLayout(3)]
|
|
public static class HTTPManager
|
|
{
|
|
// Token: 0x060076AB RID: 30379 RVA: 0x001891B4 File Offset: 0x001873B4
|
|
[Token(Token = "0x60076AB")]
|
|
[Address(RVA = "0x1C909D0", Offset = "0x1C8F3D0", VA = "0x181C909D0")]
|
|
static HTTPManager()
|
|
{
|
|
TimeSpan timeSpan;
|
|
HTTPManager.MaxConnectionIdleTime = timeSpan;
|
|
TimeSpan timeSpan2;
|
|
HTTPManager.ConnectTimeout = timeSpan2;
|
|
TimeSpan timeSpan3;
|
|
HTTPManager.RequestTimeout = timeSpan3;
|
|
HTTPManager.logger = new DefaultLogger();
|
|
HTTPManager.IOService = new DefaultIOService();
|
|
}
|
|
|
|
// Token: 0x17001329 RID: 4905
|
|
// (get) Token: 0x060076AC RID: 30380 RVA: 0x00189224 File Offset: 0x00187424
|
|
// (set) Token: 0x060076AD RID: 30381 RVA: 0x00189238 File Offset: 0x00187438
|
|
[Token(Token = "0x17001329")]
|
|
public static byte MaxConnectionPerServer
|
|
{
|
|
[Token(Token = "0x60076AC")]
|
|
[Address(RVA = "0x1C91690", Offset = "0x1C90090", VA = "0x181C91690")]
|
|
get
|
|
{
|
|
return HTTPManager.maxConnectionPerServer;
|
|
}
|
|
[Token(Token = "0x60076AD")]
|
|
[Address(RVA = "0x1C91DB0", Offset = "0x1C907B0", VA = "0x181C91DB0")]
|
|
set
|
|
{
|
|
HTTPManager.maxConnectionPerServer = value;
|
|
}
|
|
}
|
|
|
|
// Token: 0x1700132A RID: 4906
|
|
// (get) Token: 0x060076AE RID: 30382 RVA: 0x00189258 File Offset: 0x00187458
|
|
// (set) Token: 0x060076AF RID: 30383 RVA: 0x0018926C File Offset: 0x0018746C
|
|
[Token(Token = "0x1700132A")]
|
|
public static bool KeepAliveDefaultValue
|
|
{
|
|
[Token(Token = "0x60076AE")]
|
|
[Address(RVA = "0x1C91450", Offset = "0x1C8FE50", VA = "0x181C91450")]
|
|
get;
|
|
[Token(Token = "0x60076AF")]
|
|
[Address(RVA = "0x1C91C90", Offset = "0x1C90690", VA = "0x181C91C90")]
|
|
set;
|
|
}
|
|
|
|
// Token: 0x1700132B RID: 4907
|
|
// (get) Token: 0x060076B0 RID: 30384 RVA: 0x00189280 File Offset: 0x00187480
|
|
// (set) Token: 0x060076B1 RID: 30385 RVA: 0x00189294 File Offset: 0x00187494
|
|
[Token(Token = "0x1700132B")]
|
|
public static bool IsCachingDisabled
|
|
{
|
|
[Token(Token = "0x60076B0")]
|
|
[Address(RVA = "0x1C91330", Offset = "0x1C8FD30", VA = "0x181C91330")]
|
|
get;
|
|
[Token(Token = "0x60076B1")]
|
|
[Address(RVA = "0x1C91B70", Offset = "0x1C90570", VA = "0x181C91B70")]
|
|
set;
|
|
}
|
|
|
|
// Token: 0x1700132C RID: 4908
|
|
// (get) Token: 0x060076B2 RID: 30386 RVA: 0x001892A8 File Offset: 0x001874A8
|
|
// (set) Token: 0x060076B3 RID: 30387 RVA: 0x001892BC File Offset: 0x001874BC
|
|
[Token(Token = "0x1700132C")]
|
|
public static TimeSpan MaxConnectionIdleTime
|
|
{
|
|
[Token(Token = "0x60076B2")]
|
|
[Address(RVA = "0x1C91630", Offset = "0x1C90030", VA = "0x181C91630")]
|
|
get;
|
|
[Token(Token = "0x60076B3")]
|
|
[Address(RVA = "0x1C91D50", Offset = "0x1C90750", VA = "0x181C91D50")]
|
|
set;
|
|
}
|
|
|
|
// Token: 0x1700132D RID: 4909
|
|
// (get) Token: 0x060076B4 RID: 30388 RVA: 0x001892D0 File Offset: 0x001874D0
|
|
// (set) Token: 0x060076B5 RID: 30389 RVA: 0x001892E4 File Offset: 0x001874E4
|
|
[Token(Token = "0x1700132D")]
|
|
public static bool IsCookiesEnabled
|
|
{
|
|
[Token(Token = "0x60076B4")]
|
|
[Address(RVA = "0x1C91390", Offset = "0x1C8FD90", VA = "0x181C91390")]
|
|
get;
|
|
[Token(Token = "0x60076B5")]
|
|
[Address(RVA = "0x1C91BD0", Offset = "0x1C905D0", VA = "0x181C91BD0")]
|
|
set;
|
|
}
|
|
|
|
// Token: 0x1700132E RID: 4910
|
|
// (get) Token: 0x060076B6 RID: 30390 RVA: 0x001892F8 File Offset: 0x001874F8
|
|
// (set) Token: 0x060076B7 RID: 30391 RVA: 0x0018930C File Offset: 0x0018750C
|
|
[Token(Token = "0x1700132E")]
|
|
public static uint CookieJarSize
|
|
{
|
|
[Token(Token = "0x60076B6")]
|
|
[Address(RVA = "0x1C90FE0", Offset = "0x1C8F9E0", VA = "0x181C90FE0")]
|
|
get;
|
|
[Token(Token = "0x60076B7")]
|
|
[Address(RVA = "0x1C91990", Offset = "0x1C90390", VA = "0x181C91990")]
|
|
set;
|
|
}
|
|
|
|
// Token: 0x1700132F RID: 4911
|
|
// (get) Token: 0x060076B8 RID: 30392 RVA: 0x00189320 File Offset: 0x00187520
|
|
// (set) Token: 0x060076B9 RID: 30393 RVA: 0x00189334 File Offset: 0x00187534
|
|
[Token(Token = "0x1700132F")]
|
|
public static bool EnablePrivateBrowsing
|
|
{
|
|
[Token(Token = "0x60076B8")]
|
|
[Address(RVA = "0x1C91160", Offset = "0x1C8FB60", VA = "0x181C91160")]
|
|
get;
|
|
[Token(Token = "0x60076B9")]
|
|
[Address(RVA = "0x1C91B10", Offset = "0x1C90510", VA = "0x181C91B10")]
|
|
set;
|
|
}
|
|
|
|
// Token: 0x17001330 RID: 4912
|
|
// (get) Token: 0x060076BA RID: 30394 RVA: 0x00189348 File Offset: 0x00187548
|
|
// (set) Token: 0x060076BB RID: 30395 RVA: 0x0018935C File Offset: 0x0018755C
|
|
[Token(Token = "0x17001330")]
|
|
public static TimeSpan ConnectTimeout
|
|
{
|
|
[Token(Token = "0x60076BA")]
|
|
[Address(RVA = "0x1C90F80", Offset = "0x1C8F980", VA = "0x181C90F80")]
|
|
get;
|
|
[Token(Token = "0x60076BB")]
|
|
[Address(RVA = "0x1C91930", Offset = "0x1C90330", VA = "0x181C91930")]
|
|
set;
|
|
}
|
|
|
|
// Token: 0x17001331 RID: 4913
|
|
// (get) Token: 0x060076BC RID: 30396 RVA: 0x00189370 File Offset: 0x00187570
|
|
// (set) Token: 0x060076BD RID: 30397 RVA: 0x00189384 File Offset: 0x00187584
|
|
[Token(Token = "0x17001331")]
|
|
public static TimeSpan RequestTimeout
|
|
{
|
|
[Token(Token = "0x60076BC")]
|
|
[Address(RVA = "0x1C91810", Offset = "0x1C90210", VA = "0x181C91810")]
|
|
get;
|
|
[Token(Token = "0x60076BD")]
|
|
[Address(RVA = "0x1C91F60", Offset = "0x1C90960", VA = "0x181C91F60")]
|
|
set;
|
|
}
|
|
|
|
// Token: 0x17001332 RID: 4914
|
|
// (get) Token: 0x060076BE RID: 30398 RVA: 0x00189398 File Offset: 0x00187598
|
|
// (set) Token: 0x060076BF RID: 30399 RVA: 0x001893AC File Offset: 0x001875AC
|
|
[Token(Token = "0x17001332")]
|
|
public static Func<string> RootCacheFolderProvider
|
|
{
|
|
[Token(Token = "0x60076BE")]
|
|
[Address(RVA = "0x1C91870", Offset = "0x1C90270", VA = "0x181C91870")]
|
|
get;
|
|
[Token(Token = "0x60076BF")]
|
|
[Address(RVA = "0x1C91FC0", Offset = "0x1C909C0", VA = "0x181C91FC0")]
|
|
set;
|
|
}
|
|
|
|
// Token: 0x17001333 RID: 4915
|
|
// (get) Token: 0x060076C0 RID: 30400 RVA: 0x001893C0 File Offset: 0x001875C0
|
|
// (set) Token: 0x060076C1 RID: 30401 RVA: 0x001893D4 File Offset: 0x001875D4
|
|
[Token(Token = "0x17001333")]
|
|
public static Proxy Proxy
|
|
{
|
|
[Token(Token = "0x60076C0")]
|
|
[Address(RVA = "0x1C917B0", Offset = "0x1C901B0", VA = "0x181C917B0")]
|
|
get;
|
|
[Token(Token = "0x60076C1")]
|
|
[Address(RVA = "0x1C91F00", Offset = "0x1C90900", VA = "0x181C91F00")]
|
|
set;
|
|
}
|
|
|
|
// Token: 0x17001334 RID: 4916
|
|
// (get) Token: 0x060076C2 RID: 30402 RVA: 0x001893E8 File Offset: 0x001875E8
|
|
[Token(Token = "0x17001334")]
|
|
public static HeartbeatManager Heartbeats
|
|
{
|
|
[Token(Token = "0x60076C2")]
|
|
[Address(RVA = "0x1C911C0", Offset = "0x1C8FBC0", VA = "0x181C911C0")]
|
|
get
|
|
{
|
|
HeartbeatManager heartbeatManager = new HeartbeatManager();
|
|
List<IHeartbeat> list = new List();
|
|
heartbeatManager.Heartbeats = list;
|
|
DateTime minValue = DateTime.MinValue;
|
|
heartbeatManager.LastUpdate = minValue;
|
|
HTTPManager.heartbeats = heartbeatManager;
|
|
return HTTPManager.heartbeats;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17001335 RID: 4917
|
|
// (get) Token: 0x060076C3 RID: 30403 RVA: 0x00189428 File Offset: 0x00187628
|
|
// (set) Token: 0x060076C4 RID: 30404 RVA: 0x00189460 File Offset: 0x00187660
|
|
[Token(Token = "0x17001335")]
|
|
public static BestHTTP.Logger.ILogger Logger
|
|
{
|
|
[Token(Token = "0x60076C3")]
|
|
[Address(RVA = "0x1C914B0", Offset = "0x1C8FEB0", VA = "0x181C914B0")]
|
|
get
|
|
{
|
|
HTTPManager.logger = new DefaultLogger();
|
|
BestHTTP.Logger.ILogger logger = HTTPManager.logger;
|
|
int num = 0;
|
|
num += num;
|
|
num++;
|
|
return HTTPManager.logger;
|
|
}
|
|
[Token(Token = "0x60076C4")]
|
|
[Address(RVA = "0x1C91CF0", Offset = "0x1C906F0", VA = "0x181C91CF0")]
|
|
set
|
|
{
|
|
HTTPManager.logger = value;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17001336 RID: 4918
|
|
// (get) Token: 0x060076C5 RID: 30405 RVA: 0x00189474 File Offset: 0x00187674
|
|
// (set) Token: 0x060076C6 RID: 30406 RVA: 0x00189488 File Offset: 0x00187688
|
|
[Token(Token = "0x17001336")]
|
|
public static ICertificateVerifyer DefaultCertificateVerifyer
|
|
{
|
|
[Token(Token = "0x60076C5")]
|
|
[Address(RVA = "0x1C91040", Offset = "0x1C8FA40", VA = "0x181C91040")]
|
|
get;
|
|
[Token(Token = "0x60076C6")]
|
|
[Address(RVA = "0x1C919F0", Offset = "0x1C903F0", VA = "0x181C919F0")]
|
|
set;
|
|
}
|
|
|
|
// Token: 0x17001337 RID: 4919
|
|
// (get) Token: 0x060076C7 RID: 30407 RVA: 0x0018949C File Offset: 0x0018769C
|
|
// (set) Token: 0x060076C8 RID: 30408 RVA: 0x001894B0 File Offset: 0x001876B0
|
|
[Token(Token = "0x17001337")]
|
|
public static IClientCredentialsProvider DefaultClientCredentialsProvider
|
|
{
|
|
[Token(Token = "0x60076C7")]
|
|
[Address(RVA = "0x1C91100", Offset = "0x1C8FB00", VA = "0x181C91100")]
|
|
get;
|
|
[Token(Token = "0x60076C8")]
|
|
[Address(RVA = "0x1C91AB0", Offset = "0x1C904B0", VA = "0x181C91AB0")]
|
|
set;
|
|
}
|
|
|
|
// Token: 0x17001338 RID: 4920
|
|
// (get) Token: 0x060076C9 RID: 30409 RVA: 0x001894C4 File Offset: 0x001876C4
|
|
// (set) Token: 0x060076CA RID: 30410 RVA: 0x001894D8 File Offset: 0x001876D8
|
|
[Token(Token = "0x17001338")]
|
|
public static bool UseAlternateSSLDefaultValue
|
|
{
|
|
[Token(Token = "0x60076C9")]
|
|
[Address(RVA = "0x1C918D0", Offset = "0x1C902D0", VA = "0x181C918D0")]
|
|
get;
|
|
[Token(Token = "0x60076CA")]
|
|
[Address(RVA = "0x1C92020", Offset = "0x1C90A20", VA = "0x181C92020")]
|
|
set;
|
|
}
|
|
|
|
// Token: 0x17001339 RID: 4921
|
|
// (get) Token: 0x060076CB RID: 30411 RVA: 0x001894EC File Offset: 0x001876EC
|
|
// (set) Token: 0x060076CC RID: 30412 RVA: 0x00189500 File Offset: 0x00187700
|
|
[Token(Token = "0x17001339")]
|
|
public static Func<HTTPRequest, X509Certificate, X509Chain, bool> DefaultCertificationValidator
|
|
{
|
|
[Token(Token = "0x60076CB")]
|
|
[Address(RVA = "0x1C910A0", Offset = "0x1C8FAA0", VA = "0x181C910A0")]
|
|
get;
|
|
[Token(Token = "0x60076CC")]
|
|
[Address(RVA = "0x1C91A50", Offset = "0x1C90450", VA = "0x181C91A50")]
|
|
set;
|
|
}
|
|
|
|
// Token: 0x1700133A RID: 4922
|
|
// (get) Token: 0x060076CD RID: 30413 RVA: 0x00189514 File Offset: 0x00187714
|
|
// (set) Token: 0x060076CE RID: 30414 RVA: 0x00189528 File Offset: 0x00187728
|
|
[Token(Token = "0x1700133A")]
|
|
public static Action<HTTPRequest, Stream> OnSendingHeaders
|
|
{
|
|
[Token(Token = "0x60076CD")]
|
|
[Address(RVA = "0x1C91750", Offset = "0x1C90150", VA = "0x181C91750")]
|
|
get;
|
|
[Token(Token = "0x60076CE")]
|
|
[Address(RVA = "0x1C91EA0", Offset = "0x1C908A0", VA = "0x181C91EA0")]
|
|
set;
|
|
}
|
|
|
|
// Token: 0x1700133B RID: 4923
|
|
// (get) Token: 0x060076CF RID: 30415 RVA: 0x0018953C File Offset: 0x0018773C
|
|
// (set) Token: 0x060076D0 RID: 30416 RVA: 0x00189550 File Offset: 0x00187750
|
|
[Token(Token = "0x1700133B")]
|
|
internal static int MaxPathLength
|
|
{
|
|
[Token(Token = "0x60076CF")]
|
|
[Address(RVA = "0x1C916F0", Offset = "0x1C900F0", VA = "0x181C916F0")]
|
|
get;
|
|
[Token(Token = "0x60076D0")]
|
|
[Address(RVA = "0x1C91E40", Offset = "0x1C90840", VA = "0x181C91E40")]
|
|
set;
|
|
}
|
|
|
|
// Token: 0x1700133C RID: 4924
|
|
// (get) Token: 0x060076D1 RID: 30417 RVA: 0x00189564 File Offset: 0x00187764
|
|
// (set) Token: 0x060076D2 RID: 30418 RVA: 0x00189578 File Offset: 0x00187778
|
|
[Token(Token = "0x1700133C")]
|
|
internal static bool IsQuitting
|
|
{
|
|
[Token(Token = "0x60076D1")]
|
|
[Address(RVA = "0x1C913F0", Offset = "0x1C8FDF0", VA = "0x181C913F0")]
|
|
get;
|
|
[Token(Token = "0x60076D2")]
|
|
[Address(RVA = "0x1C91C30", Offset = "0x1C90630", VA = "0x181C91C30")]
|
|
private set;
|
|
}
|
|
|
|
// Token: 0x060076D3 RID: 30419 RVA: 0x0018958C File Offset: 0x0018778C
|
|
[Token(Token = "0x60076D3")]
|
|
[Address(RVA = "0x1C8EAE0", Offset = "0x1C8D4E0", VA = "0x181C8EAE0")]
|
|
[BBKEDJMCLLL]
|
|
private static void InitializeOnLoad()
|
|
{
|
|
}
|
|
|
|
// Token: 0x060076D4 RID: 30420 RVA: 0x0018959C File Offset: 0x0018779C
|
|
[Token(Token = "0x60076D4")]
|
|
[Address(RVA = "0x1C90930", Offset = "0x1C8F330", VA = "0x181C90930")]
|
|
public static void Setup()
|
|
{
|
|
HTTPUpdateDelegator.CheckInstance();
|
|
HTTPCacheService.CheckSetup();
|
|
CookieJar.SetupFolder();
|
|
}
|
|
|
|
// Token: 0x060076D5 RID: 30421 RVA: 0x001895C0 File Offset: 0x001877C0
|
|
[Token(Token = "0x60076D5")]
|
|
[Address(RVA = "0x1C90480", Offset = "0x1C8EE80", VA = "0x181C90480")]
|
|
public static HTTPRequest SendRequest(string url, OnRequestFinishedDelegate callback)
|
|
{
|
|
int num;
|
|
HTTPRequest httprequest = new HTTPRequest(new Uri(url), (HTTPMethods)num, callback);
|
|
num = 0;
|
|
return HTTPManager.SendRequest(httprequest);
|
|
}
|
|
|
|
// Token: 0x060076D6 RID: 30422 RVA: 0x001895E4 File Offset: 0x001877E4
|
|
[Token(Token = "0x60076D6")]
|
|
[Address(RVA = "0x1C90530", Offset = "0x1C8EF30", VA = "0x181C90530")]
|
|
public static HTTPRequest SendRequest(string url, HTTPMethods methodType, OnRequestFinishedDelegate callback)
|
|
{
|
|
return HTTPManager.SendRequest(new HTTPRequest(new Uri(url), methodType, callback));
|
|
}
|
|
|
|
// Token: 0x060076D7 RID: 30423 RVA: 0x00189604 File Offset: 0x00187804
|
|
[Token(Token = "0x60076D7")]
|
|
[Address(RVA = "0x1C902F0", Offset = "0x1C8ECF0", VA = "0x181C902F0")]
|
|
public static HTTPRequest SendRequest(string url, HTTPMethods methodType, bool isKeepAlive, OnRequestFinishedDelegate callback)
|
|
{
|
|
bool flag;
|
|
return HTTPManager.SendRequest(new HTTPRequest(new Uri(url), methodType, isKeepAlive, flag, callback));
|
|
}
|
|
|
|
// Token: 0x060076D8 RID: 30424 RVA: 0x0018962C File Offset: 0x0018782C
|
|
[Token(Token = "0x60076D8")]
|
|
[Address(RVA = "0x1C905F0", Offset = "0x1C8EFF0", VA = "0x181C905F0")]
|
|
public static HTTPRequest SendRequest(string url, HTTPMethods methodType, bool isKeepAlive, bool disableCache, OnRequestFinishedDelegate callback)
|
|
{
|
|
Uri uri = new Uri(url);
|
|
HTTPRequest httprequest;
|
|
return HTTPManager.SendRequest(httprequest);
|
|
}
|
|
|
|
// Token: 0x060076D9 RID: 30425 RVA: 0x00189648 File Offset: 0x00187848
|
|
[Token(Token = "0x60076D9")]
|
|
[Address(RVA = "0x1C906D0", Offset = "0x1C8F0D0", VA = "0x181C906D0")]
|
|
public static HTTPRequest SendRequest(HTTPRequest request)
|
|
{
|
|
int num;
|
|
do
|
|
{
|
|
num = 0;
|
|
object locker = HTTPManager.Locker;
|
|
HTTPUpdateDelegator.CheckInstance();
|
|
HTTPCacheService.CheckSetup();
|
|
CookieJar.SetupFolder();
|
|
HTTPManager.SendRequestImpl(request);
|
|
request.<State>k__BackingField = (HTTPRequestStates)((ulong)1L);
|
|
HTTPManager.RequestQueue.Add(request);
|
|
Monitor.Exit(locker);
|
|
if (num != -1)
|
|
{
|
|
}
|
|
}
|
|
while (num != 0);
|
|
return request;
|
|
}
|
|
|
|
// Token: 0x060076DA RID: 30426 RVA: 0x0000220F File Offset: 0x0000040F
|
|
[Token(Token = "0x60076DA")]
|
|
[Address(RVA = "0x1C8E360", Offset = "0x1C8CD60", VA = "0x181C8E360")]
|
|
public static GeneralStatistics GetGeneralStatistics(StatisticsQueryFlags queryFlags)
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x060076DB RID: 30427 RVA: 0x001896A8 File Offset: 0x001878A8
|
|
[Token(Token = "0x60076DB")]
|
|
[Address(RVA = "0x1C900A0", Offset = "0x1C8EAA0", VA = "0x181C900A0")]
|
|
private static void SendRequestImpl(HTTPRequest request)
|
|
{
|
|
ConnectionBase connectionBase = HTTPManager.FindOrCreateFreeConnection(request);
|
|
ConnectionBase conn = connectionBase;
|
|
if (connectionBase == 0)
|
|
{
|
|
request.<State>k__BackingField = (HTTPRequestStates)((ulong)1L);
|
|
HTTPManager.RequestQueue.Add(request);
|
|
return;
|
|
}
|
|
List<ConnectionBase> activeConnections = HTTPManager.ActiveConnections;
|
|
Predicate<ConnectionBase> predicate = (ConnectionBase c) => c == conn;
|
|
if (activeConnections.Find(predicate) == 0)
|
|
{
|
|
List<ConnectionBase> activeConnections2 = HTTPManager.ActiveConnections;
|
|
ConnectionBase conn3 = conn;
|
|
activeConnections2.Add(conn3);
|
|
}
|
|
List<ConnectionBase> freeConnections = HTTPManager.FreeConnections;
|
|
ConnectionBase conn2 = conn;
|
|
bool flag = freeConnections.Remove(conn2);
|
|
request.<State>k__BackingField = (HTTPRequestStates)((ulong)2L);
|
|
conn.Process(request);
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x060076DC RID: 30428 RVA: 0x0018974C File Offset: 0x0018794C
|
|
[Token(Token = "0x60076DC")]
|
|
[Address(RVA = "0x1C8E6D0", Offset = "0x1C8D0D0", VA = "0x181C8E6D0")]
|
|
private static string GetKeyForRequest(HTTPRequest request)
|
|
{
|
|
if (request.<IsRedirected>k__BackingField)
|
|
{
|
|
}
|
|
UriBuilder uriBuilder;
|
|
if (!request.<Uri>k__BackingField.IsFile)
|
|
{
|
|
Proxy proxy = request.<Proxy>k__BackingField;
|
|
int num;
|
|
if (proxy != 0)
|
|
{
|
|
string scheme = proxy.<Address>k__BackingField.Scheme;
|
|
string host = request.<Proxy>k__BackingField.<Address>k__BackingField.Host;
|
|
num = request.<Proxy>k__BackingField.<Address>k__BackingField.Port;
|
|
int hashCode = new UriBuilder(scheme, host, num).Uri.GetHashCode();
|
|
}
|
|
string empty = string.Empty;
|
|
if (request.<IsRedirected>k__BackingField)
|
|
{
|
|
}
|
|
string scheme2 = request.<Uri>k__BackingField.Scheme;
|
|
if (request.<IsRedirected>k__BackingField)
|
|
{
|
|
}
|
|
string host2 = request.<Uri>k__BackingField.Host;
|
|
if (request.<IsRedirected>k__BackingField)
|
|
{
|
|
}
|
|
num = request.<Uri>k__BackingField.Port;
|
|
uriBuilder = new UriBuilder(scheme2, host2, num);
|
|
int hashCode2 = uriBuilder.Uri.GetHashCode();
|
|
string text;
|
|
return text;
|
|
}
|
|
int hashCode3 = uriBuilder._changed.GetHashCode();
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x060076DD RID: 30429 RVA: 0x00189838 File Offset: 0x00187A38
|
|
[Token(Token = "0x60076DD")]
|
|
[Address(RVA = "0x1C8DBC0", Offset = "0x1C8C5C0", VA = "0x181C8DBC0")]
|
|
private static ConnectionBase CreateConnection(HTTPRequest request, string serverUrl)
|
|
{
|
|
if (request.<IsRedirected>k__BackingField)
|
|
{
|
|
}
|
|
if (request.<Uri>k__BackingField.IsFile && Application.platform != RuntimePlatform.WebGLPlayer)
|
|
{
|
|
FileConnection fileConnection = new FileConnection(serverUrl);
|
|
}
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x060076DE RID: 30430 RVA: 0x00189874 File Offset: 0x00187A74
|
|
[Token(Token = "0x60076DE")]
|
|
[Address(RVA = "0x1C8DC60", Offset = "0x1C8C660", VA = "0x181C8DC60")]
|
|
private static ConnectionBase FindOrCreateFreeConnection(HTTPRequest request)
|
|
{
|
|
int num = 0;
|
|
string keyForRequest = HTTPManager.GetKeyForRequest(request);
|
|
bool flag = HTTPManager.Connections.TryGetValue(keyForRequest, num);
|
|
if (!flag)
|
|
{
|
|
Dictionary<string, List<ConnectionBase>> connections = HTTPManager.Connections;
|
|
List<ConnectionBase> list = new List((int)HTTPManager.maxConnectionPerServer);
|
|
connections.Add(keyForRequest, list);
|
|
}
|
|
uint num2;
|
|
if (num < (flag ? 1 : 0))
|
|
{
|
|
ThrowHelper.ThrowArgumentOutOfRangeException();
|
|
bool flag2;
|
|
if (flag2)
|
|
{
|
|
num++;
|
|
}
|
|
num++;
|
|
num2 += (uint)8;
|
|
}
|
|
byte b = HTTPManager.maxConnectionPerServer;
|
|
if (num == 0)
|
|
{
|
|
ThrowHelper.ThrowArgumentOutOfRangeException();
|
|
bool flag3;
|
|
bool flag4;
|
|
if (num != 0 && flag3 && flag4)
|
|
{
|
|
int num3 = 0;
|
|
if (!(num == num3))
|
|
{
|
|
if (request.<IsRedirected>k__BackingField)
|
|
{
|
|
}
|
|
string host = request.<Uri>k__BackingField.Host;
|
|
string text;
|
|
if (text.Equals(host, StringComparison.OrdinalIgnoreCase))
|
|
{
|
|
}
|
|
}
|
|
}
|
|
num++;
|
|
num2 += (uint)8;
|
|
while (num != 0)
|
|
{
|
|
}
|
|
if (num == 0)
|
|
{
|
|
byte b2 = HTTPManager.maxConnectionPerServer;
|
|
if (num < (int)b2)
|
|
{
|
|
if (request.<IsRedirected>k__BackingField)
|
|
{
|
|
}
|
|
if (!request.<Uri>k__BackingField.IsFile || Application.platform == RuntimePlatform.WebGLPlayer)
|
|
{
|
|
}
|
|
HTTPConnection httpconnection = new HTTPConnection(keyForRequest);
|
|
}
|
|
}
|
|
}
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x060076DF RID: 30431 RVA: 0x0018997C File Offset: 0x00187B7C
|
|
[Token(Token = "0x60076DF")]
|
|
[Address(RVA = "0x1C8DAE0", Offset = "0x1C8C4E0", VA = "0x181C8DAE0")]
|
|
private static bool CanProcessFromQueue()
|
|
{
|
|
int num = 0;
|
|
List<HTTPRequest> requestQueue = HTTPManager.RequestQueue;
|
|
List<HTTPRequest> requestQueue2 = HTTPManager.RequestQueue;
|
|
ConnectionBase connectionBase;
|
|
if (connectionBase == 0)
|
|
{
|
|
num++;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
// Token: 0x060076E0 RID: 30432 RVA: 0x001899AC File Offset: 0x00187BAC
|
|
[Token(Token = "0x60076E0")]
|
|
[Address(RVA = "0x1C8FFB0", Offset = "0x1C8E9B0", VA = "0x181C8FFB0")]
|
|
private static void RecycleConnection(ConnectionBase conn)
|
|
{
|
|
HTTPConnectionRecycledDelegate httpconnectionRecycledDelegate;
|
|
httpconnectionRecycledDelegate.method_ptr = ldftn(OnConnectionRecylced);
|
|
httpconnectionRecycledDelegate.method = ldftn(OnConnectionRecylced);
|
|
httpconnectionRecycledDelegate.m_target = (ulong)0L;
|
|
conn.Recycle(httpconnectionRecycledDelegate);
|
|
}
|
|
|
|
// Token: 0x060076E1 RID: 30433 RVA: 0x001899E8 File Offset: 0x00187BE8
|
|
[Token(Token = "0x60076E1")]
|
|
[Address(RVA = "0x1C8EB80", Offset = "0x1C8D580", VA = "0x181C8EB80")]
|
|
private static void OnConnectionRecylced(ConnectionBase conn)
|
|
{
|
|
int num;
|
|
do
|
|
{
|
|
num = 0;
|
|
List<ConnectionBase> recycledConnections = HTTPManager.RecycledConnections;
|
|
HTTPManager.RecycledConnections.Add(conn);
|
|
Monitor.Exit(recycledConnections);
|
|
if (num != -1)
|
|
{
|
|
}
|
|
}
|
|
while (num != 0);
|
|
}
|
|
|
|
// Token: 0x060076E2 RID: 30434 RVA: 0x00189A1C File Offset: 0x00187C1C
|
|
[Token(Token = "0x60076E2")]
|
|
[Address(RVA = "0x1C8E180", Offset = "0x1C8CB80", VA = "0x181C8E180")]
|
|
internal static ConnectionBase GetConnectionWith(HTTPRequest request)
|
|
{
|
|
int num;
|
|
do
|
|
{
|
|
num = 0;
|
|
object locker = HTTPManager.Locker;
|
|
List<ConnectionBase> activeConnections = HTTPManager.ActiveConnections;
|
|
List<ConnectionBase> activeConnections2 = HTTPManager.ActiveConnections;
|
|
num++;
|
|
Monitor.Exit(locker);
|
|
if (num != -1)
|
|
{
|
|
}
|
|
}
|
|
while (num != 0);
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x060076E3 RID: 30435 RVA: 0x00189A60 File Offset: 0x00187C60
|
|
[Token(Token = "0x60076E3")]
|
|
[Address(RVA = "0x1C90020", Offset = "0x1C8EA20", VA = "0x181C90020")]
|
|
internal static bool RemoveFromQueue(HTTPRequest request)
|
|
{
|
|
return HTTPManager.RequestQueue.Remove(request);
|
|
}
|
|
|
|
// Token: 0x060076E4 RID: 30436 RVA: 0x00189A80 File Offset: 0x00187C80
|
|
[Token(Token = "0x60076E4")]
|
|
[Address(RVA = "0x1C8E930", Offset = "0x1C8D330", VA = "0x181C8E930")]
|
|
internal static string GetRootCacheFolder()
|
|
{
|
|
return HTTPManager.<RootCacheFolderProvider>k__BackingField();
|
|
}
|
|
|
|
// Token: 0x060076E5 RID: 30437 RVA: 0x00189AB4 File Offset: 0x00187CB4
|
|
[Token(Token = "0x60076E5")]
|
|
[Address(RVA = "0x1C8EEB0", Offset = "0x1C8D8B0", VA = "0x181C8EEB0")]
|
|
public static void OnUpdate()
|
|
{
|
|
for (;;)
|
|
{
|
|
int num = 0;
|
|
if (Monitor.TryEnter(HTTPManager.Locker))
|
|
{
|
|
List<ConnectionBase> activeConnections = HTTPManager.ActiveConnections;
|
|
List<ConnectionBase> activeConnections2 = HTTPManager.ActiveConnections;
|
|
bool flag = HTTPManager.<EnablePrivateBrowsing>k__BackingField;
|
|
if (flag <= true)
|
|
{
|
|
TimeSpan timeSpan = HTTPManager.<ConnectTimeout>k__BackingField;
|
|
bool flag2;
|
|
if (flag2)
|
|
{
|
|
}
|
|
TimeSpan timeSpan2 = HTTPManager.<ConnectTimeout>k__BackingField;
|
|
DateTime utcNow = DateTime.UtcNow;
|
|
TimeSpan timeSpan3 = HTTPManager.<ConnectTimeout>k__BackingField;
|
|
TimeSpan timeSpan4;
|
|
if (timeSpan4 > timeSpan3)
|
|
{
|
|
byte b = HTTPManager.maxConnectionPerServer;
|
|
}
|
|
num++;
|
|
BestHTTP.Logger.ILogger logger = HTTPManager.Logger;
|
|
num++;
|
|
TimeSpan timeSpan5 = HTTPManager.<ConnectTimeout>k__BackingField;
|
|
}
|
|
num++;
|
|
num++;
|
|
TimeSpan timeSpan6 = HTTPManager.<ConnectTimeout>k__BackingField;
|
|
if (flag)
|
|
{
|
|
while (!flag)
|
|
{
|
|
}
|
|
}
|
|
TimeSpan timeSpan7 = HTTPManager.<ConnectTimeout>k__BackingField;
|
|
TimeSpan timeSpan8 = HTTPManager.<ConnectTimeout>k__BackingField;
|
|
while (!flag)
|
|
{
|
|
}
|
|
while (!flag)
|
|
{
|
|
}
|
|
DateTime utcNow2 = DateTime.UtcNow;
|
|
TimeSpan timeSpan9;
|
|
TimeSpan timeSpan10;
|
|
if (timeSpan9 > timeSpan10)
|
|
{
|
|
BestHTTP.Logger.ILogger logger2 = HTTPManager.Logger;
|
|
TimeSpan timeSpan11 = HTTPManager.<ConnectTimeout>k__BackingField;
|
|
TimeSpan timeSpan12 = HTTPManager.<ConnectTimeout>k__BackingField;
|
|
}
|
|
num++;
|
|
BestHTTP.Logger.ILogger logger3 = HTTPManager.Logger;
|
|
TimeSpan timeSpan13 = HTTPManager.<ConnectTimeout>k__BackingField;
|
|
int num2 = 0;
|
|
if (num == -1)
|
|
{
|
|
goto IL_12A;
|
|
}
|
|
if (Monitor.TryEnter(HTTPManager.RecycledConnections))
|
|
{
|
|
List<ConnectionBase> recycledConnections = HTTPManager.RecycledConnections;
|
|
List<ConnectionBase> recycledConnections2 = HTTPManager.RecycledConnections;
|
|
List<ConnectionBase> recycledConnections3 = HTTPManager.RecycledConnections;
|
|
bool flag3;
|
|
if (flag3)
|
|
{
|
|
List<ConnectionBase> activeConnections3 = HTTPManager.ActiveConnections;
|
|
List<ConnectionBase> freeConnections = HTTPManager.FreeConnections;
|
|
}
|
|
num2++;
|
|
goto IL_12A;
|
|
}
|
|
goto IL_154;
|
|
IL_18E:
|
|
if (typeof(HTTPManager).TypeHandle != 0)
|
|
{
|
|
goto IL_31C;
|
|
}
|
|
List<HTTPRequest> requestQueue = HTTPManager.RequestQueue;
|
|
List<HTTPRequest> requestQueue2 = HTTPManager.RequestQueue;
|
|
ConnectionBase connectionBase;
|
|
int num3;
|
|
if (connectionBase == 0)
|
|
{
|
|
num3++;
|
|
}
|
|
List<HTTPRequest> requestQueue3 = HTTPManager.RequestQueue;
|
|
Predicate<HTTPRequest> predicate;
|
|
if (HTTPManager.<>c.<>9__109_0 == 0)
|
|
{
|
|
predicate = delegate(HTTPRequest req)
|
|
{
|
|
throw new NullReferenceException();
|
|
};
|
|
HTTPManager.<>c.<>9__109_0 = predicate;
|
|
}
|
|
if (requestQueue3.Find(predicate) != 0)
|
|
{
|
|
List<HTTPRequest> requestQueue4 = HTTPManager.RequestQueue;
|
|
Comparison<HTTPRequest> comparison;
|
|
if (HTTPManager.<>c.<>9__109_1 == 0)
|
|
{
|
|
comparison = (HTTPRequest req1, HTTPRequest req2) => req1.<Priority>k__BackingField;
|
|
HTTPManager.<>c.<>9__109_1 = comparison;
|
|
}
|
|
requestQueue4.Sort(comparison);
|
|
}
|
|
HTTPRequest[] array = HTTPManager.RequestQueue.ToArray();
|
|
HTTPManager.RequestQueue.Clear();
|
|
if (num3 < array.Length)
|
|
{
|
|
HTTPRequest httprequest = HTTPManager.SendRequest(array[num3]);
|
|
num3++;
|
|
}
|
|
num++;
|
|
Monitor.Exit(HTTPManager.Locker);
|
|
if (num != -1)
|
|
{
|
|
}
|
|
if (num == 0)
|
|
{
|
|
break;
|
|
}
|
|
continue;
|
|
IL_12A:
|
|
if (typeof(HTTPManager).TypeHandle != 0)
|
|
{
|
|
goto IL_2F2;
|
|
}
|
|
HTTPManager.RecycledConnections.Clear();
|
|
num++;
|
|
num3 = 0;
|
|
Monitor.Exit(HTTPManager.RecycledConnections);
|
|
if (num == -1)
|
|
{
|
|
goto IL_18E;
|
|
}
|
|
IL_154:
|
|
List<ConnectionBase> freeConnections2 = HTTPManager.FreeConnections;
|
|
List<ConnectionBase> freeConnections3 = HTTPManager.FreeConnections;
|
|
List<ConnectionBase> freeConnections4 = HTTPManager.FreeConnections;
|
|
byte b2 = HTTPManager.maxConnectionPerServer;
|
|
Dictionary<string, List<ConnectionBase>> connections = HTTPManager.Connections;
|
|
bool flag4;
|
|
if (flag4)
|
|
{
|
|
}
|
|
HTTPManager.FreeConnections.RemoveAt(num3);
|
|
num3++;
|
|
goto IL_18E;
|
|
}
|
|
break;
|
|
}
|
|
HTTPManager.heartbeats.Update();
|
|
VariableSizedBufferPool.Maintain();
|
|
return;
|
|
IL_2F2:
|
|
throw new NullReferenceException();
|
|
IL_31C:
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x060076E6 RID: 30438 RVA: 0x00189E38 File Offset: 0x00188038
|
|
[Token(Token = "0x60076E6")]
|
|
[Address(RVA = "0x1C8ECE0", Offset = "0x1C8D6E0", VA = "0x181C8ECE0")]
|
|
public static void OnQuit()
|
|
{
|
|
int num;
|
|
do
|
|
{
|
|
num = 0;
|
|
object locker = HTTPManager.Locker;
|
|
HTTPCacheService.SaveLibrary();
|
|
CookieJar.Persist();
|
|
HTTPManager.AbortAll(true);
|
|
HTTPManager.OnUpdate();
|
|
Monitor.Exit(locker);
|
|
if (num != -1)
|
|
{
|
|
}
|
|
}
|
|
while (num != 0);
|
|
}
|
|
|
|
// Token: 0x060076E7 RID: 30439 RVA: 0x00189E78 File Offset: 0x00188078
|
|
[Token(Token = "0x60076E7")]
|
|
[Address(RVA = "0x1C8D5F0", Offset = "0x1C8BFF0", VA = "0x181C8D5F0")]
|
|
public static void AbortAll(bool allowCallbacks = false)
|
|
{
|
|
do
|
|
{
|
|
int num = 0;
|
|
object locker = HTTPManager.Locker;
|
|
HTTPRequest[] array = HTTPManager.RequestQueue.ToArray();
|
|
HTTPManager.RequestQueue.Clear();
|
|
if (num < array.Length)
|
|
{
|
|
HTTPRequest httprequest = array[num];
|
|
httprequest.<Callback>k__BackingField = num;
|
|
httprequest.Abort();
|
|
num++;
|
|
num++;
|
|
}
|
|
Dictionary<string, List<ConnectionBase>> connections = HTTPManager.Connections;
|
|
Dictionary.Enumerator enumerator;
|
|
if (enumerator != 0)
|
|
{
|
|
List.Enumerator enumerator2;
|
|
if (enumerator2 == 0 || enumerator2 != 0)
|
|
{
|
|
}
|
|
if (0UL != (ulong)(-1L))
|
|
{
|
|
}
|
|
if (0 != 0)
|
|
{
|
|
goto IL_A3;
|
|
}
|
|
}
|
|
if (0UL != (ulong)(-1L))
|
|
{
|
|
HTTPManager.Connections.Clear();
|
|
}
|
|
if (0 != 0)
|
|
{
|
|
goto IL_B5;
|
|
}
|
|
if (0UL != (ulong)(-1L))
|
|
{
|
|
}
|
|
}
|
|
while (0 != 0);
|
|
return;
|
|
IL_A3:
|
|
throw new NullReferenceException();
|
|
IL_B5:
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x040055F5 RID: 22005
|
|
[Token(Token = "0x40055F5")]
|
|
private static byte maxConnectionPerServer;
|
|
|
|
// Token: 0x04005600 RID: 22016
|
|
[Token(Token = "0x4005600")]
|
|
private static HeartbeatManager heartbeats;
|
|
|
|
// Token: 0x04005601 RID: 22017
|
|
[Token(Token = "0x4005601")]
|
|
private static BestHTTP.Logger.ILogger logger;
|
|
|
|
// Token: 0x04005607 RID: 22023
|
|
[Token(Token = "0x4005607")]
|
|
public static bool TryToMinimizeTCPLatency;
|
|
|
|
// Token: 0x04005608 RID: 22024
|
|
[Token(Token = "0x4005608")]
|
|
public static int SendBufferSize;
|
|
|
|
// Token: 0x04005609 RID: 22025
|
|
[Token(Token = "0x4005609")]
|
|
public static int ReceiveBufferSize;
|
|
|
|
// Token: 0x0400560A RID: 22026
|
|
[Token(Token = "0x400560A")]
|
|
public static IIOService IOService;
|
|
|
|
// Token: 0x0400560C RID: 22028
|
|
[Token(Token = "0x400560C")]
|
|
private static Dictionary<string, List<ConnectionBase>> Connections = new Dictionary();
|
|
|
|
// Token: 0x0400560D RID: 22029
|
|
[Token(Token = "0x400560D")]
|
|
private static List<ConnectionBase> ActiveConnections = new List();
|
|
|
|
// Token: 0x0400560E RID: 22030
|
|
[Token(Token = "0x400560E")]
|
|
private static List<ConnectionBase> FreeConnections = new List();
|
|
|
|
// Token: 0x0400560F RID: 22031
|
|
[Token(Token = "0x400560F")]
|
|
private static List<ConnectionBase> RecycledConnections = new List();
|
|
|
|
// Token: 0x04005610 RID: 22032
|
|
[Token(Token = "0x4005610")]
|
|
private static List<HTTPRequest> RequestQueue = new List();
|
|
|
|
// Token: 0x04005611 RID: 22033
|
|
[Token(Token = "0x4005611")]
|
|
private static bool IsCallingCallbacks;
|
|
|
|
// Token: 0x04005612 RID: 22034
|
|
[Token(Token = "0x4005612")]
|
|
internal static object Locker = new object();
|
|
}
|
|
}
|