using System; using System.Collections.Generic; using System.IO; using BestHTTP.Extensions; using BestHTTP.Logger; using Cpp2IlInjected; namespace BestHTTP.Cookies { // Token: 0x0200209E RID: 8350 [Token(Token = "0x200209E")] public sealed class Cookie : IComparable, IEquatable { // Token: 0x17002161 RID: 8545 // (get) Token: 0x0600D1CD RID: 53709 RVA: 0x002FEA30 File Offset: 0x002FCC30 // (set) Token: 0x0600D1CE RID: 53710 RVA: 0x002FEA44 File Offset: 0x002FCC44 [Token(Token = "0x17002161")] public string Name { [Token(Token = "0x600D1CD")] [Address(RVA = "0x411530", Offset = "0x410530", VA = "0x180411530")] get; [Token(Token = "0x600D1CE")] [Address(RVA = "0x415800", Offset = "0x414800", VA = "0x180415800")] private set; } // Token: 0x17002162 RID: 8546 // (get) Token: 0x0600D1CF RID: 53711 RVA: 0x002FEA58 File Offset: 0x002FCC58 // (set) Token: 0x0600D1D0 RID: 53712 RVA: 0x002FEA6C File Offset: 0x002FCC6C [Token(Token = "0x17002162")] public string Value { [Token(Token = "0x600D1CF")] [Address(RVA = "0x4157B0", Offset = "0x4147B0", VA = "0x1804157B0")] get; [Token(Token = "0x600D1D0")] [Address(RVA = "0x4157F0", Offset = "0x4147F0", VA = "0x1804157F0")] private set; } // Token: 0x17002163 RID: 8547 // (get) Token: 0x0600D1D1 RID: 53713 RVA: 0x002FEA80 File Offset: 0x002FCC80 // (set) Token: 0x0600D1D2 RID: 53714 RVA: 0x002FEA94 File Offset: 0x002FCC94 [Token(Token = "0x17002163")] public DateTime Date { [Token(Token = "0x600D1D1")] [Address(RVA = "0x4157C0", Offset = "0x4147C0", VA = "0x1804157C0")] get; [Token(Token = "0x600D1D2")] [Address(RVA = "0x415810", Offset = "0x414810", VA = "0x180415810")] internal set; } // Token: 0x17002164 RID: 8548 // (get) Token: 0x0600D1D3 RID: 53715 RVA: 0x002FEAA8 File Offset: 0x002FCCA8 // (set) Token: 0x0600D1D4 RID: 53716 RVA: 0x002FEABC File Offset: 0x002FCCBC [Token(Token = "0x17002164")] public DateTime LastAccess { [Token(Token = "0x600D1D3")] [Address(RVA = "0x4157D0", Offset = "0x4147D0", VA = "0x1804157D0")] get; [Token(Token = "0x600D1D4")] [Address(RVA = "0x415820", Offset = "0x414820", VA = "0x180415820")] set; } // Token: 0x17002165 RID: 8549 // (get) Token: 0x0600D1D5 RID: 53717 RVA: 0x002FEAD0 File Offset: 0x002FCCD0 // (set) Token: 0x0600D1D6 RID: 53718 RVA: 0x002FEAE4 File Offset: 0x002FCCE4 [Token(Token = "0x17002165")] public DateTime Expires { [Token(Token = "0x600D1D5")] [Address(RVA = "0x4157E0", Offset = "0x4147E0", VA = "0x1804157E0")] get; [Token(Token = "0x600D1D6")] [Address(RVA = "0x415830", Offset = "0x414830", VA = "0x180415830")] private set; } // Token: 0x17002166 RID: 8550 // (get) Token: 0x0600D1D7 RID: 53719 RVA: 0x002FEAF8 File Offset: 0x002FCCF8 // (set) Token: 0x0600D1D8 RID: 53720 RVA: 0x002FEB0C File Offset: 0x002FCD0C [Token(Token = "0x17002166")] public long MaxAge { [Token(Token = "0x600D1D7")] [Address(RVA = "0x41CEF0", Offset = "0x41BEF0", VA = "0x18041CEF0")] get; [Token(Token = "0x600D1D8")] [Address(RVA = "0x41CFF0", Offset = "0x41BFF0", VA = "0x18041CFF0")] private set; } // Token: 0x17002167 RID: 8551 // (get) Token: 0x0600D1D9 RID: 53721 RVA: 0x002FEB20 File Offset: 0x002FCD20 // (set) Token: 0x0600D1DA RID: 53722 RVA: 0x002FEB34 File Offset: 0x002FCD34 [Token(Token = "0x17002167")] public bool IsSession { [Token(Token = "0x600D1D9")] [Address(RVA = "0x41CF00", Offset = "0x41BF00", VA = "0x18041CF00")] get; [Token(Token = "0x600D1DA")] [Address(RVA = "0x41D000", Offset = "0x41C000", VA = "0x18041D000")] private set; } // Token: 0x17002168 RID: 8552 // (get) Token: 0x0600D1DB RID: 53723 RVA: 0x002FEB48 File Offset: 0x002FCD48 // (set) Token: 0x0600D1DC RID: 53724 RVA: 0x002FEB5C File Offset: 0x002FCD5C [Token(Token = "0x17002168")] public string Domain { [Token(Token = "0x600D1DB")] [Address(RVA = "0x4975A0", Offset = "0x4965A0", VA = "0x1804975A0")] get; [Token(Token = "0x600D1DC")] [Address(RVA = "0x55BCF0", Offset = "0x55ACF0", VA = "0x18055BCF0")] private set; } // Token: 0x17002169 RID: 8553 // (get) Token: 0x0600D1DD RID: 53725 RVA: 0x002FEB70 File Offset: 0x002FCD70 // (set) Token: 0x0600D1DE RID: 53726 RVA: 0x002FEB84 File Offset: 0x002FCD84 [Token(Token = "0x17002169")] public string Path { [Token(Token = "0x600D1DD")] [Address(RVA = "0x4936E0", Offset = "0x4926E0", VA = "0x1804936E0")] get; [Token(Token = "0x600D1DE")] [Address(RVA = "0x55BCE0", Offset = "0x55ACE0", VA = "0x18055BCE0")] private set; } // Token: 0x1700216A RID: 8554 // (get) Token: 0x0600D1DF RID: 53727 RVA: 0x002FEB98 File Offset: 0x002FCD98 // (set) Token: 0x0600D1E0 RID: 53728 RVA: 0x002FEBAC File Offset: 0x002FCDAC [Token(Token = "0x1700216A")] public bool IsSecure { [Token(Token = "0x600D1DF")] [Address(RVA = "0x51F220", Offset = "0x51E220", VA = "0x18051F220")] get; [Token(Token = "0x600D1E0")] [Address(RVA = "0x51DB50", Offset = "0x51CB50", VA = "0x18051DB50")] private set; } // Token: 0x1700216B RID: 8555 // (get) Token: 0x0600D1E1 RID: 53729 RVA: 0x002FEBC0 File Offset: 0x002FCDC0 // (set) Token: 0x0600D1E2 RID: 53730 RVA: 0x002FEBD4 File Offset: 0x002FCDD4 [Token(Token = "0x1700216B")] public bool IsHttpOnly { [Token(Token = "0x600D1E1")] [Address(RVA = "0x538C50", Offset = "0x537C50", VA = "0x180538C50")] get; [Token(Token = "0x600D1E2")] [Address(RVA = "0x6A46A0", Offset = "0x6A36A0", VA = "0x1806A46A0")] private set; } // Token: 0x0600D1E3 RID: 53731 RVA: 0x002FEBE8 File Offset: 0x002FCDE8 [Token(Token = "0x600D1E3")] [Address(RVA = "0x2409B10", Offset = "0x2408B10", VA = "0x182409B10")] public Cookie(string name, string value) { string empty = string.Empty; } // Token: 0x0600D1E4 RID: 53732 RVA: 0x002FEBFC File Offset: 0x002FCDFC [Token(Token = "0x600D1E4")] [Address(RVA = "0x2409E00", Offset = "0x2408E00", VA = "0x182409E00")] public Cookie(string name, string value, string path) { string empty = string.Empty; } // Token: 0x0600D1E5 RID: 53733 RVA: 0x002FEC10 File Offset: 0x002FCE10 [Token(Token = "0x600D1E5")] [Address(RVA = "0x2409D50", Offset = "0x2408D50", VA = "0x182409D50")] public Cookie(string name, string value, string path, string domain) { int num = 0; base.FieldGetter(num, value, path); this.IsSession = true; this.MaxAge = (long)((ulong)(-1L)); DateTime utcNow = DateTime.UtcNow; this.LastAccess = utcNow; this.Name = name; this.Value = value; this.Domain = 0; this.Path = path; } // Token: 0x0600D1E6 RID: 53734 RVA: 0x002FEC64 File Offset: 0x002FCE64 [Token(Token = "0x600D1E6")] [Address(RVA = "0x2409B90", Offset = "0x2408B90", VA = "0x182409B90")] public Cookie(Uri uri, string name, string value, DateTime expires, bool isSession = true) { string absolutePath = uri.AbsolutePath; string host = uri.Host; this.Expires = 0; this.IsSession = false; DateTime utcNow = DateTime.UtcNow; this.Date = utcNow; } // Token: 0x0600D1E7 RID: 53735 RVA: 0x002FECA4 File Offset: 0x002FCEA4 [Token(Token = "0x600D1E7")] [Address(RVA = "0x2409C70", Offset = "0x2408C70", VA = "0x182409C70")] public Cookie(Uri uri, string name, string value, long maxAge = -1L, bool isSession = true) { string absolutePath = uri.AbsolutePath; string host = uri.Host; this.MaxAge = 0L; this.IsSession = false; DateTime utcNow = DateTime.UtcNow; this.Date = utcNow; } // Token: 0x0600D1E8 RID: 53736 RVA: 0x002FECE4 File Offset: 0x002FCEE4 [Token(Token = "0x600D1E8")] [Address(RVA = "0x2409E80", Offset = "0x2408E80", VA = "0x182409E80")] internal Cookie() { this.IsSession = true; this.MaxAge = (long)((ulong)(-1L)); DateTime utcNow = DateTime.UtcNow; this.LastAccess = utcNow; } // Token: 0x0600D1E9 RID: 53737 RVA: 0x002FED18 File Offset: 0x002FCF18 [Token(Token = "0x600D1E9")] [Address(RVA = "0x2409A00", Offset = "0x2408A00", VA = "0x182409A00")] public bool WillExpireInTheFuture() { if (!this.k__BackingField) { DateTime utcNow = DateTime.UtcNow; DateTime dateTime = this.k__BackingField; TimeSpan timeSpan = utcNow - dateTime; int num = 0; return Math.Max(0L, (long)num) < this.k__BackingField; } return true; } // Token: 0x0600D1EA RID: 53738 RVA: 0x002FED78 File Offset: 0x002FCF78 [Token(Token = "0x600D1EA")] [Address(RVA = "0x2408BC0", Offset = "0x2407BC0", VA = "0x182408BC0")] public uint GuessSize() { /* An exception occurred when decompiling this method (0600D1EA) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.UInt32 BestHTTP.Cookies.Cookie::GuessSize() ---> System.Exception: Basic block has to end with unconditional control flow. { IL_6C: stloc:int32(var_8, add:int32(ldloc:int32(var_8), ldc.i4:int32(35))) stloc:int32(var_8, add:int32(ldloc:int32(var_8), ldloc:int32(var_1_08))) stloc:int32(var_8, add:int32(ldloc:int32(var_8), ldloc:int32(var_1_08))) stloc:int32(var_8, add:int32(ldloc:int32(var_8), ldloc:int32(var_1_08))) } 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 1663 */; } // Token: 0x0600D1EB RID: 53739 RVA: 0x002FEE0C File Offset: 0x002FD00C [Token(Token = "0x600D1EB")] [Address(RVA = "0x2408FB0", Offset = "0x2407FB0", VA = "0x182408FB0")] public static Cookie Parse(string header, Uri defaultDomain) { int num = 0; Cookie cookie = new Cookie(); cookie.k__BackingField = true; cookie.k__BackingField = (long)((ulong)(-1L)); DateTime utcNow = DateTime.UtcNow; cookie.k__BackingField = utcNow; List list = Cookie.ParseCookieHeader(header); bool flag; if (flag) { int stringLength = header.m_stringLength; string text; if (string.Equals(text, "path")) { if (!string.IsNullOrEmpty(text)) { bool flag2 = text.StartsWith("/"); if (flag2) { cookie.k__BackingField = flag2; } } cookie.k__BackingField = "/"; } if (string.Equals(text, "domain") && !string.IsNullOrEmpty(text)) { string text2; if (text.StartsWith(".")) { text2 = text.Substring(1); } cookie.k__BackingField = text2; } if (string.Equals(text, "expires")) { DateTime dateTime = DateTime.FromBinary(0L); DateTime dateTime2 = text.ToDateTime(dateTime); cookie.k__BackingField = dateTime2; cookie.k__BackingField = false; } if (string.Equals(text, "max-age")) { long num2; cookie.k__BackingField = num2; cookie.k__BackingField = false; } if (string.Equals(text, "secure")) { cookie.k__BackingField = true; } bool flag3 = string.Equals(text, "httponly"); if (flag3) { cookie.k__BackingField = true; } cookie.k__BackingField = flag3; cookie.k__BackingField = flag3; } if (num == 0) { if (num != -1) { } cookie.k__BackingField = true; string text3 = cookie.k__BackingField; string host = defaultDomain.Host; cookie.k__BackingField = host; string text4 = cookie.k__BackingField; if (host != 0) { string absolutePath = defaultDomain.AbsolutePath; cookie.k__BackingField = absolutePath; } DateTime utcNow2 = DateTime.UtcNow; cookie.k__BackingField = utcNow2; cookie.k__BackingField = utcNow2; ILogger logger = HTTPManager.Logger; string[] array = new string[6]; throw new ArrayTypeMismatchException(); } throw new NullReferenceException(); } // Token: 0x0600D1EC RID: 53740 RVA: 0x002FF0BC File Offset: 0x002FD2BC [Token(Token = "0x600D1EC")] [Address(RVA = "0x24097C0", Offset = "0x24087C0", VA = "0x1824097C0")] internal void SaveTo(BinaryWriter stream) { stream.Write(1); string text = this.k__BackingField; if (text == 0) { } stream.Write(text); string empty; if (this.k__BackingField == 0) { empty = string.Empty; } stream.Write(empty); DateTime dateTime = this.k__BackingField; long num; stream.Write((uint)num); DateTime dateTime2 = this.k__BackingField; long num2; stream.Write((uint)num2); DateTime dateTime3 = this.k__BackingField; long num3; stream.Write((uint)num3); long num4 = this.k__BackingField; stream.Write((uint)num4); stream.Flush(); string empty2; if (this.k__BackingField == 0) { empty2 = string.Empty; } stream.Write(empty2); string empty3; if (this.k__BackingField == 0) { empty3 = string.Empty; } stream.Write(empty3); stream.Flush(); stream.Flush(); } // Token: 0x0600D1ED RID: 53741 RVA: 0x002FF180 File Offset: 0x002FD380 [Token(Token = "0x600D1ED")] [Address(RVA = "0x2408C20", Offset = "0x2407C20", VA = "0x182408C20")] internal void LoadFrom(BinaryReader stream) { ushort num = stream.ReadUInt16(); decimal num2 = stream.ReadDecimal(); this.k__BackingField = num2; decimal num3 = stream.ReadDecimal(); this.k__BackingField = num3; DateTime dateTime = DateTime.FromBinary((long)stream.ReadUInt32()); this.k__BackingField = dateTime; DateTime dateTime2 = DateTime.FromBinary((long)stream.ReadUInt32()); this.k__BackingField = dateTime2; DateTime dateTime3 = DateTime.FromBinary((long)stream.ReadUInt32()); this.k__BackingField = dateTime3; uint num4 = stream.ReadUInt32(); this.k__BackingField = (long)num4; int num5 = stream.Read(); this.k__BackingField = num5 != 0; decimal num6 = stream.ReadDecimal(); this.k__BackingField = num6; decimal num7 = stream.ReadDecimal(); this.k__BackingField = num7; int num8 = stream.Read(); this.k__BackingField = num8 != 0; int num9 = stream.Read(); this.k__BackingField = num9 != 0; } // Token: 0x0600D1EE RID: 53742 RVA: 0x002FF254 File Offset: 0x002FD454 [Token(Token = "0x600D1EE")] [Address(RVA = "0x24099C0", Offset = "0x24089C0", VA = "0x1824099C0", Slot = "3")] public override string ToString() { string text = this.k__BackingField; return this.k__BackingField + "=" + text; } // Token: 0x0600D1EF RID: 53743 RVA: 0x002FF27C File Offset: 0x002FD47C [Token(Token = "0x600D1EF")] [Address(RVA = "0x2408B50", Offset = "0x2407B50", VA = "0x182408B50", Slot = "0")] public override bool Equals(object obj) { if (obj != 0) { bool flag; return flag; } } // Token: 0x0600D1F0 RID: 53744 RVA: 0x002FF290 File Offset: 0x002FD490 [Token(Token = "0x600D1F0")] [Address(RVA = "0x2408A90", Offset = "0x2407A90", VA = "0x182408A90", Slot = "5")] public bool Equals(Cookie cookie) { if (cookie != 0) { if (this != cookie) { string text = this.k__BackingField; string text2 = cookie.k__BackingField; if (!text.Equals(text2, StringComparison.Ordinal)) { goto IL_76; } string text3 = this.k__BackingField; if (text3 != 0 || cookie.k__BackingField != text3) { string text4 = cookie.k__BackingField; if (!text3.Equals(text4, StringComparison.Ordinal)) { goto IL_76; } } string text5 = this.k__BackingField; if (text5 != 0 || cookie.k__BackingField != text5) { string text6 = cookie.k__BackingField; return text5.Equals(text6, StringComparison.Ordinal); } } return true; } IL_76: throw new NullReferenceException(); } // Token: 0x0600D1F1 RID: 53745 RVA: 0x002FF31C File Offset: 0x002FD51C [Token(Token = "0x600D1F1")] [Address(RVA = "0x8A4D10", Offset = "0x8A3D10", VA = "0x1808A4D10", Slot = "2")] public override int GetHashCode() { TypeCode typeCode = ((IConvertible)this.GetHashCode()).GetTypeCode(); throw new NullReferenceException(); } // Token: 0x0600D1F2 RID: 53746 RVA: 0x002FF33C File Offset: 0x002FD53C [Token(Token = "0x600D1F2")] [Address(RVA = "0x2409730", Offset = "0x2408730", VA = "0x182409730")] private static string ReadValue(string str, ref int pos) { string empty = string.Empty; if (str != 0) { } return empty; } // Token: 0x0600D1F3 RID: 53747 RVA: 0x002FF354 File Offset: 0x002FD554 [Token(Token = "0x600D1F3")] [Address(RVA = "0x2408DC0", Offset = "0x2407DC0", VA = "0x182408DC0")] private static List ParseCookieHeader(string str) { List list = new List(); if (str != 0) { int num = 0; if (num < str.m_stringLength) { Func <>9__61_ = Cookie.<>c.<>9__61_0; if (<>9__61_ == 0) { Cookie.<>c.<>9__61_0 = delegate(char ch) { bool flag; return flag; }; } HeaderValue headerValue = new HeaderValue(Extensions.Read(str, num, <>9__61_, true).Trim()); if (num < str.m_stringLength) { char c = str[num]; string text = Cookie.ReadValue(str, num); headerValue.k__BackingField = text; } list.Add(headerValue); } } return list; } // Token: 0x0600D1F4 RID: 53748 RVA: 0x002FF3DC File Offset: 0x002FD5DC [Token(Token = "0x600D1F4")] [Address(RVA = "0x2408A60", Offset = "0x2407A60", VA = "0x182408A60", Slot = "4")] public int CompareTo(Cookie other) { DateTime dateTime = this.k__BackingField; DateTime dateTime2 = other.k__BackingField; int num; return num; } // Token: 0x04008593 RID: 34195 [Token(Token = "0x4008593")] private const int Version = 1; } }