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: 0x02001972 RID: 6514 [Token(Token = "0x2001972")] public static class HTTPManager { // Token: 0x060096F9 RID: 38649 RVA: 0x001EC6D8 File Offset: 0x001EA8D8 [Token(Token = "0x60096F9")] [Address(RVA = "0x2A77440", Offset = "0x2A76440", VA = "0x182A77440")] 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: 0x170017DF RID: 6111 // (get) Token: 0x060096FA RID: 38650 RVA: 0x001EC748 File Offset: 0x001EA948 // (set) Token: 0x060096FB RID: 38651 RVA: 0x001EC75C File Offset: 0x001EA95C [Token(Token = "0x170017DF")] public static byte MaxConnectionPerServer { [Token(Token = "0x60096FA")] [Address(RVA = "0x2A78100", Offset = "0x2A77100", VA = "0x182A78100")] get { return HTTPManager.maxConnectionPerServer; } [Token(Token = "0x60096FB")] [Address(RVA = "0x2A78820", Offset = "0x2A77820", VA = "0x182A78820")] set { HTTPManager.maxConnectionPerServer = value; } } // Token: 0x170017E0 RID: 6112 // (get) Token: 0x060096FC RID: 38652 RVA: 0x001EC77C File Offset: 0x001EA97C // (set) Token: 0x060096FD RID: 38653 RVA: 0x001EC790 File Offset: 0x001EA990 [Token(Token = "0x170017E0")] public static bool KeepAliveDefaultValue { [Token(Token = "0x60096FC")] [Address(RVA = "0x2A77EC0", Offset = "0x2A76EC0", VA = "0x182A77EC0")] get; [Token(Token = "0x60096FD")] [Address(RVA = "0x2A78700", Offset = "0x2A77700", VA = "0x182A78700")] set; } // Token: 0x170017E1 RID: 6113 // (get) Token: 0x060096FE RID: 38654 RVA: 0x001EC7A4 File Offset: 0x001EA9A4 // (set) Token: 0x060096FF RID: 38655 RVA: 0x001EC7B8 File Offset: 0x001EA9B8 [Token(Token = "0x170017E1")] public static bool IsCachingDisabled { [Token(Token = "0x60096FE")] [Address(RVA = "0x2A77DA0", Offset = "0x2A76DA0", VA = "0x182A77DA0")] get; [Token(Token = "0x60096FF")] [Address(RVA = "0x2A785E0", Offset = "0x2A775E0", VA = "0x182A785E0")] set; } // Token: 0x170017E2 RID: 6114 // (get) Token: 0x06009700 RID: 38656 RVA: 0x001EC7CC File Offset: 0x001EA9CC // (set) Token: 0x06009701 RID: 38657 RVA: 0x001EC7E0 File Offset: 0x001EA9E0 [Token(Token = "0x170017E2")] public static TimeSpan MaxConnectionIdleTime { [Token(Token = "0x6009700")] [Address(RVA = "0x2A780A0", Offset = "0x2A770A0", VA = "0x182A780A0")] get; [Token(Token = "0x6009701")] [Address(RVA = "0x2A787C0", Offset = "0x2A777C0", VA = "0x182A787C0")] set; } // Token: 0x170017E3 RID: 6115 // (get) Token: 0x06009702 RID: 38658 RVA: 0x001EC7F4 File Offset: 0x001EA9F4 // (set) Token: 0x06009703 RID: 38659 RVA: 0x001EC808 File Offset: 0x001EAA08 [Token(Token = "0x170017E3")] public static bool IsCookiesEnabled { [Token(Token = "0x6009702")] [Address(RVA = "0x2A77E00", Offset = "0x2A76E00", VA = "0x182A77E00")] get; [Token(Token = "0x6009703")] [Address(RVA = "0x2A78640", Offset = "0x2A77640", VA = "0x182A78640")] set; } // Token: 0x170017E4 RID: 6116 // (get) Token: 0x06009704 RID: 38660 RVA: 0x001EC81C File Offset: 0x001EAA1C // (set) Token: 0x06009705 RID: 38661 RVA: 0x001EC830 File Offset: 0x001EAA30 [Token(Token = "0x170017E4")] public static uint CookieJarSize { [Token(Token = "0x6009704")] [Address(RVA = "0x2A77A50", Offset = "0x2A76A50", VA = "0x182A77A50")] get; [Token(Token = "0x6009705")] [Address(RVA = "0x2A78400", Offset = "0x2A77400", VA = "0x182A78400")] set; } // Token: 0x170017E5 RID: 6117 // (get) Token: 0x06009706 RID: 38662 RVA: 0x001EC844 File Offset: 0x001EAA44 // (set) Token: 0x06009707 RID: 38663 RVA: 0x001EC858 File Offset: 0x001EAA58 [Token(Token = "0x170017E5")] public static bool EnablePrivateBrowsing { [Token(Token = "0x6009706")] [Address(RVA = "0x2A77BD0", Offset = "0x2A76BD0", VA = "0x182A77BD0")] get; [Token(Token = "0x6009707")] [Address(RVA = "0x2A78580", Offset = "0x2A77580", VA = "0x182A78580")] set; } // Token: 0x170017E6 RID: 6118 // (get) Token: 0x06009708 RID: 38664 RVA: 0x001EC86C File Offset: 0x001EAA6C // (set) Token: 0x06009709 RID: 38665 RVA: 0x001EC880 File Offset: 0x001EAA80 [Token(Token = "0x170017E6")] public static TimeSpan ConnectTimeout { [Token(Token = "0x6009708")] [Address(RVA = "0x2A779F0", Offset = "0x2A769F0", VA = "0x182A779F0")] get; [Token(Token = "0x6009709")] [Address(RVA = "0x2A783A0", Offset = "0x2A773A0", VA = "0x182A783A0")] set; } // Token: 0x170017E7 RID: 6119 // (get) Token: 0x0600970A RID: 38666 RVA: 0x001EC894 File Offset: 0x001EAA94 // (set) Token: 0x0600970B RID: 38667 RVA: 0x001EC8A8 File Offset: 0x001EAAA8 [Token(Token = "0x170017E7")] public static TimeSpan RequestTimeout { [Token(Token = "0x600970A")] [Address(RVA = "0x2A78280", Offset = "0x2A77280", VA = "0x182A78280")] get; [Token(Token = "0x600970B")] [Address(RVA = "0x2A789D0", Offset = "0x2A779D0", VA = "0x182A789D0")] set; } // Token: 0x170017E8 RID: 6120 // (get) Token: 0x0600970C RID: 38668 RVA: 0x001EC8BC File Offset: 0x001EAABC // (set) Token: 0x0600970D RID: 38669 RVA: 0x001EC8D0 File Offset: 0x001EAAD0 [Token(Token = "0x170017E8")] public static Func RootCacheFolderProvider { [Token(Token = "0x600970C")] [Address(RVA = "0x2A782E0", Offset = "0x2A772E0", VA = "0x182A782E0")] get; [Token(Token = "0x600970D")] [Address(RVA = "0x2A78A30", Offset = "0x2A77A30", VA = "0x182A78A30")] set; } // Token: 0x170017E9 RID: 6121 // (get) Token: 0x0600970E RID: 38670 RVA: 0x001EC8E4 File Offset: 0x001EAAE4 // (set) Token: 0x0600970F RID: 38671 RVA: 0x001EC8F8 File Offset: 0x001EAAF8 [Token(Token = "0x170017E9")] public static Proxy Proxy { [Token(Token = "0x600970E")] [Address(RVA = "0x2A78220", Offset = "0x2A77220", VA = "0x182A78220")] get; [Token(Token = "0x600970F")] [Address(RVA = "0x2A78970", Offset = "0x2A77970", VA = "0x182A78970")] set; } // Token: 0x170017EA RID: 6122 // (get) Token: 0x06009710 RID: 38672 RVA: 0x001EC90C File Offset: 0x001EAB0C [Token(Token = "0x170017EA")] public static HeartbeatManager Heartbeats { [Token(Token = "0x6009710")] [Address(RVA = "0x2A77C30", Offset = "0x2A76C30", VA = "0x182A77C30")] 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: 0x170017EB RID: 6123 // (get) Token: 0x06009711 RID: 38673 RVA: 0x001EC94C File Offset: 0x001EAB4C // (set) Token: 0x06009712 RID: 38674 RVA: 0x001EC984 File Offset: 0x001EAB84 [Token(Token = "0x170017EB")] public static BestHTTP.Logger.ILogger Logger { [Token(Token = "0x6009711")] [Address(RVA = "0x2A77F20", Offset = "0x2A76F20", VA = "0x182A77F20")] get { HTTPManager.logger = new DefaultLogger(); BestHTTP.Logger.ILogger logger = HTTPManager.logger; int num = 0; num += num; num++; return HTTPManager.logger; } [Token(Token = "0x6009712")] [Address(RVA = "0x2A78760", Offset = "0x2A77760", VA = "0x182A78760")] set { HTTPManager.logger = value; } } // Token: 0x170017EC RID: 6124 // (get) Token: 0x06009713 RID: 38675 RVA: 0x001EC998 File Offset: 0x001EAB98 // (set) Token: 0x06009714 RID: 38676 RVA: 0x001EC9AC File Offset: 0x001EABAC [Token(Token = "0x170017EC")] public static ICertificateVerifyer DefaultCertificateVerifyer { [Token(Token = "0x6009713")] [Address(RVA = "0x2A77AB0", Offset = "0x2A76AB0", VA = "0x182A77AB0")] get; [Token(Token = "0x6009714")] [Address(RVA = "0x2A78460", Offset = "0x2A77460", VA = "0x182A78460")] set; } // Token: 0x170017ED RID: 6125 // (get) Token: 0x06009715 RID: 38677 RVA: 0x001EC9C0 File Offset: 0x001EABC0 // (set) Token: 0x06009716 RID: 38678 RVA: 0x001EC9D4 File Offset: 0x001EABD4 [Token(Token = "0x170017ED")] public static IClientCredentialsProvider DefaultClientCredentialsProvider { [Token(Token = "0x6009715")] [Address(RVA = "0x2A77B70", Offset = "0x2A76B70", VA = "0x182A77B70")] get; [Token(Token = "0x6009716")] [Address(RVA = "0x2A78520", Offset = "0x2A77520", VA = "0x182A78520")] set; } // Token: 0x170017EE RID: 6126 // (get) Token: 0x06009717 RID: 38679 RVA: 0x001EC9E8 File Offset: 0x001EABE8 // (set) Token: 0x06009718 RID: 38680 RVA: 0x001EC9FC File Offset: 0x001EABFC [Token(Token = "0x170017EE")] public static bool UseAlternateSSLDefaultValue { [Token(Token = "0x6009717")] [Address(RVA = "0x2A78340", Offset = "0x2A77340", VA = "0x182A78340")] get; [Token(Token = "0x6009718")] [Address(RVA = "0x2A78A90", Offset = "0x2A77A90", VA = "0x182A78A90")] set; } // Token: 0x170017EF RID: 6127 // (get) Token: 0x06009719 RID: 38681 RVA: 0x001ECA10 File Offset: 0x001EAC10 // (set) Token: 0x0600971A RID: 38682 RVA: 0x001ECA24 File Offset: 0x001EAC24 [Token(Token = "0x170017EF")] public static Func DefaultCertificationValidator { [Token(Token = "0x6009719")] [Address(RVA = "0x2A77B10", Offset = "0x2A76B10", VA = "0x182A77B10")] get; [Token(Token = "0x600971A")] [Address(RVA = "0x2A784C0", Offset = "0x2A774C0", VA = "0x182A784C0")] set; } // Token: 0x170017F0 RID: 6128 // (get) Token: 0x0600971B RID: 38683 RVA: 0x001ECA38 File Offset: 0x001EAC38 // (set) Token: 0x0600971C RID: 38684 RVA: 0x001ECA4C File Offset: 0x001EAC4C [Token(Token = "0x170017F0")] public static Action OnSendingHeaders { [Token(Token = "0x600971B")] [Address(RVA = "0x2A781C0", Offset = "0x2A771C0", VA = "0x182A781C0")] get; [Token(Token = "0x600971C")] [Address(RVA = "0x2A78910", Offset = "0x2A77910", VA = "0x182A78910")] set; } // Token: 0x170017F1 RID: 6129 // (get) Token: 0x0600971D RID: 38685 RVA: 0x001ECA60 File Offset: 0x001EAC60 // (set) Token: 0x0600971E RID: 38686 RVA: 0x001ECA74 File Offset: 0x001EAC74 [Token(Token = "0x170017F1")] internal static int MaxPathLength { [Token(Token = "0x600971D")] [Address(RVA = "0x2A78160", Offset = "0x2A77160", VA = "0x182A78160")] get; [Token(Token = "0x600971E")] [Address(RVA = "0x2A788B0", Offset = "0x2A778B0", VA = "0x182A788B0")] set; } // Token: 0x170017F2 RID: 6130 // (get) Token: 0x0600971F RID: 38687 RVA: 0x001ECA88 File Offset: 0x001EAC88 // (set) Token: 0x06009720 RID: 38688 RVA: 0x001ECA9C File Offset: 0x001EAC9C [Token(Token = "0x170017F2")] internal static bool IsQuitting { [Token(Token = "0x600971F")] [Address(RVA = "0x2A77E60", Offset = "0x2A76E60", VA = "0x182A77E60")] get; [Token(Token = "0x6009720")] [Address(RVA = "0x2A786A0", Offset = "0x2A776A0", VA = "0x182A786A0")] private set; } // Token: 0x06009721 RID: 38689 RVA: 0x001ECAB0 File Offset: 0x001EACB0 [Token(Token = "0x6009721")] [Address(RVA = "0x2A754F0", Offset = "0x2A744F0", VA = "0x182A754F0")] [CBEAKPMNJOL(LGFJHLDANJN.Unity_AfterSceneLoad)] private static void InitializeOnLoad() { } // Token: 0x06009722 RID: 38690 RVA: 0x001ECAC0 File Offset: 0x001EACC0 [Token(Token = "0x6009722")] [Address(RVA = "0x2A773A0", Offset = "0x2A763A0", VA = "0x182A773A0")] public static void Setup() { HTTPUpdateDelegator.CheckInstance(); HTTPCacheService.CheckSetup(); CookieJar.SetupFolder(); } // Token: 0x06009723 RID: 38691 RVA: 0x001ECAE4 File Offset: 0x001EACE4 [Token(Token = "0x6009723")] [Address(RVA = "0x2A76F10", Offset = "0x2A75F10", VA = "0x182A76F10")] 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: 0x06009724 RID: 38692 RVA: 0x001ECB08 File Offset: 0x001EAD08 [Token(Token = "0x6009724")] [Address(RVA = "0x2A76FC0", Offset = "0x2A75FC0", VA = "0x182A76FC0")] public static HTTPRequest SendRequest(string url, HTTPMethods methodType, OnRequestFinishedDelegate callback) { return HTTPManager.SendRequest(new HTTPRequest(new Uri(url), methodType, callback)); } // Token: 0x06009725 RID: 38693 RVA: 0x001ECB28 File Offset: 0x001EAD28 [Token(Token = "0x6009725")] [Address(RVA = "0x2A76D80", Offset = "0x2A75D80", VA = "0x182A76D80")] 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: 0x06009726 RID: 38694 RVA: 0x001ECB50 File Offset: 0x001EAD50 [Token(Token = "0x6009726")] [Address(RVA = "0x2A77080", Offset = "0x2A76080", VA = "0x182A77080")] 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: 0x06009727 RID: 38695 RVA: 0x001ECB6C File Offset: 0x001EAD6C [Token(Token = "0x6009727")] [Address(RVA = "0x2A77160", Offset = "0x2A76160", VA = "0x182A77160")] 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: 0x06009728 RID: 38696 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x6009728")] [Address(RVA = "0x2A74DC0", Offset = "0x2A73DC0", VA = "0x182A74DC0")] public static GeneralStatistics GetGeneralStatistics(StatisticsQueryFlags queryFlags) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06009729 RID: 38697 RVA: 0x001ECBC8 File Offset: 0x001EADC8 [Token(Token = "0x6009729")] [Address(RVA = "0x2A76A30", Offset = "0x2A75A30", VA = "0x182A76A30")] 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: 0x0600972A RID: 38698 RVA: 0x001ECCBC File Offset: 0x001EAEBC [Token(Token = "0x600972A")] [Address(RVA = "0x2A750E0", Offset = "0x2A740E0", VA = "0x182A750E0")] 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: 0x0600972B RID: 38699 RVA: 0x001ECDA8 File Offset: 0x001EAFA8 [Token(Token = "0x600972B")] [Address(RVA = "0x2A74640", Offset = "0x2A73640", VA = "0x182A74640")] 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: 0x0600972C RID: 38700 RVA: 0x001ECDE4 File Offset: 0x001EAFE4 [Token(Token = "0x600972C")] [Address(RVA = "0x2A746E0", Offset = "0x2A736E0", VA = "0x182A746E0")] 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); throw new NullReferenceException(); } 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: 0x0600972D RID: 38701 RVA: 0x001ECEE8 File Offset: 0x001EB0E8 [Token(Token = "0x600972D")] [Address(RVA = "0x2A74560", Offset = "0x2A73560", VA = "0x182A74560")] private static bool CanProcessFromQueue() { int num = 0; List requestQueue = HTTPManager.RequestQueue; List requestQueue2 = HTTPManager.RequestQueue; ConnectionBase connectionBase; if (connectionBase == 0) { num++; } return true; } // Token: 0x0600972E RID: 38702 RVA: 0x001ECF18 File Offset: 0x001EB118 [Token(Token = "0x600972E")] [Address(RVA = "0x2A76940", Offset = "0x2A75940", VA = "0x182A76940")] 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: 0x0600972F RID: 38703 RVA: 0x001ECF54 File Offset: 0x001EB154 [Token(Token = "0x600972F")] [Address(RVA = "0x2A75590", Offset = "0x2A74590", VA = "0x182A75590")] 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: 0x06009730 RID: 38704 RVA: 0x001ECF84 File Offset: 0x001EB184 [Token(Token = "0x6009730")] [Address(RVA = "0x2A74C00", Offset = "0x2A73C00", VA = "0x182A74C00")] 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: 0x06009731 RID: 38705 RVA: 0x001ECFC4 File Offset: 0x001EB1C4 [Token(Token = "0x6009731")] [Address(RVA = "0x2A769B0", Offset = "0x2A759B0", VA = "0x182A769B0")] internal static bool RemoveFromQueue(HTTPRequest request) { return HTTPManager.RequestQueue.Remove(request); } // Token: 0x06009732 RID: 38706 RVA: 0x001ECFE4 File Offset: 0x001EB1E4 [Token(Token = "0x6009732")] [Address(RVA = "0x2A75340", Offset = "0x2A74340", VA = "0x182A75340")] internal static string GetRootCacheFolder() { return HTTPManager.k__BackingField(); } // Token: 0x06009733 RID: 38707 RVA: 0x001ED018 File Offset: 0x001EB218 [Token(Token = "0x6009733")] [Address(RVA = "0x2A75860", Offset = "0x2A74860", VA = "0x182A75860")] 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 (timeSpan7 == 0) { } while (timeSpan7 == 0) { } 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++; int num2 = 0; BestHTTP.Logger.ILogger logger3 = HTTPManager.Logger; TimeSpan timeSpan13 = HTTPManager.k__BackingField; if (num2 != 0) { } int num3 = 0; if (typeof(HTTPManager).TypeHandle != 0) { goto IL_2F7; } if (num != -1) { } int num4; 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; } num3++; HTTPManager.RecycledConnections.Clear(); num++; num4 = 0; List recycledConnections4 = HTTPManager.RecycledConnections; Monitor.Exit(recycledConnections4); if (recycledConnections4 != 0) { goto IL_321; } 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(num4); num4++; List requestQueue = HTTPManager.RequestQueue; List requestQueue2 = HTTPManager.RequestQueue; ConnectionBase connectionBase; if (connectionBase == 0) { num4++; } 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 (num4 < array.Length) { HTTPRequest httprequest = HTTPManager.SendRequest(array[num4]); num4++; } locker = HTTPManager.Locker; Monitor.Exit(locker); } while (locker != 0); HTTPManager.heartbeats.Update(); VariableSizedBufferPool.Maintain(); return; IL_2F7: throw new NullReferenceException(); IL_321: throw new NullReferenceException(); } // Token: 0x06009734 RID: 38708 RVA: 0x001ED3A0 File Offset: 0x001EB5A0 [Token(Token = "0x6009734")] [Address(RVA = "0x2A756C0", Offset = "0x2A746C0", VA = "0x182A756C0")] 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: 0x06009735 RID: 38709 RVA: 0x001ED3DC File Offset: 0x001EB5DC [Token(Token = "0x6009735")] [Address(RVA = "0x2A740A0", Offset = "0x2A730A0", VA = "0x182A740A0")] 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: 0x04006648 RID: 26184 [Token(Token = "0x4006648")] private static byte maxConnectionPerServer; // Token: 0x04006653 RID: 26195 [Token(Token = "0x4006653")] private static HeartbeatManager heartbeats; // Token: 0x04006654 RID: 26196 [Token(Token = "0x4006654")] private static BestHTTP.Logger.ILogger logger; // Token: 0x0400665A RID: 26202 [Token(Token = "0x400665A")] public static bool TryToMinimizeTCPLatency; // Token: 0x0400665B RID: 26203 [Token(Token = "0x400665B")] public static int SendBufferSize; // Token: 0x0400665C RID: 26204 [Token(Token = "0x400665C")] public static int ReceiveBufferSize; // Token: 0x0400665D RID: 26205 [Token(Token = "0x400665D")] public static IIOService IOService; // Token: 0x0400665F RID: 26207 [Token(Token = "0x400665F")] private static Dictionary> Connections = new Dictionary(); // Token: 0x04006660 RID: 26208 [Token(Token = "0x4006660")] private static List ActiveConnections = new List(); // Token: 0x04006661 RID: 26209 [Token(Token = "0x4006661")] private static List FreeConnections = new List(); // Token: 0x04006662 RID: 26210 [Token(Token = "0x4006662")] private static List RecycledConnections = new List(); // Token: 0x04006663 RID: 26211 [Token(Token = "0x4006663")] private static List RequestQueue = new List(); // Token: 0x04006664 RID: 26212 [Token(Token = "0x4006664")] private static bool IsCallingCallbacks; // Token: 0x04006665 RID: 26213 [Token(Token = "0x4006665")] internal static object Locker = new object(); } }