using System; using System.Collections.Generic; using System.IO; 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: 0x02001892 RID: 6290 [Token(Token = "0x2001892")] public static class HTTPManager { // Token: 0x0600932B RID: 37675 RVA: 0x001E361C File Offset: 0x001E181C [Token(Token = "0x600932B")] [Address(RVA = "0x171B800", Offset = "0x171A600", VA = "0x18171B800")] 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: 0x17001742 RID: 5954 // (get) Token: 0x0600932C RID: 37676 RVA: 0x001E368C File Offset: 0x001E188C // (set) Token: 0x0600932D RID: 37677 RVA: 0x001E36A0 File Offset: 0x001E18A0 [Token(Token = "0x17001742")] public static byte MaxConnectionPerServer { [Token(Token = "0x600932C")] [Address(RVA = "0x171C4C0", Offset = "0x171B2C0", VA = "0x18171C4C0")] get { return HTTPManager.maxConnectionPerServer; } [Token(Token = "0x600932D")] [Address(RVA = "0x171CBE0", Offset = "0x171B9E0", VA = "0x18171CBE0")] set { HTTPManager.maxConnectionPerServer = value; } } // Token: 0x17001743 RID: 5955 // (get) Token: 0x0600932E RID: 37678 RVA: 0x001E36C0 File Offset: 0x001E18C0 // (set) Token: 0x0600932F RID: 37679 RVA: 0x001E36D4 File Offset: 0x001E18D4 [Token(Token = "0x17001743")] public static bool KeepAliveDefaultValue { [Token(Token = "0x600932E")] [Address(RVA = "0x171C280", Offset = "0x171B080", VA = "0x18171C280")] get; [Token(Token = "0x600932F")] [Address(RVA = "0x171CAC0", Offset = "0x171B8C0", VA = "0x18171CAC0")] set; } // Token: 0x17001744 RID: 5956 // (get) Token: 0x06009330 RID: 37680 RVA: 0x001E36E8 File Offset: 0x001E18E8 // (set) Token: 0x06009331 RID: 37681 RVA: 0x001E36FC File Offset: 0x001E18FC [Token(Token = "0x17001744")] public static bool IsCachingDisabled { [Token(Token = "0x6009330")] [Address(RVA = "0x171C160", Offset = "0x171AF60", VA = "0x18171C160")] get; [Token(Token = "0x6009331")] [Address(RVA = "0x171C9A0", Offset = "0x171B7A0", VA = "0x18171C9A0")] set; } // Token: 0x17001745 RID: 5957 // (get) Token: 0x06009332 RID: 37682 RVA: 0x001E3710 File Offset: 0x001E1910 // (set) Token: 0x06009333 RID: 37683 RVA: 0x001E3724 File Offset: 0x001E1924 [Token(Token = "0x17001745")] public static TimeSpan MaxConnectionIdleTime { [Token(Token = "0x6009332")] [Address(RVA = "0x171C460", Offset = "0x171B260", VA = "0x18171C460")] get; [Token(Token = "0x6009333")] [Address(RVA = "0x171CB80", Offset = "0x171B980", VA = "0x18171CB80")] set; } // Token: 0x17001746 RID: 5958 // (get) Token: 0x06009334 RID: 37684 RVA: 0x001E3738 File Offset: 0x001E1938 // (set) Token: 0x06009335 RID: 37685 RVA: 0x001E374C File Offset: 0x001E194C [Token(Token = "0x17001746")] public static bool IsCookiesEnabled { [Token(Token = "0x6009334")] [Address(RVA = "0x171C1C0", Offset = "0x171AFC0", VA = "0x18171C1C0")] get; [Token(Token = "0x6009335")] [Address(RVA = "0x171CA00", Offset = "0x171B800", VA = "0x18171CA00")] set; } // Token: 0x17001747 RID: 5959 // (get) Token: 0x06009336 RID: 37686 RVA: 0x001E3760 File Offset: 0x001E1960 // (set) Token: 0x06009337 RID: 37687 RVA: 0x001E3774 File Offset: 0x001E1974 [Token(Token = "0x17001747")] public static uint CookieJarSize { [Token(Token = "0x6009336")] [Address(RVA = "0x171BE10", Offset = "0x171AC10", VA = "0x18171BE10")] get; [Token(Token = "0x6009337")] [Address(RVA = "0x171C7C0", Offset = "0x171B5C0", VA = "0x18171C7C0")] set; } // Token: 0x17001748 RID: 5960 // (get) Token: 0x06009338 RID: 37688 RVA: 0x001E3788 File Offset: 0x001E1988 // (set) Token: 0x06009339 RID: 37689 RVA: 0x001E379C File Offset: 0x001E199C [Token(Token = "0x17001748")] public static bool EnablePrivateBrowsing { [Token(Token = "0x6009338")] [Address(RVA = "0x171BF90", Offset = "0x171AD90", VA = "0x18171BF90")] get; [Token(Token = "0x6009339")] [Address(RVA = "0x171C940", Offset = "0x171B740", VA = "0x18171C940")] set; } // Token: 0x17001749 RID: 5961 // (get) Token: 0x0600933A RID: 37690 RVA: 0x001E37B0 File Offset: 0x001E19B0 // (set) Token: 0x0600933B RID: 37691 RVA: 0x001E37C4 File Offset: 0x001E19C4 [Token(Token = "0x17001749")] public static TimeSpan ConnectTimeout { [Token(Token = "0x600933A")] [Address(RVA = "0x171BDB0", Offset = "0x171ABB0", VA = "0x18171BDB0")] get; [Token(Token = "0x600933B")] [Address(RVA = "0x171C760", Offset = "0x171B560", VA = "0x18171C760")] set; } // Token: 0x1700174A RID: 5962 // (get) Token: 0x0600933C RID: 37692 RVA: 0x001E37D8 File Offset: 0x001E19D8 // (set) Token: 0x0600933D RID: 37693 RVA: 0x001E37EC File Offset: 0x001E19EC [Token(Token = "0x1700174A")] public static TimeSpan RequestTimeout { [Token(Token = "0x600933C")] [Address(RVA = "0x171C640", Offset = "0x171B440", VA = "0x18171C640")] get; [Token(Token = "0x600933D")] [Address(RVA = "0x171CD90", Offset = "0x171BB90", VA = "0x18171CD90")] set; } // Token: 0x1700174B RID: 5963 // (get) Token: 0x0600933E RID: 37694 RVA: 0x001E3800 File Offset: 0x001E1A00 // (set) Token: 0x0600933F RID: 37695 RVA: 0x001E3814 File Offset: 0x001E1A14 [Token(Token = "0x1700174B")] public static Func RootCacheFolderProvider { [Token(Token = "0x600933E")] [Address(RVA = "0x171C6A0", Offset = "0x171B4A0", VA = "0x18171C6A0")] get; [Token(Token = "0x600933F")] [Address(RVA = "0x171CDF0", Offset = "0x171BBF0", VA = "0x18171CDF0")] set; } // Token: 0x1700174C RID: 5964 // (get) Token: 0x06009340 RID: 37696 RVA: 0x001E3828 File Offset: 0x001E1A28 // (set) Token: 0x06009341 RID: 37697 RVA: 0x001E383C File Offset: 0x001E1A3C [Token(Token = "0x1700174C")] public static Proxy Proxy { [Token(Token = "0x6009340")] [Address(RVA = "0x171C5E0", Offset = "0x171B3E0", VA = "0x18171C5E0")] get; [Token(Token = "0x6009341")] [Address(RVA = "0x171CD30", Offset = "0x171BB30", VA = "0x18171CD30")] set; } // Token: 0x1700174D RID: 5965 // (get) Token: 0x06009342 RID: 37698 RVA: 0x001E3850 File Offset: 0x001E1A50 [Token(Token = "0x1700174D")] public static HeartbeatManager Heartbeats { [Token(Token = "0x6009342")] [Address(RVA = "0x171BFF0", Offset = "0x171ADF0", VA = "0x18171BFF0")] get { HeartbeatManager heartbeatManager = new HeartbeatManager(); List list = new List(); heartbeatManager.Heartbeats = list; DateTime minValue = DateTime.MinValue; heartbeatManager.LastUpdate = minValue; HTTPManager.heartbeats = heartbeatManager; return HTTPManager.heartbeats; } } // Token: 0x1700174E RID: 5966 // (get) Token: 0x06009343 RID: 37699 RVA: 0x001E3890 File Offset: 0x001E1A90 // (set) Token: 0x06009344 RID: 37700 RVA: 0x001E38C8 File Offset: 0x001E1AC8 [Token(Token = "0x1700174E")] public static BestHTTP.Logger.ILogger Logger { [Token(Token = "0x6009343")] [Address(RVA = "0x171C2E0", Offset = "0x171B0E0", VA = "0x18171C2E0")] get { HTTPManager.logger = new DefaultLogger(); BestHTTP.Logger.ILogger logger = HTTPManager.logger; int num = 0; num += num; num++; return HTTPManager.logger; } [Token(Token = "0x6009344")] [Address(RVA = "0x171CB20", Offset = "0x171B920", VA = "0x18171CB20")] set { HTTPManager.logger = value; } } // Token: 0x1700174F RID: 5967 // (get) Token: 0x06009345 RID: 37701 RVA: 0x001E38DC File Offset: 0x001E1ADC // (set) Token: 0x06009346 RID: 37702 RVA: 0x001E38F0 File Offset: 0x001E1AF0 [Token(Token = "0x1700174F")] public static ICertificateVerifyer DefaultCertificateVerifyer { [Token(Token = "0x6009345")] [Address(RVA = "0x171BE70", Offset = "0x171AC70", VA = "0x18171BE70")] get; [Token(Token = "0x6009346")] [Address(RVA = "0x171C820", Offset = "0x171B620", VA = "0x18171C820")] set; } // Token: 0x17001750 RID: 5968 // (get) Token: 0x06009347 RID: 37703 RVA: 0x001E3904 File Offset: 0x001E1B04 // (set) Token: 0x06009348 RID: 37704 RVA: 0x001E3918 File Offset: 0x001E1B18 [Token(Token = "0x17001750")] public static IClientCredentialsProvider DefaultClientCredentialsProvider { [Token(Token = "0x6009347")] [Address(RVA = "0x171BF30", Offset = "0x171AD30", VA = "0x18171BF30")] get; [Token(Token = "0x6009348")] [Address(RVA = "0x171C8E0", Offset = "0x171B6E0", VA = "0x18171C8E0")] set; } // Token: 0x17001751 RID: 5969 // (get) Token: 0x06009349 RID: 37705 RVA: 0x001E392C File Offset: 0x001E1B2C // (set) Token: 0x0600934A RID: 37706 RVA: 0x001E3940 File Offset: 0x001E1B40 [Token(Token = "0x17001751")] public static bool UseAlternateSSLDefaultValue { [Token(Token = "0x6009349")] [Address(RVA = "0x171C700", Offset = "0x171B500", VA = "0x18171C700")] get; [Token(Token = "0x600934A")] [Address(RVA = "0x171CE50", Offset = "0x171BC50", VA = "0x18171CE50")] set; } // Token: 0x17001752 RID: 5970 // (get) Token: 0x0600934B RID: 37707 RVA: 0x001E3954 File Offset: 0x001E1B54 // (set) Token: 0x0600934C RID: 37708 RVA: 0x001E3968 File Offset: 0x001E1B68 [Token(Token = "0x17001752")] public static Func DefaultCertificationValidator { [Token(Token = "0x600934B")] [Address(RVA = "0x171BED0", Offset = "0x171ACD0", VA = "0x18171BED0")] get; [Token(Token = "0x600934C")] [Address(RVA = "0x171C880", Offset = "0x171B680", VA = "0x18171C880")] set; } // Token: 0x17001753 RID: 5971 // (get) Token: 0x0600934D RID: 37709 RVA: 0x001E397C File Offset: 0x001E1B7C // (set) Token: 0x0600934E RID: 37710 RVA: 0x001E3990 File Offset: 0x001E1B90 [Token(Token = "0x17001753")] public static Action OnSendingHeaders { [Token(Token = "0x600934D")] [Address(RVA = "0x171C580", Offset = "0x171B380", VA = "0x18171C580")] get; [Token(Token = "0x600934E")] [Address(RVA = "0x171CCD0", Offset = "0x171BAD0", VA = "0x18171CCD0")] set; } // Token: 0x17001754 RID: 5972 // (get) Token: 0x0600934F RID: 37711 RVA: 0x001E39A4 File Offset: 0x001E1BA4 // (set) Token: 0x06009350 RID: 37712 RVA: 0x001E39B8 File Offset: 0x001E1BB8 [Token(Token = "0x17001754")] internal static int MaxPathLength { [Token(Token = "0x600934F")] [Address(RVA = "0x171C520", Offset = "0x171B320", VA = "0x18171C520")] get; [Token(Token = "0x6009350")] [Address(RVA = "0x171CC70", Offset = "0x171BA70", VA = "0x18171CC70")] set; } // Token: 0x17001755 RID: 5973 // (get) Token: 0x06009351 RID: 37713 RVA: 0x001E39CC File Offset: 0x001E1BCC // (set) Token: 0x06009352 RID: 37714 RVA: 0x001E39E0 File Offset: 0x001E1BE0 [Token(Token = "0x17001755")] internal static bool IsQuitting { [Token(Token = "0x6009351")] [Address(RVA = "0x171C220", Offset = "0x171B020", VA = "0x18171C220")] get; [Token(Token = "0x6009352")] [Address(RVA = "0x171CA60", Offset = "0x171B860", VA = "0x18171CA60")] private set; } // Token: 0x06009353 RID: 37715 RVA: 0x001E39F4 File Offset: 0x001E1BF4 [Token(Token = "0x6009353")] [Address(RVA = "0x17198E0", Offset = "0x17186E0", VA = "0x1817198E0")] [CBEAKPMNJOL(LGFJHLDANJN.Unity_AfterSceneLoad)] private static void InitializeOnLoad() { } // Token: 0x06009354 RID: 37716 RVA: 0x001E3A04 File Offset: 0x001E1C04 [Token(Token = "0x6009354")] [Address(RVA = "0x171B760", Offset = "0x171A560", VA = "0x18171B760")] public static void Setup() { HTTPUpdateDelegator.CheckInstance(); HTTPCacheService.CheckSetup(); CookieJar.SetupFolder(); } // Token: 0x06009355 RID: 37717 RVA: 0x001E3A28 File Offset: 0x001E1C28 [Token(Token = "0x6009355")] [Address(RVA = "0x171B2D0", Offset = "0x171A0D0", VA = "0x18171B2D0")] 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: 0x06009356 RID: 37718 RVA: 0x001E3A4C File Offset: 0x001E1C4C [Token(Token = "0x6009356")] [Address(RVA = "0x171B380", Offset = "0x171A180", VA = "0x18171B380")] public static HTTPRequest SendRequest(string url, HTTPMethods methodType, OnRequestFinishedDelegate callback) { return HTTPManager.SendRequest(new HTTPRequest(new Uri(url), methodType, callback)); } // Token: 0x06009357 RID: 37719 RVA: 0x001E3A6C File Offset: 0x001E1C6C [Token(Token = "0x6009357")] [Address(RVA = "0x171B140", Offset = "0x1719F40", VA = "0x18171B140")] 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: 0x06009358 RID: 37720 RVA: 0x001E3A94 File Offset: 0x001E1C94 [Token(Token = "0x6009358")] [Address(RVA = "0x171B440", Offset = "0x171A240", VA = "0x18171B440")] 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: 0x06009359 RID: 37721 RVA: 0x001E3AB0 File Offset: 0x001E1CB0 [Token(Token = "0x6009359")] [Address(RVA = "0x171B520", Offset = "0x171A320", VA = "0x18171B520")] 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.k__BackingField = (HTTPRequestStates)((ulong)1L); HTTPManager.RequestQueue.Add(request); Monitor.Exit(locker); } while (num != 0); return request; } // Token: 0x0600935A RID: 37722 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x600935A")] [Address(RVA = "0x17191B0", Offset = "0x1717FB0", VA = "0x1817191B0")] public static GeneralStatistics GetGeneralStatistics(StatisticsQueryFlags queryFlags) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0600935B RID: 37723 RVA: 0x001E3B0C File Offset: 0x001E1D0C [Token(Token = "0x600935B")] [Address(RVA = "0x171ADF0", Offset = "0x1719BF0", VA = "0x18171ADF0")] private static void SendRequestImpl(HTTPRequest request) { int num; ConnectionBase conn3; do { ConnectionBase connectionBase = HTTPManager.FindOrCreateFreeConnection(request); ConnectionBase conn = connectionBase; num = 0; if (request != 0) { goto IL_CA; } if (num != -1) { } if (conn == (ulong)0L) { goto IL_A9; } List activeConnections = HTTPManager.ActiveConnections; Predicate predicate = (ConnectionBase c) => c == conn; if (activeConnections.Find(predicate) == 0) { List activeConnections2 = HTTPManager.ActiveConnections; ConnectionBase conn4 = conn; activeConnections2.Add(conn4); } List freeConnections = HTTPManager.FreeConnections; ConnectionBase conn2 = conn; bool flag = freeConnections.Remove(conn2); request.k__BackingField = (HTTPRequestStates)((ulong)2L); conn3 = conn; conn3.Process(request); num++; } while (conn3 != 0); if (num != -1) { } IL_A9: request.k__BackingField = (HTTPRequestStates)((ulong)1L); HTTPManager.RequestQueue.Add(request); return; IL_CA: throw new NullReferenceException(); } // Token: 0x0600935C RID: 37724 RVA: 0x001E3C00 File Offset: 0x001E1E00 [Token(Token = "0x600935C")] [Address(RVA = "0x17194D0", Offset = "0x17182D0", VA = "0x1817194D0")] private static string GetKeyForRequest(HTTPRequest request) { if (request.k__BackingField) { } UriBuilder uriBuilder; if (!request.k__BackingField.IsFile) { Proxy proxy = request.k__BackingField; int num; if (proxy != 0) { string scheme = proxy.
k__BackingField.Scheme; string host = request.k__BackingField.
k__BackingField.Host; num = request.k__BackingField.
k__BackingField.Port; int hashCode = new UriBuilder(scheme, host, num).Uri.GetHashCode(); } string empty = string.Empty; if (request.k__BackingField) { } string scheme2 = request.k__BackingField.Scheme; if (request.k__BackingField) { } string host2 = request.k__BackingField.Host; if (request.k__BackingField) { } num = request.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: 0x0600935D RID: 37725 RVA: 0x001E3CEC File Offset: 0x001E1EEC [Token(Token = "0x600935D")] [Address(RVA = "0x1718A30", Offset = "0x1717830", VA = "0x181718A30")] private static ConnectionBase CreateConnection(HTTPRequest request, string serverUrl) { if (request.k__BackingField) { } if (request.k__BackingField.IsFile && Application.platform != RuntimePlatform.WebGLPlayer) { FileConnection fileConnection = new FileConnection(serverUrl); } throw new NullReferenceException(); } // Token: 0x0600935E RID: 37726 RVA: 0x001E3D28 File Offset: 0x001E1F28 [Token(Token = "0x600935E")] [Address(RVA = "0x1718AD0", Offset = "0x17178D0", VA = "0x181718AD0")] private static ConnectionBase FindOrCreateFreeConnection(HTTPRequest request) { int num = 0; string keyForRequest = HTTPManager.GetKeyForRequest(request); bool flag = HTTPManager.Connections.TryGetValue(keyForRequest, num); if (!flag) { Dictionary> connections = HTTPManager.Connections; List 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.k__BackingField) { } string host = request.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.k__BackingField) { } if (!request.k__BackingField.IsFile || Application.platform == RuntimePlatform.WebGLPlayer) { } HTTPConnection httpconnection = new HTTPConnection(keyForRequest); } } } throw new NullReferenceException(); } // Token: 0x0600935F RID: 37727 RVA: 0x001E3E30 File Offset: 0x001E2030 [Token(Token = "0x600935F")] [Address(RVA = "0x1718950", Offset = "0x1717750", VA = "0x181718950")] private static bool CanProcessFromQueue() { int num = 0; List requestQueue = HTTPManager.RequestQueue; List requestQueue2 = HTTPManager.RequestQueue; ConnectionBase connectionBase; if (connectionBase == 0) { num++; } return true; } // Token: 0x06009360 RID: 37728 RVA: 0x001E3E60 File Offset: 0x001E2060 [Token(Token = "0x6009360")] [Address(RVA = "0x171AD00", Offset = "0x1719B00", VA = "0x18171AD00")] 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: 0x06009361 RID: 37729 RVA: 0x001E3E9C File Offset: 0x001E209C [Token(Token = "0x6009361")] [Address(RVA = "0x1719980", Offset = "0x1718780", VA = "0x181719980")] private static void OnConnectionRecylced(ConnectionBase conn) { int num; do { num = 0; List recycledConnections = HTTPManager.RecycledConnections; HTTPManager.RecycledConnections.Add(conn); Monitor.Exit(recycledConnections); } while (num != 0); } // Token: 0x06009362 RID: 37730 RVA: 0x001E3ECC File Offset: 0x001E20CC [Token(Token = "0x6009362")] [Address(RVA = "0x1718FF0", Offset = "0x1717DF0", VA = "0x181718FF0")] internal static ConnectionBase GetConnectionWith(HTTPRequest request) { int num; do { num = 0; object locker = HTTPManager.Locker; List activeConnections = HTTPManager.ActiveConnections; List activeConnections2 = HTTPManager.ActiveConnections; num++; Monitor.Exit(locker); } while (num != 0); throw new NullReferenceException(); } // Token: 0x06009363 RID: 37731 RVA: 0x001E3F0C File Offset: 0x001E210C [Token(Token = "0x6009363")] [Address(RVA = "0x171AD70", Offset = "0x1719B70", VA = "0x18171AD70")] internal static bool RemoveFromQueue(HTTPRequest request) { return HTTPManager.RequestQueue.Remove(request); } // Token: 0x06009364 RID: 37732 RVA: 0x001E3F2C File Offset: 0x001E212C [Token(Token = "0x6009364")] [Address(RVA = "0x1719730", Offset = "0x1718530", VA = "0x181719730")] internal static string GetRootCacheFolder() { return HTTPManager.k__BackingField(); } // Token: 0x06009365 RID: 37733 RVA: 0x001E3F60 File Offset: 0x001E2160 [Token(Token = "0x6009365")] [Address(RVA = "0x1719C50", Offset = "0x1718A50", VA = "0x181719C50")] public static void OnUpdate() { object locker; do { int num = 0; if (!Monitor.TryEnter(HTTPManager.Locker)) { break; } List activeConnections = HTTPManager.ActiveConnections; List activeConnections2 = HTTPManager.ActiveConnections; bool flag = HTTPManager.k__BackingField; if (flag <= true) { TimeSpan timeSpan = HTTPManager.k__BackingField; bool flag2; if (flag2) { } TimeSpan timeSpan2 = HTTPManager.k__BackingField; DateTime utcNow = DateTime.UtcNow; TimeSpan timeSpan3 = HTTPManager.k__BackingField; TimeSpan timeSpan4; if (timeSpan4 > timeSpan3) { byte b = HTTPManager.maxConnectionPerServer; } num++; BestHTTP.Logger.ILogger logger = HTTPManager.Logger; num++; TimeSpan timeSpan5 = HTTPManager.k__BackingField; } num++; num++; TimeSpan timeSpan6 = HTTPManager.k__BackingField; if (flag) { while (!flag) { } } TimeSpan timeSpan7 = HTTPManager.k__BackingField; TimeSpan timeSpan8 = HTTPManager.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.k__BackingField; TimeSpan timeSpan12 = HTTPManager.k__BackingField; } num++; BestHTTP.Logger.ILogger logger3 = HTTPManager.Logger; TimeSpan timeSpan13 = HTTPManager.k__BackingField; int num2 = 0; if (typeof(HTTPManager).TypeHandle != 0) { goto IL_2F0; } if (num != -1) { } int num3; if (Monitor.TryEnter(HTTPManager.RecycledConnections)) { List recycledConnections = HTTPManager.RecycledConnections; List recycledConnections2 = HTTPManager.RecycledConnections; List recycledConnections3 = HTTPManager.RecycledConnections; bool flag3; if (flag3) { List activeConnections3 = HTTPManager.ActiveConnections; List freeConnections = HTTPManager.FreeConnections; } num2++; HTTPManager.RecycledConnections.Clear(); num++; num3 = 0; List recycledConnections4 = HTTPManager.RecycledConnections; Monitor.Exit(recycledConnections4); if (recycledConnections4 != 0) { goto IL_31A; } if (num != -1) { } } List freeConnections2 = HTTPManager.FreeConnections; List freeConnections3 = HTTPManager.FreeConnections; List freeConnections4 = HTTPManager.FreeConnections; byte b2 = HTTPManager.maxConnectionPerServer; Dictionary> connections = HTTPManager.Connections; bool flag4; if (flag4) { } HTTPManager.FreeConnections.RemoveAt(num3); num3++; List requestQueue = HTTPManager.RequestQueue; List requestQueue2 = HTTPManager.RequestQueue; ConnectionBase connectionBase; if (connectionBase == 0) { num3++; } List requestQueue3 = HTTPManager.RequestQueue; Predicate 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 requestQueue4 = HTTPManager.RequestQueue; Comparison comparison; if (HTTPManager.<>c.<>9__109_1 == 0) { comparison = (HTTPRequest req1, HTTPRequest req2) => req1.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++; } locker = HTTPManager.Locker; Monitor.Exit(locker); } while (locker != 0); HTTPManager.heartbeats.Update(); VariableSizedBufferPool.Maintain(); return; IL_2F0: throw new NullReferenceException(); IL_31A: throw new NullReferenceException(); } // Token: 0x06009366 RID: 37734 RVA: 0x001E42E0 File Offset: 0x001E24E0 [Token(Token = "0x6009366")] [Address(RVA = "0x1719AB0", Offset = "0x17188B0", VA = "0x181719AB0")] 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); } while (num != 0); } // Token: 0x06009367 RID: 37735 RVA: 0x001E431C File Offset: 0x001E251C [Token(Token = "0x6009367")] [Address(RVA = "0x1718490", Offset = "0x1717290", VA = "0x181718490")] 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.k__BackingField = num; httprequest.Abort(); num++; num++; } Dictionary> connections = HTTPManager.Connections; bool flag; if (flag) { bool flag2; if (!flag2 || flag2) { } if ((uint)(-1) != 0U) { goto IL_A2; } if ((ulong)((uint)(-1)) != (ulong)(-1L)) { } } if ((uint)(-1) != 0U) { goto IL_AE; } if ((ulong)((uint)(-1)) != (ulong)(-1L)) { } HTTPManager.Connections.Clear(); } while ((uint)(-1) != 0U); return; IL_A2: throw new NullReferenceException(); IL_AE: throw new NullReferenceException(); } // Token: 0x0400648F RID: 25743 [Token(Token = "0x400648F")] private static byte maxConnectionPerServer; // Token: 0x0400649A RID: 25754 [Token(Token = "0x400649A")] private static HeartbeatManager heartbeats; // Token: 0x0400649B RID: 25755 [Token(Token = "0x400649B")] private static BestHTTP.Logger.ILogger logger; // Token: 0x040064A1 RID: 25761 [Token(Token = "0x40064A1")] public static bool TryToMinimizeTCPLatency; // Token: 0x040064A2 RID: 25762 [Token(Token = "0x40064A2")] public static int SendBufferSize; // Token: 0x040064A3 RID: 25763 [Token(Token = "0x40064A3")] public static int ReceiveBufferSize; // Token: 0x040064A4 RID: 25764 [Token(Token = "0x40064A4")] public static IIOService IOService; // Token: 0x040064A6 RID: 25766 [Token(Token = "0x40064A6")] private static Dictionary> Connections = new Dictionary(); // Token: 0x040064A7 RID: 25767 [Token(Token = "0x40064A7")] private static List ActiveConnections = new List(); // Token: 0x040064A8 RID: 25768 [Token(Token = "0x40064A8")] private static List FreeConnections = new List(); // Token: 0x040064A9 RID: 25769 [Token(Token = "0x40064A9")] private static List RecycledConnections = new List(); // Token: 0x040064AA RID: 25770 [Token(Token = "0x40064AA")] private static List RequestQueue = new List(); // Token: 0x040064AB RID: 25771 [Token(Token = "0x40064AB")] private static bool IsCallingCallbacks; // Token: 0x040064AC RID: 25772 [Token(Token = "0x40064AC")] internal static object Locker = new object(); } }