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 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 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 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 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.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.k__BackingField = (HTTPRequestStates)((ulong)1L); HTTPManager.RequestQueue.Add(request); return; } List activeConnections = HTTPManager.ActiveConnections; Predicate predicate = (ConnectionBase c) => c == conn; if (activeConnections.Find(predicate) == 0) { List activeConnections2 = HTTPManager.ActiveConnections; ConnectionBase conn3 = conn; activeConnections2.Add(conn3); } List freeConnections = HTTPManager.FreeConnections; ConnectionBase conn2 = conn; bool flag = freeConnections.Remove(conn2); request.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.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: 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.k__BackingField) { } if (request.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> 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: 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 requestQueue = HTTPManager.RequestQueue; List 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 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 activeConnections = HTTPManager.ActiveConnections; List 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.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 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 (num == -1) { goto IL_12A; } 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++; goto IL_12A; } goto IL_154; IL_18E: if (typeof(HTTPManager).TypeHandle != 0) { goto IL_31C; } List requestQueue = HTTPManager.RequestQueue; List requestQueue2 = HTTPManager.RequestQueue; ConnectionBase connectionBase; int num3; 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++; } 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 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++; 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.k__BackingField = num; httprequest.Abort(); num++; num++; } Dictionary> 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> Connections = new Dictionary(); // Token: 0x0400560D RID: 22029 [Token(Token = "0x400560D")] private static List ActiveConnections = new List(); // Token: 0x0400560E RID: 22030 [Token(Token = "0x400560E")] private static List FreeConnections = new List(); // Token: 0x0400560F RID: 22031 [Token(Token = "0x400560F")] private static List RecycledConnections = new List(); // Token: 0x04005610 RID: 22032 [Token(Token = "0x4005610")] private static List 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(); } }