using System; using System.Collections.Generic; using System.IO; using BestHTTP.Extensions; using BestHTTP.PlatformSupport.FileSystem; using Cpp2IlInjected; namespace BestHTTP.Caching { // Token: 0x020020A1 RID: 8353 [Token(Token = "0x20020A1")] public class HTTPCacheFileInfo : IComparable { // Token: 0x1700216F RID: 8559 // (get) Token: 0x0600D20C RID: 53772 RVA: 0x002FFB84 File Offset: 0x002FDD84 // (set) Token: 0x0600D20D RID: 53773 RVA: 0x002FFB98 File Offset: 0x002FDD98 [Token(Token = "0x1700216F")] internal Uri Uri { [Token(Token = "0x600D20C")] [Address(RVA = "0x411530", Offset = "0x410530", VA = "0x180411530")] get; [Token(Token = "0x600D20D")] [Address(RVA = "0x415800", Offset = "0x414800", VA = "0x180415800")] set; } // Token: 0x17002170 RID: 8560 // (get) Token: 0x0600D20E RID: 53774 RVA: 0x002FFBAC File Offset: 0x002FDDAC // (set) Token: 0x0600D20F RID: 53775 RVA: 0x002FFBC0 File Offset: 0x002FDDC0 [Token(Token = "0x17002170")] internal DateTime LastAccess { [Token(Token = "0x600D20E")] [Address(RVA = "0x4157B0", Offset = "0x4147B0", VA = "0x1804157B0")] get; [Token(Token = "0x600D20F")] [Address(RVA = "0x4157F0", Offset = "0x4147F0", VA = "0x1804157F0")] set; } // Token: 0x17002171 RID: 8561 // (get) Token: 0x0600D210 RID: 53776 RVA: 0x002FFBD4 File Offset: 0x002FDDD4 // (set) Token: 0x0600D211 RID: 53777 RVA: 0x002FFBE8 File Offset: 0x002FDDE8 [Token(Token = "0x17002171")] public int BodyLength { [Token(Token = "0x600D210")] [Address(RVA = "0x470B70", Offset = "0x46FB70", VA = "0x180470B70")] get; [Token(Token = "0x600D211")] [Address(RVA = "0x62ADB0", Offset = "0x629DB0", VA = "0x18062ADB0")] set; } // Token: 0x17002172 RID: 8562 // (get) Token: 0x0600D212 RID: 53778 RVA: 0x002FFBFC File Offset: 0x002FDDFC // (set) Token: 0x0600D213 RID: 53779 RVA: 0x002FFC10 File Offset: 0x002FDE10 [Token(Token = "0x17002172")] private string ETag { [Token(Token = "0x600D212")] [Address(RVA = "0x4157D0", Offset = "0x4147D0", VA = "0x1804157D0")] get; [Token(Token = "0x600D213")] [Address(RVA = "0x415820", Offset = "0x414820", VA = "0x180415820")] set; } // Token: 0x17002173 RID: 8563 // (get) Token: 0x0600D214 RID: 53780 RVA: 0x002FFC24 File Offset: 0x002FDE24 // (set) Token: 0x0600D215 RID: 53781 RVA: 0x002FFC38 File Offset: 0x002FDE38 [Token(Token = "0x17002173")] private string LastModified { [Token(Token = "0x600D214")] [Address(RVA = "0x4157E0", Offset = "0x4147E0", VA = "0x1804157E0")] get; [Token(Token = "0x600D215")] [Address(RVA = "0x415830", Offset = "0x414830", VA = "0x180415830")] set; } // Token: 0x17002174 RID: 8564 // (get) Token: 0x0600D216 RID: 53782 RVA: 0x002FFC4C File Offset: 0x002FDE4C // (set) Token: 0x0600D217 RID: 53783 RVA: 0x002FFC60 File Offset: 0x002FDE60 [Token(Token = "0x17002174")] private DateTime Expires { [Token(Token = "0x600D216")] [Address(RVA = "0x41CEF0", Offset = "0x41BEF0", VA = "0x18041CEF0")] get; [Token(Token = "0x600D217")] [Address(RVA = "0x41CFF0", Offset = "0x41BFF0", VA = "0x18041CFF0")] set; } // Token: 0x17002175 RID: 8565 // (get) Token: 0x0600D218 RID: 53784 RVA: 0x002FFC74 File Offset: 0x002FDE74 // (set) Token: 0x0600D219 RID: 53785 RVA: 0x002FFC88 File Offset: 0x002FDE88 [Token(Token = "0x17002175")] private long Age { [Token(Token = "0x600D218")] [Address(RVA = "0x417680", Offset = "0x416680", VA = "0x180417680")] get; [Token(Token = "0x600D219")] [Address(RVA = "0x417960", Offset = "0x416960", VA = "0x180417960")] set; } // Token: 0x17002176 RID: 8566 // (get) Token: 0x0600D21A RID: 53786 RVA: 0x002FFC9C File Offset: 0x002FDE9C // (set) Token: 0x0600D21B RID: 53787 RVA: 0x002FFCB0 File Offset: 0x002FDEB0 [Token(Token = "0x17002176")] private long MaxAge { [Token(Token = "0x600D21A")] [Address(RVA = "0x4975A0", Offset = "0x4965A0", VA = "0x1804975A0")] get; [Token(Token = "0x600D21B")] [Address(RVA = "0x55BCF0", Offset = "0x55ACF0", VA = "0x18055BCF0")] set; } // Token: 0x17002177 RID: 8567 // (get) Token: 0x0600D21C RID: 53788 RVA: 0x002FFCC4 File Offset: 0x002FDEC4 // (set) Token: 0x0600D21D RID: 53789 RVA: 0x002FFCD8 File Offset: 0x002FDED8 [Token(Token = "0x17002177")] private DateTime Date { [Token(Token = "0x600D21C")] [Address(RVA = "0x4936E0", Offset = "0x4926E0", VA = "0x1804936E0")] get; [Token(Token = "0x600D21D")] [Address(RVA = "0x55BCE0", Offset = "0x55ACE0", VA = "0x18055BCE0")] set; } // Token: 0x17002178 RID: 8568 // (get) Token: 0x0600D21E RID: 53790 RVA: 0x002FFCEC File Offset: 0x002FDEEC // (set) Token: 0x0600D21F RID: 53791 RVA: 0x002FFD00 File Offset: 0x002FDF00 [Token(Token = "0x17002178")] private bool MustRevalidate { [Token(Token = "0x600D21E")] [Address(RVA = "0x51F220", Offset = "0x51E220", VA = "0x18051F220")] get; [Token(Token = "0x600D21F")] [Address(RVA = "0x51DB50", Offset = "0x51CB50", VA = "0x18051DB50")] set; } // Token: 0x17002179 RID: 8569 // (get) Token: 0x0600D220 RID: 53792 RVA: 0x002FFD14 File Offset: 0x002FDF14 // (set) Token: 0x0600D221 RID: 53793 RVA: 0x002FFD28 File Offset: 0x002FDF28 [Token(Token = "0x17002179")] private DateTime Received { [Token(Token = "0x600D220")] [Address(RVA = "0x417720", Offset = "0x416720", VA = "0x180417720")] get; [Token(Token = "0x600D221")] [Address(RVA = "0x417A20", Offset = "0x416A20", VA = "0x180417A20")] set; } // Token: 0x1700217A RID: 8570 // (get) Token: 0x0600D222 RID: 53794 RVA: 0x002FFD3C File Offset: 0x002FDF3C // (set) Token: 0x0600D223 RID: 53795 RVA: 0x002FFD50 File Offset: 0x002FDF50 [Token(Token = "0x1700217A")] private string ConstructedPath { [Token(Token = "0x600D222")] [Address(RVA = "0x4177D0", Offset = "0x4167D0", VA = "0x1804177D0")] get; [Token(Token = "0x600D223")] [Address(RVA = "0x417AC0", Offset = "0x416AC0", VA = "0x180417AC0")] set; } // Token: 0x1700217B RID: 8571 // (get) Token: 0x0600D224 RID: 53796 RVA: 0x002FFD64 File Offset: 0x002FDF64 // (set) Token: 0x0600D225 RID: 53797 RVA: 0x002FFD78 File Offset: 0x002FDF78 [Token(Token = "0x1700217B")] internal ulong MappedNameIDX { [Token(Token = "0x600D224")] [Address(RVA = "0x493640", Offset = "0x492640", VA = "0x180493640")] get; [Token(Token = "0x600D225")] [Address(RVA = "0x476170", Offset = "0x475170", VA = "0x180476170")] set; } // Token: 0x0600D226 RID: 53798 RVA: 0x002FFD8C File Offset: 0x002FDF8C [Token(Token = "0x600D226")] [Address(RVA = "0x16A1F70", Offset = "0x16A0F70", VA = "0x1816A1F70")] internal HTTPCacheFileInfo(Uri uri) { DateTime utcNow = DateTime.UtcNow; base..ctor(); this.Uri = uri; this.LastAccess = utcNow; this.BodyLength = (int)((ulong)4294967295L); this.MaxAge = (long)((ulong)(-1L)); ulong nameIdx = HTTPCacheService.GetNameIdx(); this.MappedNameIDX = nameIdx; } // Token: 0x0600D227 RID: 53799 RVA: 0x002FFDE0 File Offset: 0x002FDFE0 [Token(Token = "0x600D227")] [Address(RVA = "0x16A2040", Offset = "0x16A1040", VA = "0x1816A2040")] internal HTTPCacheFileInfo(Uri uri, DateTime lastAcces, int bodyLength) { this.Uri = uri; this.LastAccess = lastAcces; this.BodyLength = bodyLength; this.MaxAge = (long)((ulong)(-1L)); ulong nameIdx = HTTPCacheService.GetNameIdx(); this.MappedNameIDX = nameIdx; } // Token: 0x0600D228 RID: 53800 RVA: 0x002FFE20 File Offset: 0x002FE020 [Token(Token = "0x600D228")] [Address(RVA = "0x16A1D90", Offset = "0x16A0D90", VA = "0x1816A1D90")] internal HTTPCacheFileInfo(Uri uri, BinaryReader reader, int version) { this.Uri = uri; DateTime dateTime = DateTime.FromBinary((long)reader.ReadUInt32()); this.LastAccess = dateTime; ushort num = reader.ReadUInt16(); this.BodyLength = (int)num; if (version != 1) { if (version != 2) { return; } long num2 = reader.ReadInt64(); this.MappedNameIDX = (ulong)num2; } decimal num3 = reader.ReadDecimal(); this.ETag = num3; decimal num4 = reader.ReadDecimal(); this.LastModified = num4; DateTime dateTime2 = DateTime.FromBinary((long)reader.ReadUInt32()); this.Expires = dateTime2; uint num5 = reader.ReadUInt32(); this.Age = (long)num5; uint num6 = reader.ReadUInt32(); this.MaxAge = (long)num6; DateTime dateTime3 = DateTime.FromBinary((long)reader.ReadUInt32()); this.Date = dateTime3; int num7 = reader.Read(); this.MustRevalidate = num7 != 0; DateTime dateTime4 = DateTime.FromBinary((long)reader.ReadUInt32()); this.Received = dateTime4; } // Token: 0x0600D229 RID: 53801 RVA: 0x002FFF08 File Offset: 0x002FE108 [Token(Token = "0x600D229")] [Address(RVA = "0x16A1150", Offset = "0x16A0150", VA = "0x1816A1150")] internal void SaveTo(BinaryWriter writer) { DateTime dateTime = this.k__BackingField; long num; writer.Write((uint)num); int num2 = this.k__BackingField; writer.Write((ushort)num2); ulong num3 = this.k__BackingField; writer.Write((long)num3); string text = this.k__BackingField; writer.Write(text); string text2 = this.k__BackingField; writer.Write(text2); DateTime dateTime2 = this.k__BackingField; long num4; writer.Write((uint)num4); long num5 = this.k__BackingField; writer.Write((uint)num5); long num6 = this.k__BackingField; writer.Write((uint)num6); DateTime dateTime3 = this.k__BackingField; long num7; writer.Write((uint)num7); writer.Flush(); DateTime dateTime4 = this.k__BackingField; long num8; writer.Write((uint)num8); } // Token: 0x0600D22A RID: 53802 RVA: 0x002FFFBC File Offset: 0x002FE1BC [Token(Token = "0x600D22A")] [Address(RVA = "0x16A05D0", Offset = "0x169F5D0", VA = "0x1816A05D0")] public string GetPath() { string text = this.k__BackingField; if (text == 0) { string k__BackingField = HTTPCacheService.k__BackingField; ulong num = this.k__BackingField; string text3; string text2 = Path.Combine(k__BackingField, text3); this.k__BackingField = text2; } return text; } // Token: 0x0600D22B RID: 53803 RVA: 0x002FFFF4 File Offset: 0x002FE1F4 [Token(Token = "0x600D22B")] [Address(RVA = "0x16A0DE0", Offset = "0x169FDE0", VA = "0x1816A0DE0")] public bool IsExists() { if (HTTPCacheService.IsSupported) { IIOService ioservice = HTTPManager.IOService; string path = this.GetPath(); } throw new NullReferenceException(); } // Token: 0x0600D22C RID: 53804 RVA: 0x00300020 File Offset: 0x002FE220 [Token(Token = "0x600D22C")] [Address(RVA = "0x16A02C0", Offset = "0x169F2C0", VA = "0x1816A02C0")] internal void Delete() { int num; do { num = 0; if (!HTTPCacheService.IsSupported) { break; } string path = this.GetPath(); IIOService ioservice = HTTPManager.IOService; this.k__BackingField = (int)((ulong)4294967295L); string empty = string.Empty; this.k__BackingField = empty; DateTime dateTime = DateTime.FromBinary(0L); this.k__BackingField = dateTime; string empty2 = string.Empty; this.k__BackingField = empty2; this.k__BackingField = (long)((ulong)0L); this.k__BackingField = (long)((ulong)(-1L)); DateTime dateTime2 = DateTime.FromBinary(0L); this.k__BackingField = dateTime2; this.k__BackingField = false; DateTime dateTime3 = DateTime.FromBinary(0L); this.k__BackingField = dateTime3; } while (num != 0); } // Token: 0x0600D22D RID: 53805 RVA: 0x003000D0 File Offset: 0x002FE2D0 [Token(Token = "0x600D22D")] [Address(RVA = "0x16A1090", Offset = "0x16A0090", VA = "0x1816A1090")] private void Reset() { this.k__BackingField = (int)((ulong)4294967295L); string empty = string.Empty; this.k__BackingField = empty; DateTime dateTime = DateTime.FromBinary(0L); this.k__BackingField = dateTime; string empty2 = string.Empty; int num = 0; this.k__BackingField = empty2; this.k__BackingField = (long)((ulong)0L); this.k__BackingField = (long)((ulong)(-1L)); DateTime dateTime2 = DateTime.FromBinary((long)num); this.k__BackingField = dateTime2; int num2 = 0; this.k__BackingField = false; DateTime dateTime3 = DateTime.FromBinary((long)num2); this.k__BackingField = dateTime3; } // Token: 0x0600D22E RID: 53806 RVA: 0x00300154 File Offset: 0x002FE354 [Token(Token = "0x600D22E")] [Address(RVA = "0x16A12D0", Offset = "0x16A02D0", VA = "0x1816A12D0")] private void SetUpCachingValues(HTTPResponse response) { response.k__BackingField = this; string text = response.GetFirstHeaderValue("ETag").ToStrOrEmpty(); this.k__BackingField = text; string firstHeaderValue = response.GetFirstHeaderValue("Expires"); DateTime dateTime = DateTime.FromBinary(0L); DateTime dateTime2 = firstHeaderValue.ToDateTime(dateTime); this.k__BackingField = dateTime2; string text2 = response.GetFirstHeaderValue("Last-Modified").ToStrOrEmpty(); this.k__BackingField = text2; string firstHeaderValue2 = response.GetFirstHeaderValue("Age"); int num = 0; long num2 = firstHeaderValue2.ToInt64((long)num); this.k__BackingField = num2; string firstHeaderValue3 = response.GetFirstHeaderValue("Date"); DateTime dateTime3 = DateTime.FromBinary(0L); DateTime dateTime4 = firstHeaderValue3.ToDateTime(dateTime3); this.k__BackingField = dateTime4; string firstHeaderValue4 = response.GetFirstHeaderValue("cache-control"); if (!string.IsNullOrEmpty(firstHeaderValue4)) { string[] array = firstHeaderValue4.FindOption("max-age"); if (array != 0) { string text3 = array[1]; bool flag; if (flag) { this.k__BackingField = (flag ? 1L : 0L); } } bool flag2 = firstHeaderValue4.ToLower().Contains("must-revalidate"); this.k__BackingField = flag2; } DateTime utcNow = DateTime.UtcNow; this.k__BackingField = utcNow; } // Token: 0x0600D22F RID: 53807 RVA: 0x0030027C File Offset: 0x002FE47C [Token(Token = "0x600D22F")] [Address(RVA = "0x16A1C10", Offset = "0x16A0C10", VA = "0x1816A1C10")] internal bool WillExpireInTheFuture() { if (this.IsExists() && !this.k__BackingField) { DateTime dateTime = this.k__BackingField; DateTime utcNow = DateTime.UtcNow; return dateTime > utcNow; } } // Token: 0x0600D230 RID: 53808 RVA: 0x00300324 File Offset: 0x002FE524 [Token(Token = "0x600D230")] [Address(RVA = "0x16A1540", Offset = "0x16A0540", VA = "0x1816A1540")] internal void SetUpRevalidationHeaders(HTTPRequest request) { bool flag = this.IsExists(); if (flag) { string text = this.k__BackingField; if (!flag) { string text2 = this.k__BackingField; request.SetHeader("If-None-Match", text2); } string text3 = this.k__BackingField; if (!flag) { string text4 = this.k__BackingField; request.SetHeader("If-Modified-Since", text4); } } } // Token: 0x0600D231 RID: 53809 RVA: 0x00300380 File Offset: 0x002FE580 [Token(Token = "0x600D231")] [Address(RVA = "0x16A04A0", Offset = "0x169F4A0", VA = "0x1816A04A0")] public Stream GetBodyStream(out int length) { if (this.IsExists()) { int num = this.k__BackingField; length.m_value = num; DateTime utcNow = DateTime.UtcNow; this.k__BackingField = utcNow; IIOService ioservice = HTTPManager.IOService; string path = this.GetPath(); } throw new NullReferenceException(); } // Token: 0x0600D232 RID: 53810 RVA: 0x003003CC File Offset: 0x002FE5CC [Token(Token = "0x600D232")] [Address(RVA = "0x16A0EB0", Offset = "0x169FEB0", VA = "0x1816A0EB0")] internal HTTPResponse ReadResponseTo(HTTPRequest request) { int num; do { num = 0; if (!this.IsExists()) { break; } DateTime utcNow = DateTime.UtcNow; this.k__BackingField = utcNow; IIOService ioservice = HTTPManager.IOService; string path = this.GetPath(); HTTPResponse httpresponse; httpresponse.k__BackingField = this; httpresponse.Dispose(); if (path != 0) { } } while (num != 0); throw new NullReferenceException(); } // Token: 0x0600D233 RID: 53811 RVA: 0x00300428 File Offset: 0x002FE628 [Token(Token = "0x600D233")] [Address(RVA = "0x16A15E0", Offset = "0x16A05E0", VA = "0x1816A15E0")] internal void Store(HTTPResponse response) { for (;;) { int num = 0; if (!HTTPCacheService.IsSupported) { return; } int num2 = this.GetPath().m_stringLength; IIOService ioservice = HTTPManager.IOService; this.Delete(); IIOService ioservice2 = HTTPManager.IOService; string path = this.GetPath(); object[] array = new object[2]; int k__BackingField = response.k__BackingField; num2 = k__BackingField; if (k__BackingField != 0) { } array[0] = num2; string k__BackingField = response.k__BackingField; if (k__BackingField != 0) { } array[1] = k__BackingField; Dictionary> k__BackingField = response.k__BackingField; bool flag; int num3; if (flag) { if (num < this.k__BackingField) { break; } num3 = 0; } if (num3 != 0) { goto IL_116; } if (num3 != -1) { } byte[] k__BackingField = response.k__BackingField; if (path != 0) { } if (num3 == 0) { goto Block_4; } } object[] array2 = new object[2]; throw new ArrayTypeMismatchException(); Block_4: int length = response.k__BackingField.Length; DateTime utcNow = DateTime.UtcNow; return; IL_116: throw new NullReferenceException(); } // Token: 0x0600D234 RID: 53812 RVA: 0x00300570 File Offset: 0x002FE770 [Token(Token = "0x600D234")] [Address(RVA = "0x16A06F0", Offset = "0x169F6F0", VA = "0x1816A06F0")] internal Stream GetSaveStream(HTTPResponse response) { for (;;) { int num = 0; if (!HTTPCacheService.IsSupported) { goto IL_F0; } DateTime utcNow = DateTime.UtcNow; this.k__BackingField = utcNow; string path = this.GetPath(); IIOService ioservice = HTTPManager.IOService; if (path != 0) { this.Delete(); } int stringLength = path.m_stringLength; IIOService ioservice2 = HTTPManager.IOService; string path2 = this.GetPath(); object[] array = new object[2]; int k__BackingField = response.k__BackingField; if (k__BackingField != 0) { } array[0] = k__BackingField; string k__BackingField = response.k__BackingField; if (k__BackingField != 0) { } array[1] = k__BackingField; Dictionary> k__BackingField = response.k__BackingField; bool flag; if (flag) { break; } if (num != 0) { goto IL_123; } if (num != -1) { } if (path2 != 0) { } if (num == 0) { goto Block_4; } } object[] array2 = new object[2]; throw new ArrayTypeMismatchException(); Block_4: throw new NullReferenceException(); IL_F0: throw new ArrayTypeMismatchException(); IL_123: throw new NullReferenceException(); } // Token: 0x0600D235 RID: 53813 RVA: 0x003006B4 File Offset: 0x002FE8B4 [Token(Token = "0x600D235")] [Address(RVA = "0x16A0290", Offset = "0x169F290", VA = "0x1816A0290", Slot = "4")] public int CompareTo(HTTPCacheFileInfo other) { DateTime dateTime = this.k__BackingField; DateTime dateTime2 = other.k__BackingField; int num; return num; } } }