using System; using System.Collections.Generic; using System.IO; using System.Net.Security; using System.Security.Cryptography.X509Certificates; using System.Threading; using BestHTTP.Authentication; using BestHTTP.Caching; using BestHTTP.Cookies; using BestHTTP.Extensions; using BestHTTP.Logger; using BestHTTP.PlatformSupport.TcpClient.General; using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls; using BestHTTP.SecureProtocol.Org.BouncyCastle.Security; using Cpp2IlInjected; using Org.BouncyCastle.Crypto.Tls; namespace BestHTTP { // Token: 0x02001890 RID: 6288 [Token(Token = "0x2001890")] internal sealed class HTTPConnection : ConnectionBase { // Token: 0x17001741 RID: 5953 // (get) Token: 0x0600931E RID: 37662 RVA: 0x001E21C0 File Offset: 0x001E03C0 [Token(Token = "0x17001741")] public override bool IsRemovable { [Token(Token = "0x600931E")] [Address(RVA = "0x1717F00", Offset = "0x1716D00", VA = "0x181717F00", Slot = "5")] get { if (!base.IsRemovable) { if (base.IsFree && this.KeepAlive != (ulong)0L) { DateTime utcNow = DateTime.UtcNow; DateTime lastProcessTime = this.LastProcessTime; TimeSpan timeSpan = utcNow - lastProcessTime; TimeSpan k__BackingField = this.KeepAlive.k__BackingField; if (!(timeSpan >= k__BackingField)) { } } } return true; } } // Token: 0x0600931F RID: 37663 RVA: 0x001E2224 File Offset: 0x001E0424 [Token(Token = "0x600931F")] [Address(RVA = "0x1714D10", Offset = "0x1713B10", VA = "0x181714D10")] internal HTTPConnection(string serverAddress) : base(serverAddress) { } // Token: 0x06009320 RID: 37664 RVA: 0x001E2238 File Offset: 0x001E0438 [Token(Token = "0x6009320")] [Address(RVA = "0x17166A0", Offset = "0x17154A0", VA = "0x1817166A0", Slot = "7")] protected override void ThreadFunc(object param) { for (;;) { int num = 0; if (!this.TryLoadAllFromCache()) { TcpClient client = this.Client; if (client != 0 && !client.IsConnected()) { this.Close(); } if (num == 1) { this.Close(); Thread.Sleep(100); } HTTPRequest k__BackingField = this.k__BackingField; if (k__BackingField.k__BackingField) { } Uri k__BackingField = k__BackingField.k__BackingField; this.k__BackingField = k__BackingField; this.Connect(); uint num2; num2 += (uint)1; if (num != 0) { goto IL_721; } if (num2 != (uint)(-1)) { } HTTPRequest k__BackingField2 = this.k__BackingField; if (!k__BackingField2.disableCache) { HTTPCacheService.SetHeaders(k__BackingField2); } TcpClient client2 = this.Client; bool k__BackingField = this.k__BackingField.k__BackingField; client2.NoDelay = k__BackingField; HTTPRequest k__BackingField3 = this.k__BackingField; Stream stream = this.Stream; k__BackingField3.SendOutTo(stream); num2 += (uint)1; if (num != 0) { goto IL_727; } if (num2 != (uint)(-1)) { } bool flag = this.Receive(); num2 += (uint)1; if (num != 0) { goto IL_727; } if (num2 != (uint)(-1)) { } HTTPConnectionStates k__BackingField = this.k__BackingField; if (k__BackingField == HTTPConnectionStates.TimedOut || k__BackingField == HTTPConnectionStates.AbortRequested) { goto IL_88D; } if (flag || this.k__BackingField.k__BackingField == flag) { } HTTPRequest k__BackingField4 = this.k__BackingField; if (k__BackingField4.k__BackingField != (ulong)0L) { int num3; if (k__BackingField4.k__BackingField) { CookieJar.Set(this.k__BackingField.k__BackingField); CookieJar.Persist(); num2 += (uint)1; num3 = 0; if (num != 0) { goto IL_733; } if (num2 != (uint)(-1)) { } } HTTPRequest k__BackingField5 = this.k__BackingField; int k__BackingField = k__BackingField5.k__BackingField.k__BackingField; if (k__BackingField <= 308) { goto IL_319; } if (k__BackingField == 401) { string text = DigestStore.FindBest(k__BackingField5.k__BackingField.GetHeaderValues("www-authenticate")); if (!string.IsNullOrEmpty(text)) { HTTPRequest k__BackingField6 = this.k__BackingField; if (k__BackingField6.k__BackingField) { } Digest orCreate = DigestStore.GetOrCreate(k__BackingField6.k__BackingField); orCreate.ParseChallange(text); HTTPRequest k__BackingField7 = this.k__BackingField; if (k__BackingField7.k__BackingField != (ulong)0L) { if (k__BackingField7.k__BackingField) { } Uri k__BackingField2 = k__BackingField7.k__BackingField; if (!orCreate.IsUriProtected(k__BackingField2) || !this.k__BackingField.HasHeader("Authorization") || orCreate.k__BackingField) { } } } HTTPRequest k__BackingField8 = this.k__BackingField; if (k__BackingField8.useStreaming || k__BackingField8.disableCache || k__BackingField8.k__BackingField == (ulong)0L || !HTTPCacheService.IsSupported) { goto IL_4C9; } if (!this.k__BackingField.k__BackingField) { goto IL_45E; } } while ("Authorization" != (ulong)407L) { } List list; string text2 = DigestStore.FindBest(list); if (string.IsNullOrEmpty(text2)) { continue; } Digest orCreate2 = DigestStore.GetOrCreate(this.k__BackingField.k__BackingField.
k__BackingField); orCreate2.ParseChallange(text2); Proxy k__BackingField = this.k__BackingField.k__BackingField; while (k__BackingField.k__BackingField == (ulong)0L) { } Uri
k__BackingField = k__BackingField.
k__BackingField; if (!orCreate2.IsUriProtected(
k__BackingField)) { continue; } HTTPRequest k__BackingField9 = this.k__BackingField; bool flag2 = k__BackingField9.HasHeader("Proxy-Authorization"); if (flag2) { while (!orCreate2.k__BackingField) { } goto IL_319; } goto IL_319; IL_4C9: HTTPResponse k__BackingField = this.k__BackingField.k__BackingField; if (k__BackingField != 0 && k__BackingField.k__BackingField) { goto IL_51C; } if (k__BackingField == 0) { } uint num4; if (num4 != (uint)0) { goto IL_522; } List list2; if (num4 != (uint)0 && list2 != 0) { KeepAliveHeader keepAliveHeader; if (this.KeepAlive == 0) { keepAliveHeader = new KeepAliveHeader(); this.KeepAlive = keepAliveHeader; } keepAliveHeader.Parse(list2); goto IL_51C; } goto IL_51C; IL_45E: HTTPRequest k__BackingField10; Uri k__BackingField3 = k__BackingField10.k__BackingField; HTTPMethods k__BackingField = k__BackingField10.k__BackingField; HTTPResponse k__BackingField2 = k__BackingField10.k__BackingField; if (HTTPCacheService.IsCacheble(k__BackingField3, k__BackingField, k__BackingField2)) { HTTPRequest k__BackingField11 = this.k__BackingField; if (k__BackingField11.k__BackingField) { } Uri k__BackingField4 = k__BackingField11.k__BackingField; HTTPMethods k__BackingField2 = k__BackingField11.k__BackingField; HTTPResponse k__BackingField3 = k__BackingField11.k__BackingField; HTTPCacheFileInfo httpcacheFileInfo = HTTPCacheService.Store(k__BackingField4, k__BackingField2, k__BackingField3); HTTPCacheService.SaveLibrary(); goto IL_4C9; } goto IL_4C9; IL_319: if (flag2 > true) { while (flag2 > true) { } } int i = k__BackingField9.k__BackingField; while (i >= k__BackingField9.k__BackingField) { } i++; k__BackingField9.k__BackingField = i; string firstHeaderValue = this.k__BackingField.k__BackingField.GetFirstHeaderValue("location"); if (!string.IsNullOrEmpty(firstHeaderValue)) { Uri redirectUri = this.GetRedirectUri(firstHeaderValue); if (HTTPManager.Logger == 0) { ILogger logger = HTTPManager.Logger; HTTPRequest k__BackingField12 = this.k__BackingField; if (k__BackingField12.k__BackingField) { } int hashCode = k__BackingField12.k__BackingField.GetHashCode(); string text3 = string.Format("{0} - Redirected to Location: '{1}' redirectUri: '{1}'", hashCode, firstHeaderValue, redirectUri); } HTTPRequest k__BackingField13 = this.k__BackingField; OnBeforeRedirectionDelegate onBeforeRedirection = k__BackingField13.onBeforeRedirection; if (onBeforeRedirection != 0) { HTTPResponse k__BackingField4 = k__BackingField13.k__BackingField; if (!onBeforeRedirection(k__BackingField13, k__BackingField4, redirectUri)) { ILogger logger2 = HTTPManager.Logger; } } Dictionary> k__BackingField = this.k__BackingField.k__BackingField; if (k__BackingField != 0) { bool flag3 = k__BackingField.Remove("Host"); } HTTPRequest k__BackingField14 = this.k__BackingField; if (k__BackingField14.k__BackingField) { } int hashCode2 = k__BackingField14.k__BackingField.GetHashCode(); this.k__BackingField.k__BackingField = redirectUri; this.k__BackingField.k__BackingField = num3; k__BackingField10 = this.k__BackingField; k__BackingField10.k__BackingField = true; goto IL_45E; } goto IL_79F; } IL_51C: uint num5; while (num5 != (uint)0) { } IL_522: this.Close(); this.Close(); HTTPConnectionStates k__BackingField2 = this.k__BackingField; if (k__BackingField2 == HTTPConnectionStates.TimedOut || k__BackingField2 == HTTPConnectionStates.AbortRequested || this.k__BackingField.k__BackingField) { goto IL_8AB; } } HTTPRequest k__BackingField15 = this.k__BackingField; int num6 = 0; k__BackingField15.k__BackingField = num6; this.k__BackingField.k__BackingField = k__BackingField15; this.k__BackingField.k__BackingField = (HTTPRequestStates)((ulong)6L); this.Close(); HTTPRequest k__BackingField16 = this.k__BackingField; if (k__BackingField16 == 0) { goto IL_609; } Uri k__BackingField5; if (k__BackingField16.useStreaming) { if (k__BackingField16.k__BackingField) { } k__BackingField5 = k__BackingField16.k__BackingField; ulong num7; bool flag4 = HTTPCacheService.DeleteEntity(k__BackingField5, num7 != 0UL); } HTTPRequest k__BackingField17 = this.k__BackingField; int num8 = 0; k__BackingField17.k__BackingField = num8; HTTPConnectionStates k__BackingField3 = this.k__BackingField; if (k__BackingField5 != 0) { if (k__BackingField5 == 0) { goto IL_612; } if (k__BackingField5 != (ulong)1L) { this.k__BackingField.k__BackingField = k__BackingField3; this.k__BackingField.k__BackingField = (HTTPRequestStates)((ulong)4L); goto IL_609; } } IL_620: uint num9; this.k__BackingField.k__BackingField = (HTTPRequestStates)num9; object locker = HTTPManager.Locker; int num10; Monitor.Enter(locker, num10); HTTPRequest k__BackingField18 = this.k__BackingField; HTTPResponse k__BackingField5; if (k__BackingField18 != 0) { k__BackingField5 = k__BackingField18.k__BackingField; if (k__BackingField5 != 0 && k__BackingField5.k__BackingField) { this.k__BackingField = (HTTPConnectionStates)((ulong)3L); } } uint num11; k__BackingField18.k__BackingField = (HTTPMethods)num11; byte[] k__BackingField = k__BackingField18.k__BackingField; Exception ex; if ("{il2cpp array field local192->}" == (ulong)2L && k__BackingField5 == (ulong)4294967291L && "{il2cpp array field local192->}" == (ulong)0L) { HTTPRequestStates httprequestStates; int hashCode3 = httprequestStates.GetHashCode(); HTTPRequestStates httprequestStates2 = httprequestStates; ex = new Exception(string.Format("Remote server closed the connection before sending response header! Previous request state: {0}. Connection state: {1}", hashCode3, httprequestStates2)); k__BackingField[12] = ex; this.k__BackingField.k__BackingField = (HTTPRequestStates)((ulong)4L); } if (this.k__BackingField.k__BackingField == HTTPRequestStates.ConnectionTimedOut) { this.k__BackingField = (HTTPConnectionStates)num11; } DateTime utcNow = DateTime.UtcNow; this.LastProcessTime = utcNow; base.RecycleNow(); Monitor.Exit(locker); if (ex == 0 && num11 == (uint)0) { break; } continue; IL_612: this.k__BackingField.k__BackingField = (HTTPRequestStates)((ulong)7L); goto IL_620; IL_609: num10 = 0; this.Close(); goto IL_612; } return; IL_721: throw new NullReferenceException(); IL_727: throw new NullReferenceException(); IL_733: throw new NullReferenceException(); IL_79F: throw new NullReferenceException(); IL_88D: Exception ex2 = new Exception("AbortRequested"); throw new NullReferenceException(); IL_8AB: Exception ex3 = new Exception("AbortRequested"); throw new NullReferenceException(); } // Token: 0x06009321 RID: 37665 RVA: 0x001E2B4C File Offset: 0x001E0D4C [Token(Token = "0x6009321")] [Address(RVA = "0x1714EB0", Offset = "0x1713CB0", VA = "0x181714EB0")] private void Connect() { int num; TcpClient client5; TlsClientProtocol tlsClientProtocol; List list; Uri k__BackingField2; for (;;) { HTTPRequest k__BackingField = this.k__BackingField; num = 0; if (k__BackingField.k__BackingField != 0) { } if ((k__BackingField.k__BackingField ? 1 : 0) != num) { } Uri k__BackingField = k__BackingField.k__BackingField; TcpClient tcpClient; if (this.Client == 0) { tcpClient = new TcpClient(); this.Client = tcpClient; } if (tcpClient.Connected) { if (HTTPManager.Logger > (ulong)1L) { goto IL_239; } ILogger logger = HTTPManager.Logger; string host = k__BackingField.Host; int port = k__BackingField.Port; } HTTPRequest k__BackingField2 = this.k__BackingField; TcpClient client = this.Client; TimeSpan k__BackingField = k__BackingField2.k__BackingField; client.k__BackingField = k__BackingField; if (HTTPManager.Logger == 0) { ILogger logger2 = HTTPManager.Logger; HTTPRequest k__BackingField3 = this.k__BackingField; if ((k__BackingField3.k__BackingField ? 1 : 0) == num) { continue; } int hashCode = k__BackingField3.k__BackingField.m_String.GetHashCode(); string host2 = k__BackingField.Host; int port2 = k__BackingField.Port; string text2; string text = string.Format("'{0}' - Connecting to {1}:{2}", hashCode, host2, text2); } TcpClient client2 = this.Client; int sendBufferSize = HTTPManager.SendBufferSize; client2.SendBufferSize = sendBufferSize; TcpClient client3 = this.Client; int receiveBufferSize = HTTPManager.ReceiveBufferSize; client3.ReceiveBufferSize = receiveBufferSize; if (HTTPManager.Logger == 0) { ILogger logger3 = HTTPManager.Logger; object[] array = new object[4]; HTTPRequest k__BackingField4 = this.k__BackingField; if ((k__BackingField4.k__BackingField ? 1 : 0) == num) { continue; } int hashCode2 = k__BackingField4.k__BackingField.m_String.GetHashCode(); if (hashCode2 != 0) { } array[0] = hashCode2; int sendBufferSize2 = this.Client.SendBufferSize; string text3; if (text3 != 0) { } array[1] = text3; int receiveBufferSize2 = this.Client.ReceiveBufferSize; string text4; if (text4 != 0) { } array[2] = text4; bool is_blocking = this.Client.client.is_blocking; string text5; if (text5 != 0) { } array[3] = text5; string text6 = string.Format("'{0}' - Buffer sizes - Send: {1} Receive: {2} Blocking: {3}", array); } TcpClient client4 = this.Client; string host3 = k__BackingField.Host; int port3 = k__BackingField.Port; client4.Connect(host3, port3); if (HTTPManager.Logger <= (ulong)1L) { ILogger logger4 = HTTPManager.Logger; string host4 = k__BackingField.Host; int port4 = k__BackingField.Port; string text8; string text7 = "Connected to " + host4 + ":" + text8; } IL_239: DateTime utcNow = DateTime.UtcNow; this.k__BackingField = utcNow; if (this.Stream != num) { return; } HTTPRequest k__BackingField5 = this.k__BackingField; if ((k__BackingField5.k__BackingField ? 1 : 0) != num) { } bool flag = HTTPProtocolFactory.IsSecureProtocol(k__BackingField5.k__BackingField); Stream stream = this.Client.GetStream(); HTTPRequest k__BackingField6 = this.k__BackingField; this.Stream = stream; Proxy k__BackingField = k__BackingField6.k__BackingField; if (k__BackingField != 0) { string text9 = k__BackingField.ToString(); } if (!flag) { return; } HTTPRequest k__BackingField7 = this.k__BackingField; client5 = this.Client; if ((k__BackingField7.k__BackingField ? 1 : 0) == num) { break; } SecureRandom secureRandom = new SecureRandom(); Stream stream2; tlsClientProtocol = new TlsClientProtocol(stream2, secureRandom); HTTPRequest k__BackingField8 = this.k__BackingField; if (k__BackingField8.k__BackingField != 0) { } if ((k__BackingField8.k__BackingField ? 1 : 0) != num) { } if (!k__BackingField8.k__BackingField.IsHostIsAnIPAddress()) { list = new List(1); HTTPRequest k__BackingField9 = this.k__BackingField; if ((k__BackingField9.k__BackingField ? 1 : 0) != num) { } string host5 = k__BackingField9.k__BackingField.Host; list.Add(host5); } HTTPRequest k__BackingField10 = this.k__BackingField; if ((k__BackingField10.k__BackingField ? 1 : 0) != num) { } k__BackingField2 = k__BackingField10.k__BackingField; if (k__BackingField10.k__BackingField == 0) { goto Block_14; } } Stream stream3 = client5.GetStream(); RemoteCertificateValidationCallback remoteCertificateValidationCallback = delegate(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors errors) { HTTPRequest k__BackingField12 = this.k__BackingField; Func customCertificationValidator = k__BackingField12.CustomCertificationValidator; return customCertificationValidator == 0 || customCertificationValidator(k__BackingField12, cert, chain) != null; }; int num2; SslStream sslStream = new SslStream(stream3, num2 != 0, remoteCertificateValidationCallback); num2 = 0; if (sslStream == 0) { HTTPRequest k__BackingField11 = this.k__BackingField; if ((k__BackingField11.k__BackingField ? 1 : 0) != num) { } string host6 = k__BackingField11.k__BackingField.Host; bool isAuthenticated = sslStream.IsAuthenticated; } this.Stream = sslStream; return; Block_14: AlwaysValidVerifyer alwaysValidVerifyer = new AlwaysValidVerifyer(); IClientCredentialsProvider k__BackingField = this.k__BackingField.k__BackingField; LegacyTlsClient legacyTlsClient = new LegacyTlsClient(k__BackingField2, alwaysValidVerifyer, k__BackingField, list); tlsClientProtocol.RefuseRenegotiation(); throw new NullReferenceException(); } // Token: 0x06009322 RID: 37666 RVA: 0x001E2F4C File Offset: 0x001E114C [Token(Token = "0x6009322")] [Address(RVA = "0x1716020", Offset = "0x1714E20", VA = "0x181716020")] private bool Receive() { /* An exception occurred when decompiling this method (06009322) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.HTTPConnection::Receive() ---> System.Exception: Basic block has to end with unconditional control flow. { IL_22E: stloc:Exception(var_36_238, newobj:Exception(Exception::.ctor, ldstr:string("Malformed URI in GetProtocolFromUri"))) } at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88 --- End of inner exception stack trace --- at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1660 */; } // Token: 0x06009323 RID: 37667 RVA: 0x001E3194 File Offset: 0x001E1394 [Token(Token = "0x6009323")] [Address(RVA = "0x1715B10", Offset = "0x1714910", VA = "0x181715B10")] private bool LoadFromCache(Uri uri) { int num; List list; do { num = 0; if (HTTPManager.Logger == 0) { ILogger logger = HTTPManager.Logger; HTTPRequest k__BackingField = this.k__BackingField; if ((k__BackingField.k__BackingField ? 1 : 0) != num) { } int hashCode = k__BackingField.k__BackingField.GetHashCode(); int hashCode2 = uri.GetHashCode(); string text = string.Format("{0} - LoadFromCache for Uri: {1}", hashCode, hashCode2); } HTTPCacheFileInfo entity = HTTPCacheService.GetEntity(uri); if (entity == 0) { goto IL_11F; } HTTPRequest k__BackingField2 = this.k__BackingField; HTTPResponse httpresponse = entity.ReadResponseTo(k__BackingField2); HTTPRequest k__BackingField3 = this.k__BackingField; if (httpresponse != 0) { return true; } k__BackingField3.k__BackingField.k__BackingField = entity; Stream stream; if (stream != 0) { if (this.k__BackingField.k__BackingField.GetHeaderValues("content-length") == 0) { Dictionary> k__BackingField = this.k__BackingField.k__BackingField.k__BackingField; list = new List(1); string text2; list.Add(text2); k__BackingField.Add("content-length", list); } this.k__BackingField.k__BackingField.k__BackingField = true; HTTPRequest k__BackingField4 = this.k__BackingField; if (!k__BackingField4.cacheOnly) { HTTPResponse k__BackingField = k__BackingField4.k__BackingField; } } if (stream != 0) { } } while (num != 0); if (num != -1) { } return true; IL_11F: int num2 = 0; ILogger logger2 = HTTPManager.Logger; int hashCode3 = num2.GetHashCode(); int hashCode4 = list.GetHashCode(); string text3 = string.Format("{0} - LoadFromCache for Uri: {1} - Cached entity not found!", hashCode3, hashCode4); throw new NullReferenceException(); } // Token: 0x06009324 RID: 37668 RVA: 0x001E3300 File Offset: 0x001E1500 [Token(Token = "0x6009324")] [Address(RVA = "0x1717A60", Offset = "0x1716860", VA = "0x181717A60")] private bool TryLoadAllFromCache() { if (!this.k__BackingField.disableCache && HTTPCacheService.IsSupported) { HTTPRequest k__BackingField = this.k__BackingField; if (HTTPCacheService.IsCachedEntityExpiresInTheFuture(k__BackingField)) { if (HTTPManager.Logger == 0) { ILogger logger = HTTPManager.Logger; HTTPRequest k__BackingField2 = this.k__BackingField; if (k__BackingField2.k__BackingField) { } int hashCode = k__BackingField2.k__BackingField.GetHashCode(); string text = string.Format("{0} - TryLoadAllFromCache - whole response loading from cache", hashCode); } HTTPRequest k__BackingField3 = this.k__BackingField; HTTPResponse fullResponse = HTTPCacheService.GetFullResponse(k__BackingField3); k__BackingField3.k__BackingField = fullResponse; if (this.k__BackingField.k__BackingField != (ulong)0L) { return true; } } if (k__BackingField.k__BackingField) { } bool flag = HTTPCacheService.DeleteEntity(k__BackingField.k__BackingField, true); } throw new NullReferenceException(); } // Token: 0x06009325 RID: 37669 RVA: 0x001E33F4 File Offset: 0x001E15F4 [Token(Token = "0x6009325")] [Address(RVA = "0x1717CF0", Offset = "0x1716AF0", VA = "0x181717CF0")] private void TryStoreInCache() { HTTPRequest k__BackingField = this.k__BackingField; if (!k__BackingField.useStreaming && !k__BackingField.disableCache && k__BackingField.k__BackingField != (ulong)0L && HTTPCacheService.IsSupported) { HTTPRequest k__BackingField2 = this.k__BackingField; if (k__BackingField2.k__BackingField) { } Uri k__BackingField = k__BackingField2.k__BackingField; HTTPMethods k__BackingField = k__BackingField2.k__BackingField; HTTPResponse k__BackingField = k__BackingField2.k__BackingField; if (HTTPCacheService.IsCacheble(k__BackingField, k__BackingField, k__BackingField)) { HTTPRequest k__BackingField3 = this.k__BackingField; if (k__BackingField3.k__BackingField) { } Uri k__BackingField2 = k__BackingField3.k__BackingField; HTTPMethods k__BackingField2 = k__BackingField3.k__BackingField; HTTPResponse k__BackingField2 = k__BackingField3.k__BackingField; HTTPCacheFileInfo httpcacheFileInfo = HTTPCacheService.Store(k__BackingField2, k__BackingField2, k__BackingField2); HTTPCacheService.SaveLibrary(); } } } // Token: 0x06009326 RID: 37670 RVA: 0x001E34B4 File Offset: 0x001E16B4 [Token(Token = "0x6009326")] [Address(RVA = "0x1715980", Offset = "0x1714780", VA = "0x181715980")] private Uri GetRedirectUri(string location) { int num; int num2; do { Uri uri = new Uri(location); if (uri.IsFile || string.Equals(uri.AbsolutePath, location)) { } num = 0; num2 = 0; } while (!(num == num2)); Uri k__BackingField = this.k__BackingField.k__BackingField; string scheme = k__BackingField.Scheme; string host = k__BackingField.Host; int port = k__BackingField.Port; return new UriBuilder(scheme, host, port, location).Uri; } // Token: 0x06009327 RID: 37671 RVA: 0x001E3538 File Offset: 0x001E1738 [Token(Token = "0x6009327")] [Address(RVA = "0x1714D20", Offset = "0x1713B20", VA = "0x181714D20", Slot = "6")] internal override void Abort(HTTPConnectionStates newState) { this.k__BackingField = newState; if (newState == HTTPConnectionStates.TimedOut) { DateTime utcNow = DateTime.UtcNow; this.k__BackingField = utcNow; } if (this.Stream != (ulong)0L) { this.Stream.Dispose(); } } // Token: 0x06009328 RID: 37672 RVA: 0x001E3580 File Offset: 0x001E1780 [Token(Token = "0x6009328")] [Address(RVA = "0x1714DD0", Offset = "0x1713BD0", VA = "0x181714DD0")] private void Close() { int num; do { num = 0; this.KeepAlive = num; this.k__BackingField = num; if (this.Client == num) { break; } this.Client.Close(); this.Stream = (ulong)0L; this.Client = (ulong)0L; } while (num != 0); } // Token: 0x06009329 RID: 37673 RVA: 0x001E35D0 File Offset: 0x001E17D0 [Token(Token = "0x6009329")] [Address(RVA = "0x1715950", Offset = "0x1714750", VA = "0x181715950", Slot = "8")] protected override void Dispose(bool disposing) { this.Close(); base.Dispose(disposing); } // Token: 0x04006481 RID: 25729 [FieldOffset(Offset = "0x58")] [Token(Token = "0x4006481")] private TcpClient Client; // Token: 0x04006482 RID: 25730 [FieldOffset(Offset = "0x60")] [Token(Token = "0x4006482")] private Stream Stream; // Token: 0x04006483 RID: 25731 [FieldOffset(Offset = "0x68")] [Token(Token = "0x4006483")] private KeepAliveHeader KeepAlive; } }