using System; using System.Collections.Generic; using System.IO; using System.Threading; using BestHTTP.Logger; using BestHTTP.PlatformSupport.FileSystem; using Cpp2IlInjected; namespace BestHTTP.Cookies { // Token: 0x020020A0 RID: 8352 [Token(Token = "0x20020A0")] public static class CookieJar { // Token: 0x1700216C RID: 8556 // (get) Token: 0x0600D1F8 RID: 53752 RVA: 0x002FF43C File Offset: 0x002FD63C [Token(Token = "0x1700216C")] public static bool IsSavingSupported { [Token(Token = "0x600D1F8")] [Address(RVA = "0x2408650", Offset = "0x2407650", VA = "0x182408650")] get { int num; do { num = 0; IIOService ioservice = HTTPManager.IOService; string rootCacheFolder = HTTPManager.GetRootCacheFolder(); ILogger logger = HTTPManager.Logger; } while (num != 0); return CookieJar._isSavingSupported; } } // Token: 0x1700216D RID: 8557 // (get) Token: 0x0600D1F9 RID: 53753 RVA: 0x002FF480 File Offset: 0x002FD680 // (set) Token: 0x0600D1FA RID: 53754 RVA: 0x002FF494 File Offset: 0x002FD694 [Token(Token = "0x1700216D")] private static string CookieFolder { [Token(Token = "0x600D1F9")] [Address(RVA = "0x2408590", Offset = "0x2407590", VA = "0x182408590")] get; [Token(Token = "0x600D1FA")] [Address(RVA = "0x24089A0", Offset = "0x24079A0", VA = "0x1824089A0")] set; } // Token: 0x1700216E RID: 8558 // (get) Token: 0x0600D1FB RID: 53755 RVA: 0x002FF4A8 File Offset: 0x002FD6A8 // (set) Token: 0x0600D1FC RID: 53756 RVA: 0x002FF4BC File Offset: 0x002FD6BC [Token(Token = "0x1700216E")] private static string LibraryPath { [Token(Token = "0x600D1FB")] [Address(RVA = "0x24088E0", Offset = "0x24078E0", VA = "0x1824088E0")] get; [Token(Token = "0x600D1FC")] [Address(RVA = "0x2408A00", Offset = "0x2407A00", VA = "0x182408A00")] set; } // Token: 0x0600D1FD RID: 53757 RVA: 0x002FF4D0 File Offset: 0x002FD6D0 [Token(Token = "0x600D1FD")] [Address(RVA = "0x2408220", Offset = "0x2407220", VA = "0x182408220")] internal static void SetupFolder() { if (CookieJar.IsSavingSupported) { bool flag = string.IsNullOrEmpty(CookieJar.k__BackingField); if (flag || flag) { CookieJar.k__BackingField = Path.Combine(HTTPManager.GetRootCacheFolder(), "Cookies"); CookieJar.k__BackingField = Path.Combine(CookieJar.k__BackingField, "Library"); } } } // Token: 0x0600D1FE RID: 53758 RVA: 0x002FF524 File Offset: 0x002FD724 [Token(Token = "0x600D1FE")] [Address(RVA = "0x2407DB0", Offset = "0x2406DB0", VA = "0x182407DB0")] internal static void Set(HTTPResponse response) { while (response != 0) { object locker = CookieJar.Locker; CookieJar.Maintain(); List list = new List(); List headerValues = response.GetHeaderValues("set-cookie"); if (headerValues != 0) { bool flag; if (flag) { Uri currentUri = response.baseRequest.CurrentUri; Cookie cookie; if (cookie == 0) { goto IL_90; } if (!string.IsNullOrEmpty(cookie.k__BackingField)) { int num = 0; if (cookie.WillExpireInTheFuture()) { Cookie cookie2; if (cookie2 != 0) { DateTime k__BackingField = cookie2.k__BackingField; cookie.k__BackingField = k__BackingField; CookieJar.Cookies[num] = cookie; list.Add(cookie); goto IL_90; } goto IL_90; } } IL_9C: while (cookie == (ulong)(-1L)) { } List cookies = CookieJar.Cookies; goto IL_AA; IL_90: CookieJar.Cookies.Add(cookie); goto IL_9C; } IL_AA: int num2 = 0; if (response != 0) { throw new NullReferenceException(); } if (num2 != -1) { } response.k__BackingField = list; num2++; } Monitor.Exit(headerValues); if (headerValues == 0) { break; } } } // Token: 0x0600D1FF RID: 53759 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x600D1FF")] [Address(RVA = "0x2406D90", Offset = "0x2405D90", VA = "0x182406D90")] internal static void Maintain() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0600D200 RID: 53760 RVA: 0x002FF634 File Offset: 0x002FD834 [Token(Token = "0x600D200")] [Address(RVA = "0x2407260", Offset = "0x2406260", VA = "0x182407260")] internal static void Persist() { int num; do { num = 0; if (!CookieJar.IsSavingSupported) { break; } object locker = CookieJar.Locker; CookieJar.Maintain(); IIOService ioservice = HTTPManager.IOService; IIOService ioservice2 = HTTPManager.IOService; IIOService ioservice3 = HTTPManager.IOService; BinaryWriter binaryWriter; binaryWriter.Write(1); int num2 = 0; List cookies = CookieJar.Cookies; bool flag; if (flag) { num2++; } int num3 = 0; if (num != 0) { goto IL_D0; } if (num3 != -1) { } binaryWriter.Write((ushort)num2); List cookies2 = CookieJar.Cookies; bool flag2; if (flag2) { } num3++; if (num != 0) { goto IL_D6; } if (num3 != -1) { } num3++; if (binaryWriter != 0) { } if (num != 0) { goto IL_EE; } if (num3 != -1) { } num3++; if (num2 != 0) { } if (num != 0) { goto IL_EE; } if (num3 != -1) { } num3++; num3++; Monitor.Exit(num3); } while (num != 0); return; IL_D0: throw new NullReferenceException(); IL_D6: throw new NullReferenceException(); IL_EE: throw new NullReferenceException(); } // Token: 0x0600D201 RID: 53761 RVA: 0x002FF73C File Offset: 0x002FD93C [Token(Token = "0x600D201")] [Address(RVA = "0x24066E0", Offset = "0x24056E0", VA = "0x1824066E0")] internal static void Load() { for (;;) { int num = 0; if (!CookieJar.IsSavingSupported) { break; } object locker = CookieJar.Locker; CookieJar.SetupFolder(); CookieJar.Cookies.Clear(); IIOService ioservice = HTTPManager.IOService; IIOService ioservice2 = HTTPManager.IOService; IIOService ioservice3 = HTTPManager.IOService; IIOService ioservice4 = HTTPManager.IOService; BinaryReader binaryReader; ushort num2 = binaryReader.ReadUInt16(); ushort num3 = binaryReader.ReadUInt16(); int num4 = 0; if (num4 < (int)num3) { Cookie cookie = new Cookie(); cookie.LoadFrom(binaryReader); if (cookie.WillExpireInTheFuture()) { CookieJar.Cookies.Add(cookie); } num4++; } int num5 = 0; if (binaryReader != 0) { } if (num != 0) { goto IL_EE; } if (num5 != -1) { } num5++; if (num != 0) { goto IL_EE; } if (num5 != -1) { } num5++; int num6 = 0; CookieJar.Cookies.Clear(); num6++; if (num == 0) { if (num6 != -1) { } if (num == 0) { break; } } } return; IL_EE: throw new NullReferenceException(); } // Token: 0x0600D202 RID: 53762 RVA: 0x002FF854 File Offset: 0x002FDA54 [Token(Token = "0x600D202")] [Address(RVA = "0x2406460", Offset = "0x2405460", VA = "0x182406460")] public static List Get(Uri uri) { int num; do { num = 0; object locker = CookieJar.Locker; CookieJar.Load(); List cookies = CookieJar.Cookies; List cookies2 = CookieJar.Cookies; bool flag; if (flag) { int num2 = 0; if (uri.Host.IndexOf(num2) != -1) { int num3 = 0; if (uri.AbsolutePath.StartsWith(num3) && num == 0) { List list = new List(); } } } num++; Monitor.Exit(locker); } while (num != 0); throw new NullReferenceException(); } // Token: 0x0600D203 RID: 53763 RVA: 0x002FF8EC File Offset: 0x002FDAEC [Token(Token = "0x600D203")] [Address(RVA = "0x2407B90", Offset = "0x2406B90", VA = "0x182407B90")] public static void Set(Uri uri, Cookie cookie) { CookieJar.Set(cookie); } // Token: 0x0600D204 RID: 53764 RVA: 0x002FF900 File Offset: 0x002FDB00 [Token(Token = "0x600D204")] [Address(RVA = "0x2407BF0", Offset = "0x2406BF0", VA = "0x182407BF0")] public static void Set(Cookie cookie) { int num; do { num = 0; object locker = CookieJar.Locker; CookieJar.Load(); CookieJar.Cookies.Add(cookie); List cookies = CookieJar.Cookies; Monitor.Exit(locker); } while (num != 0); } // Token: 0x0600D205 RID: 53765 RVA: 0x002FF944 File Offset: 0x002FDB44 [Token(Token = "0x600D205")] [Address(RVA = "0x2406350", Offset = "0x2405350", VA = "0x182406350")] public static List GetAll() { int num; List cookies; do { num = 0; object locker = CookieJar.Locker; CookieJar.Load(); cookies = CookieJar.Cookies; Monitor.Exit(locker); } while (num != 0); return cookies; } // Token: 0x0600D206 RID: 53766 RVA: 0x002FF974 File Offset: 0x002FDB74 [Token(Token = "0x600D206")] [Address(RVA = "0x2405C70", Offset = "0x2404C70", VA = "0x182405C70")] public static void Clear() { int num; do { num = 0; object locker = CookieJar.Locker; CookieJar.Load(); CookieJar.Cookies.Clear(); Monitor.Exit(locker); } while (num != 0); } // Token: 0x0600D207 RID: 53767 RVA: 0x002FF9AC File Offset: 0x002FDBAC [Token(Token = "0x600D207")] [Address(RVA = "0x2405D90", Offset = "0x2404D90", VA = "0x182405D90")] public static void Clear(TimeSpan olderThan) { int num; do { num = 0; object locker = CookieJar.Locker; CookieJar.Load(); List cookies = CookieJar.Cookies; List cookies2 = CookieJar.Cookies; bool flag; if (flag) { object locker2 = CookieJar.Locker; DateTime utcNow = DateTime.UtcNow; DateTime dateTime; if (!(dateTime < utcNow)) { num++; } } CookieJar.Cookies.RemoveAt(num); Monitor.Exit(locker); } while (num != 0); } // Token: 0x0600D208 RID: 53768 RVA: 0x002FFA28 File Offset: 0x002FDC28 [Token(Token = "0x600D208")] [Address(RVA = "0x2406000", Offset = "0x2405000", VA = "0x182406000")] public static void Clear(string domain) { int num; do { num = 0; object locker = CookieJar.Locker; CookieJar.Load(); List cookies = CookieJar.Cookies; List cookies2 = CookieJar.Cookies; bool flag; int num2; if (flag && num2 == -1) { num++; } CookieJar.Cookies.RemoveAt(num); Monitor.Exit(locker); } while (num != 0); } // Token: 0x0600D209 RID: 53769 RVA: 0x002FFA94 File Offset: 0x002FDC94 [Token(Token = "0x600D209")] [Address(RVA = "0x2407910", Offset = "0x2406910", VA = "0x182407910")] public static void Remove(Uri uri, string name) { int num; do { num = 0; object locker = CookieJar.Locker; CookieJar.Load(); List cookies = CookieJar.Cookies; List cookies2 = CookieJar.Cookies; if (CookieJar.k__BackingField.Equals(name, StringComparison.OrdinalIgnoreCase)) { int num2 = 0; if (uri.Host.IndexOf(num2) != -1) { CookieJar.Cookies.RemoveAt(num); } } num++; Monitor.Exit(locker); } while (num != 0); } // Token: 0x0600D20A RID: 53770 RVA: 0x002FFB24 File Offset: 0x002FDD24 [Token(Token = "0x600D20A")] [Address(RVA = "0x2406240", Offset = "0x2405240", VA = "0x182406240")] private static Cookie Find(Cookie cookie, out int idx) { int num = 0; List cookies = CookieJar.Cookies; List cookies2 = CookieJar.Cookies; bool flag; if (!flag) { num++; } idx.m_value = num; return typeof(CookieJar).TypeHandle; } // Token: 0x0600D20B RID: 53771 RVA: 0x002FFB5C File Offset: 0x002FDD5C // Note: this type is marked as 'beforefieldinit'. [Token(Token = "0x600D20B")] [Address(RVA = "0x24084D0", Offset = "0x24074D0", VA = "0x1824084D0")] static CookieJar() { TimeSpan timeSpan; CookieJar.AccessThreshold = timeSpan; CookieJar.Cookies = new List(); CookieJar.Locker = new object(); } // Token: 0x040085A1 RID: 34209 [Token(Token = "0x40085A1")] private const int Version = 1; // Token: 0x040085A2 RID: 34210 [Token(Token = "0x40085A2")] public static TimeSpan AccessThreshold; // Token: 0x040085A3 RID: 34211 [Token(Token = "0x40085A3")] private static List Cookies; // Token: 0x040085A6 RID: 34214 [Token(Token = "0x40085A6")] private static object Locker; // Token: 0x040085A7 RID: 34215 [Token(Token = "0x40085A7")] private static bool _isSavingSupported; // Token: 0x040085A8 RID: 34216 [Token(Token = "0x40085A8")] private static bool IsSupportCheckDone; // Token: 0x040085A9 RID: 34217 [Token(Token = "0x40085A9")] private static bool Loaded; } }