m
This commit is contained in:
@@ -0,0 +1,644 @@
|
||||
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<HTTPCacheFileInfo>
|
||||
{
|
||||
// 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.<LastAccess>k__BackingField;
|
||||
long num;
|
||||
writer.Write((uint)num);
|
||||
int num2 = this.<BodyLength>k__BackingField;
|
||||
writer.Write((ushort)num2);
|
||||
ulong num3 = this.<MappedNameIDX>k__BackingField;
|
||||
writer.Write((long)num3);
|
||||
string text = this.<ETag>k__BackingField;
|
||||
writer.Write(text);
|
||||
string text2 = this.<LastModified>k__BackingField;
|
||||
writer.Write(text2);
|
||||
DateTime dateTime2 = this.<Expires>k__BackingField;
|
||||
long num4;
|
||||
writer.Write((uint)num4);
|
||||
long num5 = this.<Age>k__BackingField;
|
||||
writer.Write((uint)num5);
|
||||
long num6 = this.<MaxAge>k__BackingField;
|
||||
writer.Write((uint)num6);
|
||||
DateTime dateTime3 = this.<Date>k__BackingField;
|
||||
long num7;
|
||||
writer.Write((uint)num7);
|
||||
writer.Flush();
|
||||
DateTime dateTime4 = this.<Received>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.<ConstructedPath>k__BackingField;
|
||||
if (text == 0)
|
||||
{
|
||||
string <CacheFolder>k__BackingField = HTTPCacheService.<CacheFolder>k__BackingField;
|
||||
ulong num = this.<MappedNameIDX>k__BackingField;
|
||||
string text3;
|
||||
string text2 = Path.Combine(<CacheFolder>k__BackingField, text3);
|
||||
this.<ConstructedPath>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.<BodyLength>k__BackingField = (int)((ulong)4294967295L);
|
||||
string empty = string.Empty;
|
||||
this.<ETag>k__BackingField = empty;
|
||||
DateTime dateTime = DateTime.FromBinary(0L);
|
||||
this.<Expires>k__BackingField = dateTime;
|
||||
string empty2 = string.Empty;
|
||||
this.<LastModified>k__BackingField = empty2;
|
||||
this.<Age>k__BackingField = (long)((ulong)0L);
|
||||
this.<MaxAge>k__BackingField = (long)((ulong)(-1L));
|
||||
DateTime dateTime2 = DateTime.FromBinary(0L);
|
||||
this.<Date>k__BackingField = dateTime2;
|
||||
this.<MustRevalidate>k__BackingField = false;
|
||||
DateTime dateTime3 = DateTime.FromBinary(0L);
|
||||
this.<Received>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.<BodyLength>k__BackingField = (int)((ulong)4294967295L);
|
||||
string empty = string.Empty;
|
||||
this.<ETag>k__BackingField = empty;
|
||||
DateTime dateTime = DateTime.FromBinary(0L);
|
||||
this.<Expires>k__BackingField = dateTime;
|
||||
string empty2 = string.Empty;
|
||||
int num = 0;
|
||||
this.<LastModified>k__BackingField = empty2;
|
||||
this.<Age>k__BackingField = (long)((ulong)0L);
|
||||
this.<MaxAge>k__BackingField = (long)((ulong)(-1L));
|
||||
DateTime dateTime2 = DateTime.FromBinary((long)num);
|
||||
this.<Date>k__BackingField = dateTime2;
|
||||
int num2 = 0;
|
||||
this.<MustRevalidate>k__BackingField = false;
|
||||
DateTime dateTime3 = DateTime.FromBinary((long)num2);
|
||||
this.<Received>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.<CacheFileInfo>k__BackingField = this;
|
||||
string text = response.GetFirstHeaderValue("ETag").ToStrOrEmpty();
|
||||
this.<ETag>k__BackingField = text;
|
||||
string firstHeaderValue = response.GetFirstHeaderValue("Expires");
|
||||
DateTime dateTime = DateTime.FromBinary(0L);
|
||||
DateTime dateTime2 = firstHeaderValue.ToDateTime(dateTime);
|
||||
this.<Expires>k__BackingField = dateTime2;
|
||||
string text2 = response.GetFirstHeaderValue("Last-Modified").ToStrOrEmpty();
|
||||
this.<LastModified>k__BackingField = text2;
|
||||
string firstHeaderValue2 = response.GetFirstHeaderValue("Age");
|
||||
int num = 0;
|
||||
long num2 = firstHeaderValue2.ToInt64((long)num);
|
||||
this.<Age>k__BackingField = num2;
|
||||
string firstHeaderValue3 = response.GetFirstHeaderValue("Date");
|
||||
DateTime dateTime3 = DateTime.FromBinary(0L);
|
||||
DateTime dateTime4 = firstHeaderValue3.ToDateTime(dateTime3);
|
||||
this.<Date>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.<MaxAge>k__BackingField = (flag ? 1L : 0L);
|
||||
}
|
||||
}
|
||||
bool flag2 = firstHeaderValue4.ToLower().Contains("must-revalidate");
|
||||
this.<MustRevalidate>k__BackingField = flag2;
|
||||
}
|
||||
DateTime utcNow = DateTime.UtcNow;
|
||||
this.<Received>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.<MustRevalidate>k__BackingField)
|
||||
{
|
||||
DateTime dateTime = this.<Expires>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.<ETag>k__BackingField;
|
||||
if (!flag)
|
||||
{
|
||||
string text2 = this.<ETag>k__BackingField;
|
||||
request.SetHeader("If-None-Match", text2);
|
||||
}
|
||||
string text3 = this.<LastModified>k__BackingField;
|
||||
if (!flag)
|
||||
{
|
||||
string text4 = this.<LastModified>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.<BodyLength>k__BackingField;
|
||||
length.m_value = num;
|
||||
DateTime utcNow = DateTime.UtcNow;
|
||||
this.<LastAccess>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.<LastAccess>k__BackingField = utcNow;
|
||||
IIOService ioservice = HTTPManager.IOService;
|
||||
string path = this.GetPath();
|
||||
HTTPResponse httpresponse;
|
||||
httpresponse.<CacheFileInfo>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 <StatusCode>k__BackingField = response.<StatusCode>k__BackingField;
|
||||
num2 = <StatusCode>k__BackingField;
|
||||
if (<StatusCode>k__BackingField != 0)
|
||||
{
|
||||
}
|
||||
array[0] = num2;
|
||||
string <Message>k__BackingField = response.<Message>k__BackingField;
|
||||
if (<Message>k__BackingField != 0)
|
||||
{
|
||||
}
|
||||
array[1] = <Message>k__BackingField;
|
||||
Dictionary<string, List<string>> <Headers>k__BackingField = response.<Headers>k__BackingField;
|
||||
bool flag;
|
||||
int num3;
|
||||
if (flag)
|
||||
{
|
||||
if (num < this.<LastAccess>k__BackingField)
|
||||
{
|
||||
break;
|
||||
}
|
||||
num3 = 0;
|
||||
}
|
||||
if (num3 != 0)
|
||||
{
|
||||
goto IL_116;
|
||||
}
|
||||
if (num3 != -1)
|
||||
{
|
||||
}
|
||||
byte[] <Data>k__BackingField = response.<Data>k__BackingField;
|
||||
if (path != 0)
|
||||
{
|
||||
}
|
||||
if (num3 == 0)
|
||||
{
|
||||
goto Block_4;
|
||||
}
|
||||
}
|
||||
object[] array2 = new object[2];
|
||||
throw new ArrayTypeMismatchException();
|
||||
Block_4:
|
||||
int length = response.<Data>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.<LastAccess>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 <StatusCode>k__BackingField = response.<StatusCode>k__BackingField;
|
||||
if (<StatusCode>k__BackingField != 0)
|
||||
{
|
||||
}
|
||||
array[0] = <StatusCode>k__BackingField;
|
||||
string <Message>k__BackingField = response.<Message>k__BackingField;
|
||||
if (<Message>k__BackingField != 0)
|
||||
{
|
||||
}
|
||||
array[1] = <Message>k__BackingField;
|
||||
Dictionary<string, List<string>> <Headers>k__BackingField = response.<Headers>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.<LastAccess>k__BackingField;
|
||||
DateTime dateTime2 = other.<LastAccess>k__BackingField;
|
||||
int num;
|
||||
return num;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.Caching
|
||||
{
|
||||
// Token: 0x020020A2 RID: 8354
|
||||
[Token(Token = "0x20020A2")]
|
||||
internal sealed class HTTPCacheFileLock
|
||||
{
|
||||
// Token: 0x0600D236 RID: 53814 RVA: 0x003006D8 File Offset: 0x002FE8D8
|
||||
[Token(Token = "0x600D236")]
|
||||
[Address(RVA = "0x2411CF0", Offset = "0x2410CF0", VA = "0x182411CF0")]
|
||||
internal static object Acquire(Uri uri)
|
||||
{
|
||||
for (;;)
|
||||
{
|
||||
int num = 0;
|
||||
object syncRoot = HTTPCacheFileLock.SyncRoot;
|
||||
int num2 = 0;
|
||||
if (!HTTPCacheFileLock.FileLocks.TryGetValue(uri, num2))
|
||||
{
|
||||
break;
|
||||
}
|
||||
Monitor.Exit(syncRoot);
|
||||
if (num == 0)
|
||||
{
|
||||
goto Block_1;
|
||||
}
|
||||
}
|
||||
Dictionary<Uri, object> fileLocks = HTTPCacheFileLock.FileLocks;
|
||||
object obj = new object();
|
||||
throw new NullReferenceException();
|
||||
Block_1:
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600D237 RID: 53815 RVA: 0x00300728 File Offset: 0x002FE928
|
||||
[Token(Token = "0x600D237")]
|
||||
[Address(RVA = "0x2411FD0", Offset = "0x2410FD0", VA = "0x182411FD0")]
|
||||
internal static void Remove(Uri uri)
|
||||
{
|
||||
object syncRoot = HTTPCacheFileLock.SyncRoot;
|
||||
Dictionary<Uri, object> fileLocks = HTTPCacheFileLock.FileLocks;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600D238 RID: 53816 RVA: 0x00300770 File Offset: 0x002FE970
|
||||
[Token(Token = "0x600D238")]
|
||||
[Address(RVA = "0x2411EB0", Offset = "0x2410EB0", VA = "0x182411EB0")]
|
||||
internal static void Clear()
|
||||
{
|
||||
int num;
|
||||
do
|
||||
{
|
||||
num = 0;
|
||||
object syncRoot = HTTPCacheFileLock.SyncRoot;
|
||||
HTTPCacheFileLock.FileLocks.Clear();
|
||||
Monitor.Exit(syncRoot);
|
||||
}
|
||||
while (num != 0);
|
||||
}
|
||||
|
||||
// Token: 0x0600D239 RID: 53817 RVA: 0x003007A0 File Offset: 0x002FE9A0
|
||||
[Token(Token = "0x600D239")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public HTTPCacheFileLock()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x040085B7 RID: 34231
|
||||
[Token(Token = "0x40085B7")]
|
||||
private static Dictionary<Uri, object> FileLocks = new Dictionary();
|
||||
|
||||
// Token: 0x040085B8 RID: 34232
|
||||
[Token(Token = "0x40085B8")]
|
||||
private static object SyncRoot = new object();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.Caching
|
||||
{
|
||||
// Token: 0x020020A3 RID: 8355
|
||||
[Token(Token = "0x20020A3")]
|
||||
public sealed class HTTPCacheMaintananceParams
|
||||
{
|
||||
// Token: 0x1700217C RID: 8572
|
||||
// (get) Token: 0x0600D23B RID: 53819 RVA: 0x003007D8 File Offset: 0x002FE9D8
|
||||
// (set) Token: 0x0600D23C RID: 53820 RVA: 0x003007EC File Offset: 0x002FE9EC
|
||||
[Token(Token = "0x1700217C")]
|
||||
public TimeSpan DeleteOlder
|
||||
{
|
||||
[Token(Token = "0x600D23B")]
|
||||
[Address(RVA = "0x411530", Offset = "0x410530", VA = "0x180411530")]
|
||||
get;
|
||||
[Token(Token = "0x600D23C")]
|
||||
[Address(RVA = "0x415800", Offset = "0x414800", VA = "0x180415800")]
|
||||
private set;
|
||||
}
|
||||
|
||||
// Token: 0x1700217D RID: 8573
|
||||
// (get) Token: 0x0600D23D RID: 53821 RVA: 0x00300800 File Offset: 0x002FEA00
|
||||
// (set) Token: 0x0600D23E RID: 53822 RVA: 0x00300814 File Offset: 0x002FEA14
|
||||
[Token(Token = "0x1700217D")]
|
||||
public ulong MaxCacheSize
|
||||
{
|
||||
[Token(Token = "0x600D23D")]
|
||||
[Address(RVA = "0x4157B0", Offset = "0x4147B0", VA = "0x1804157B0")]
|
||||
get;
|
||||
[Token(Token = "0x600D23E")]
|
||||
[Address(RVA = "0x4157F0", Offset = "0x4147F0", VA = "0x1804157F0")]
|
||||
private set;
|
||||
}
|
||||
|
||||
// Token: 0x0600D23F RID: 53823 RVA: 0x00300828 File Offset: 0x002FEA28
|
||||
[Token(Token = "0x600D23F")]
|
||||
[Address(RVA = "0x417DD0", Offset = "0x416DD0", VA = "0x180417DD0")]
|
||||
public HTTPCacheMaintananceParams(TimeSpan deleteOlder, ulong maxCacheSize)
|
||||
{
|
||||
this.DeleteOlder = deleteOlder;
|
||||
this.MaxCacheSize = maxCacheSize;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,801 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Threading;
|
||||
using BestHTTP.Logger;
|
||||
using BestHTTP.PlatformSupport.FileSystem;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.Caching
|
||||
{
|
||||
// Token: 0x020020A5 RID: 8357
|
||||
[Token(Token = "0x20020A5")]
|
||||
public static class HTTPCacheService
|
||||
{
|
||||
// Token: 0x1700217E RID: 8574
|
||||
// (get) Token: 0x0600D243 RID: 53827 RVA: 0x00300894 File Offset: 0x002FEA94
|
||||
[Token(Token = "0x1700217E")]
|
||||
public static bool IsSupported
|
||||
{
|
||||
[Token(Token = "0x600D243")]
|
||||
[Address(RVA = "0x2415FC0", Offset = "0x2414FC0", VA = "0x182415FC0")]
|
||||
get
|
||||
{
|
||||
int num;
|
||||
do
|
||||
{
|
||||
num = 0;
|
||||
IIOService ioservice = HTTPManager.IOService;
|
||||
string rootCacheFolder = HTTPManager.GetRootCacheFolder();
|
||||
ILogger logger = HTTPManager.Logger;
|
||||
}
|
||||
while (num != 0);
|
||||
return HTTPCacheService.isSupported;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700217F RID: 8575
|
||||
// (get) Token: 0x0600D244 RID: 53828 RVA: 0x003008D8 File Offset: 0x002FEAD8
|
||||
[Token(Token = "0x1700217F")]
|
||||
private static Dictionary<Uri, HTTPCacheFileInfo> Library
|
||||
{
|
||||
[Token(Token = "0x600D244")]
|
||||
[Address(RVA = "0x2416310", Offset = "0x2415310", VA = "0x182416310")]
|
||||
get
|
||||
{
|
||||
HTTPCacheService.LoadLibrary();
|
||||
return HTTPCacheService.library;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17002180 RID: 8576
|
||||
// (get) Token: 0x0600D245 RID: 53829 RVA: 0x003008F4 File Offset: 0x002FEAF4
|
||||
// (set) Token: 0x0600D246 RID: 53830 RVA: 0x00300908 File Offset: 0x002FEB08
|
||||
[Token(Token = "0x17002180")]
|
||||
internal static string CacheFolder
|
||||
{
|
||||
[Token(Token = "0x600D245")]
|
||||
[Address(RVA = "0x2415F60", Offset = "0x2414F60", VA = "0x182415F60")]
|
||||
get;
|
||||
[Token(Token = "0x600D246")]
|
||||
[Address(RVA = "0x2416370", Offset = "0x2415370", VA = "0x182416370")]
|
||||
private set;
|
||||
}
|
||||
|
||||
// Token: 0x17002181 RID: 8577
|
||||
// (get) Token: 0x0600D247 RID: 53831 RVA: 0x0030091C File Offset: 0x002FEB1C
|
||||
// (set) Token: 0x0600D248 RID: 53832 RVA: 0x00300930 File Offset: 0x002FEB30
|
||||
[Token(Token = "0x17002181")]
|
||||
private static string LibraryPath
|
||||
{
|
||||
[Token(Token = "0x600D247")]
|
||||
[Address(RVA = "0x2416250", Offset = "0x2415250", VA = "0x182416250")]
|
||||
get;
|
||||
[Token(Token = "0x600D248")]
|
||||
[Address(RVA = "0x24163D0", Offset = "0x24153D0", VA = "0x1824163D0")]
|
||||
set;
|
||||
}
|
||||
|
||||
// Token: 0x0600D24A RID: 53834 RVA: 0x0030095C File Offset: 0x002FEB5C
|
||||
[Token(Token = "0x600D24A")]
|
||||
[Address(RVA = "0x24124B0", Offset = "0x24114B0", VA = "0x1824124B0")]
|
||||
internal static void CheckSetup()
|
||||
{
|
||||
if (HTTPCacheService.IsSupported)
|
||||
{
|
||||
HTTPCacheService.SetupCacheFolder();
|
||||
HTTPCacheService.LoadLibrary();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600D24B RID: 53835 RVA: 0x00300984 File Offset: 0x002FEB84
|
||||
[Token(Token = "0x600D24B")]
|
||||
[Address(RVA = "0x24156A0", Offset = "0x24146A0", VA = "0x1824156A0")]
|
||||
internal static void SetupCacheFolder()
|
||||
{
|
||||
if (HTTPCacheService.IsSupported)
|
||||
{
|
||||
bool flag = string.IsNullOrEmpty(HTTPCacheService.<CacheFolder>k__BackingField);
|
||||
if (flag || flag)
|
||||
{
|
||||
HTTPCacheService.<CacheFolder>k__BackingField = Path.Combine(HTTPManager.GetRootCacheFolder(), "HTTPCache");
|
||||
IIOService ioservice = HTTPManager.IOService;
|
||||
IIOService ioservice2 = HTTPManager.IOService;
|
||||
HTTPCacheService.<LibraryPath>k__BackingField = Path.Combine(HTTPManager.GetRootCacheFolder(), "Library");
|
||||
}
|
||||
ILogger logger = HTTPManager.Logger;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600D24C RID: 53836 RVA: 0x00300A04 File Offset: 0x002FEC04
|
||||
[Token(Token = "0x600D24C")]
|
||||
[Address(RVA = "0x24138F0", Offset = "0x24128F0", VA = "0x1824138F0")]
|
||||
internal static ulong GetNameIdx()
|
||||
{
|
||||
HTTPCacheService.LoadLibrary();
|
||||
Dictionary<Uri, HTTPCacheFileInfo> dictionary = HTTPCacheService.library;
|
||||
ulong nextNameIDX = HTTPCacheService.NextNameIDX;
|
||||
ulong num = HTTPCacheService.NextNameIDX;
|
||||
num += (ulong)1L;
|
||||
HTTPCacheService.NextNameIDX = num;
|
||||
HTTPCacheService.NextNameIDX = 0UL;
|
||||
Dictionary<ulong, HTTPCacheFileInfo> usedIndexes = HTTPCacheService.UsedIndexes;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600D24D RID: 53837 RVA: 0x00300A68 File Offset: 0x002FEC68
|
||||
[Token(Token = "0x600D24D")]
|
||||
[Address(RVA = "0x2413AE0", Offset = "0x2412AE0", VA = "0x182413AE0")]
|
||||
internal static bool HasEntity(Uri uri)
|
||||
{
|
||||
if (HTTPCacheService.IsSupported)
|
||||
{
|
||||
HTTPCacheService.LoadLibrary();
|
||||
Dictionary<Uri, HTTPCacheFileInfo> dictionary = HTTPCacheService.library;
|
||||
HTTPCacheService.LoadLibrary();
|
||||
Dictionary<Uri, HTTPCacheFileInfo> dictionary2 = HTTPCacheService.library;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600D24E RID: 53838 RVA: 0x00300AB8 File Offset: 0x002FECB8
|
||||
[Token(Token = "0x600D24E")]
|
||||
[Address(RVA = "0x2412820", Offset = "0x2411820", VA = "0x182412820")]
|
||||
public static bool DeleteEntity(Uri uri, bool removeFromLibrary = true)
|
||||
{
|
||||
for (;;)
|
||||
{
|
||||
int num = 0;
|
||||
if (!HTTPCacheService.IsSupported)
|
||||
{
|
||||
break;
|
||||
}
|
||||
int num2 = 0;
|
||||
object obj = HTTPCacheFileLock.Acquire(uri);
|
||||
Monitor.Enter(obj, num2);
|
||||
HTTPCacheService.LoadLibrary();
|
||||
Dictionary<Uri, HTTPCacheFileInfo> dictionary = HTTPCacheService.library;
|
||||
int num3 = 0;
|
||||
Monitor.Enter(dictionary, num2);
|
||||
HTTPCacheService.LoadLibrary();
|
||||
bool flag = HTTPCacheService.library.TryGetValue(uri, num3);
|
||||
if (flag)
|
||||
{
|
||||
}
|
||||
if (removeFromLibrary != flag)
|
||||
{
|
||||
bool flag2 = HTTPCacheService.Library.Remove(uri);
|
||||
Dictionary<ulong, HTTPCacheFileInfo> usedIndexes = HTTPCacheService.UsedIndexes;
|
||||
}
|
||||
Monitor.Exit(dictionary);
|
||||
if (num == 0)
|
||||
{
|
||||
if (num != -1)
|
||||
{
|
||||
}
|
||||
Monitor.Exit(obj);
|
||||
if (num == 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600D24F RID: 53839 RVA: 0x00300B74 File Offset: 0x002FED74
|
||||
[Token(Token = "0x600D24F")]
|
||||
[Address(RVA = "0x2413F30", Offset = "0x2412F30", VA = "0x182413F30")]
|
||||
internal static bool IsCachedEntityExpiresInTheFuture(HTTPRequest request)
|
||||
{
|
||||
int num;
|
||||
do
|
||||
{
|
||||
num = 0;
|
||||
if (!HTTPCacheService.IsSupported)
|
||||
{
|
||||
goto IL_4F;
|
||||
}
|
||||
HTTPCacheService.LoadLibrary();
|
||||
Dictionary<Uri, HTTPCacheFileInfo> dictionary = HTTPCacheService.library;
|
||||
int num2 = 0;
|
||||
HTTPCacheService.LoadLibrary();
|
||||
Dictionary<Uri, HTTPCacheFileInfo> dictionary2 = HTTPCacheService.library;
|
||||
Uri currentUri = request.CurrentUri;
|
||||
if (!dictionary2.TryGetValue(currentUri, num2))
|
||||
{
|
||||
}
|
||||
Monitor.Exit(dictionary);
|
||||
}
|
||||
while (num != 0);
|
||||
if (num != -1)
|
||||
{
|
||||
}
|
||||
IL_4F:
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600D250 RID: 53840 RVA: 0x00300BE4 File Offset: 0x002FEDE4
|
||||
[Token(Token = "0x600D250")]
|
||||
[Address(RVA = "0x2415460", Offset = "0x2414460", VA = "0x182415460")]
|
||||
internal static void SetHeaders(HTTPRequest request)
|
||||
{
|
||||
int num;
|
||||
do
|
||||
{
|
||||
num = 0;
|
||||
if (!HTTPCacheService.IsSupported)
|
||||
{
|
||||
break;
|
||||
}
|
||||
bool flag = request.RemoveHeader("If-None-Match");
|
||||
bool flag2 = request.RemoveHeader("If-Modified-Since");
|
||||
HTTPCacheService.LoadLibrary();
|
||||
Dictionary<Uri, HTTPCacheFileInfo> dictionary = HTTPCacheService.library;
|
||||
int num2 = 0;
|
||||
HTTPCacheService.LoadLibrary();
|
||||
Dictionary<Uri, HTTPCacheFileInfo> dictionary2 = HTTPCacheService.library;
|
||||
Uri currentUri = request.CurrentUri;
|
||||
if (dictionary2.TryGetValue(currentUri, num2))
|
||||
{
|
||||
}
|
||||
Monitor.Exit(dictionary);
|
||||
}
|
||||
while (num != 0);
|
||||
}
|
||||
|
||||
// Token: 0x0600D251 RID: 53841 RVA: 0x00300C64 File Offset: 0x002FEE64
|
||||
[Token(Token = "0x600D251")]
|
||||
[Address(RVA = "0x2413460", Offset = "0x2412460", VA = "0x182413460")]
|
||||
internal static HTTPCacheFileInfo GetEntity(Uri uri)
|
||||
{
|
||||
int num;
|
||||
do
|
||||
{
|
||||
num = 0;
|
||||
if (!HTTPCacheService.IsSupported)
|
||||
{
|
||||
break;
|
||||
}
|
||||
HTTPCacheService.LoadLibrary();
|
||||
Dictionary<Uri, HTTPCacheFileInfo> dictionary = HTTPCacheService.library;
|
||||
int num2 = 0;
|
||||
HTTPCacheService.LoadLibrary();
|
||||
bool flag = HTTPCacheService.library.TryGetValue(uri, num2);
|
||||
Monitor.Exit(dictionary);
|
||||
}
|
||||
while (num != 0);
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600D252 RID: 53842 RVA: 0x00300CB8 File Offset: 0x002FEEB8
|
||||
[Token(Token = "0x600D252")]
|
||||
[Address(RVA = "0x2413660", Offset = "0x2412660", VA = "0x182413660")]
|
||||
internal static HTTPResponse GetFullResponse(HTTPRequest request)
|
||||
{
|
||||
int num;
|
||||
do
|
||||
{
|
||||
num = 0;
|
||||
if (!HTTPCacheService.IsSupported)
|
||||
{
|
||||
goto IL_4F;
|
||||
}
|
||||
HTTPCacheService.LoadLibrary();
|
||||
Dictionary<Uri, HTTPCacheFileInfo> dictionary = HTTPCacheService.library;
|
||||
int num2 = 0;
|
||||
HTTPCacheService.LoadLibrary();
|
||||
Dictionary<Uri, HTTPCacheFileInfo> dictionary2 = HTTPCacheService.library;
|
||||
Uri currentUri = request.CurrentUri;
|
||||
if (!dictionary2.TryGetValue(currentUri, num2))
|
||||
{
|
||||
}
|
||||
Monitor.Exit(dictionary);
|
||||
}
|
||||
while (num != 0);
|
||||
if (num != -1)
|
||||
{
|
||||
}
|
||||
IL_4F:
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600D253 RID: 53843 RVA: 0x00300D28 File Offset: 0x002FEF28
|
||||
[Token(Token = "0x600D253")]
|
||||
[Address(RVA = "0x2413CE0", Offset = "0x2412CE0", VA = "0x182413CE0")]
|
||||
internal static bool IsCacheble(Uri uri, HTTPMethods method, HTTPResponse response)
|
||||
{
|
||||
if (!HTTPCacheService.IsSupported || response == 0 || response.<StatusCode>k__BackingField > 199)
|
||||
{
|
||||
return;
|
||||
}
|
||||
List<string> headerValues = response.GetHeaderValues("cache-control");
|
||||
if (headerValues != 0)
|
||||
{
|
||||
Predicate<string> <>9__30_ = HTTPCacheService.<>c.<>9__30_0;
|
||||
if (<>9__30_ == 0)
|
||||
{
|
||||
HTTPCacheService.<>c.<>9__30_0 = delegate(string headerValue)
|
||||
{
|
||||
string text = headerValue.ToLower();
|
||||
return text.Contains("no-store") || text.Contains("no-cache");
|
||||
};
|
||||
}
|
||||
if (headerValues.Exists(<>9__30_))
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
List<string> headerValues2 = response.GetHeaderValues("pragma");
|
||||
if (headerValues2 != 0)
|
||||
{
|
||||
Predicate<string> predicate;
|
||||
if (HTTPCacheService.<>c.<>9__30_1 == 0)
|
||||
{
|
||||
predicate = delegate(string headerValue)
|
||||
{
|
||||
string text2 = headerValue.ToLower();
|
||||
return text2.Contains("no-store") || text2.Contains("no-cache");
|
||||
};
|
||||
HTTPCacheService.<>c.<>9__30_1 = predicate;
|
||||
}
|
||||
if (headerValues2.Exists(predicate))
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (response.GetHeaderValues("content-range") == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600D254 RID: 53844 RVA: 0x00300DE0 File Offset: 0x002FEFE0
|
||||
[Token(Token = "0x600D254")]
|
||||
[Address(RVA = "0x2415B10", Offset = "0x2414B10", VA = "0x182415B10")]
|
||||
internal static HTTPCacheFileInfo Store(Uri uri, HTTPMethods method, HTTPResponse response)
|
||||
{
|
||||
for (;;)
|
||||
{
|
||||
int num = 0;
|
||||
if (response == 0)
|
||||
{
|
||||
goto IL_C0;
|
||||
}
|
||||
byte[] <Data>k__BackingField = response.<Data>k__BackingField;
|
||||
if (<Data>k__BackingField == 0 || <Data>k__BackingField.Length == num || !HTTPCacheService.IsSupported)
|
||||
{
|
||||
goto IL_C0;
|
||||
}
|
||||
Dictionary<Uri, HTTPCacheFileInfo> dictionary = HTTPCacheService.Library;
|
||||
int num2 = 0;
|
||||
if (!HTTPCacheService.Library.TryGetValue(uri, num2))
|
||||
{
|
||||
break;
|
||||
}
|
||||
int num3 = 0;
|
||||
ILogger logger = HTTPManager.Logger;
|
||||
if (num < num3)
|
||||
{
|
||||
num += num;
|
||||
num++;
|
||||
}
|
||||
if (num == 0)
|
||||
{
|
||||
ILogger logger2 = HTTPManager.Logger;
|
||||
int hashCode = uri.GetHashCode();
|
||||
string text = string.Format("{0} - Saved to cache", hashCode);
|
||||
}
|
||||
Monitor.Exit(dictionary);
|
||||
if (num == 0)
|
||||
{
|
||||
goto IL_C0;
|
||||
}
|
||||
}
|
||||
Dictionary<Uri, HTTPCacheFileInfo> dictionary2 = HTTPCacheService.Library;
|
||||
HTTPCacheFileInfo httpcacheFileInfo = new HTTPCacheFileInfo(uri);
|
||||
throw new NullReferenceException();
|
||||
IL_C0:
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600D255 RID: 53845 RVA: 0x00300EE0 File Offset: 0x002FF0E0
|
||||
[Token(Token = "0x600D255")]
|
||||
[Address(RVA = "0x2414920", Offset = "0x2413920", VA = "0x182414920")]
|
||||
internal static Stream PrepareStreamed(Uri uri, HTTPResponse response)
|
||||
{
|
||||
for (;;)
|
||||
{
|
||||
int num = 0;
|
||||
if (!HTTPCacheService.IsSupported)
|
||||
{
|
||||
goto IL_63;
|
||||
}
|
||||
HTTPCacheService.LoadLibrary();
|
||||
Dictionary<Uri, HTTPCacheFileInfo> dictionary = HTTPCacheService.library;
|
||||
int num2 = 0;
|
||||
HTTPCacheService.LoadLibrary();
|
||||
if (!HTTPCacheService.library.TryGetValue(uri, num2))
|
||||
{
|
||||
break;
|
||||
}
|
||||
Monitor.Exit(dictionary);
|
||||
if (num == 0)
|
||||
{
|
||||
goto IL_63;
|
||||
}
|
||||
}
|
||||
Dictionary<Uri, HTTPCacheFileInfo> dictionary2 = HTTPCacheService.Library;
|
||||
HTTPCacheFileInfo httpcacheFileInfo = new HTTPCacheFileInfo(uri);
|
||||
throw new NullReferenceException();
|
||||
IL_63:
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600D256 RID: 53846 RVA: 0x00300F70 File Offset: 0x002FF170
|
||||
[Token(Token = "0x600D256")]
|
||||
[Address(RVA = "0x24121E0", Offset = "0x24111E0", VA = "0x1824121E0")]
|
||||
public static void BeginClear()
|
||||
{
|
||||
if (HTTPCacheService.IsSupported)
|
||||
{
|
||||
HTTPCacheService.SetupCacheFolder();
|
||||
WaitCallback <>9__33_ = HTTPCacheService.<>c.<>9__33_0;
|
||||
if (<>9__33_ == 0)
|
||||
{
|
||||
HTTPCacheService.<>c.<>9__33_0 = delegate(object param)
|
||||
{
|
||||
HTTPCacheService.ClearImpl(param);
|
||||
};
|
||||
}
|
||||
bool flag = ThreadPool.QueueUserWorkItem(<>9__33_);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600D257 RID: 53847 RVA: 0x00300FB8 File Offset: 0x002FF1B8
|
||||
[Token(Token = "0x600D257")]
|
||||
[Address(RVA = "0x2412550", Offset = "0x2411550", VA = "0x182412550")]
|
||||
private static void ClearImpl(object param)
|
||||
{
|
||||
int num = 0;
|
||||
if (HTTPCacheService.IsSupported)
|
||||
{
|
||||
IIOService ioservice = HTTPManager.IOService;
|
||||
IIOService ioservice2 = HTTPManager.IOService;
|
||||
num++;
|
||||
num++;
|
||||
HTTPCacheService.UsedIndexes.Clear();
|
||||
HTTPCacheService.library.Clear();
|
||||
HTTPCacheService.SaveLibrary();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600D258 RID: 53848 RVA: 0x0030101C File Offset: 0x002FF21C
|
||||
[Token(Token = "0x600D258")]
|
||||
[Address(RVA = "0x2412350", Offset = "0x2411350", VA = "0x182412350")]
|
||||
public static void BeginMaintainence(HTTPCacheMaintananceParams maintananceParam)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600D258)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.Caching.HTTPCacheService::BeginMaintainence(BestHTTP.Caching.HTTPCacheMaintananceParams)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_3B:
|
||||
stloc:ArgumentNullException(var_4_45, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("maintananceParams == null")))
|
||||
}
|
||||
|
||||
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
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: 0x0600D259 RID: 53849 RVA: 0x00301070 File Offset: 0x002FF270
|
||||
[Token(Token = "0x600D259")]
|
||||
[Address(RVA = "0x2412FA0", Offset = "0x2411FA0", VA = "0x182412FA0")]
|
||||
public static int GetCacheEntityCount()
|
||||
{
|
||||
int num;
|
||||
int count;
|
||||
do
|
||||
{
|
||||
num = 0;
|
||||
if (!HTTPCacheService.IsSupported)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
HTTPCacheService.CheckSetup();
|
||||
HTTPCacheService.LoadLibrary();
|
||||
Dictionary<Uri, HTTPCacheFileInfo> dictionary = HTTPCacheService.library;
|
||||
HTTPCacheService.LoadLibrary();
|
||||
count = HTTPCacheService.library.Count;
|
||||
Monitor.Exit(dictionary);
|
||||
}
|
||||
while (num != 0);
|
||||
return count;
|
||||
}
|
||||
|
||||
// Token: 0x0600D25A RID: 53850 RVA: 0x003010C8 File Offset: 0x002FF2C8
|
||||
[Token(Token = "0x600D25A")]
|
||||
[Address(RVA = "0x2413180", Offset = "0x2412180", VA = "0x182413180")]
|
||||
public static ulong GetCacheSize()
|
||||
{
|
||||
int num;
|
||||
do
|
||||
{
|
||||
num = 0;
|
||||
if (!HTTPCacheService.IsSupported)
|
||||
{
|
||||
break;
|
||||
}
|
||||
HTTPCacheService.CheckSetup();
|
||||
HTTPCacheService.LoadLibrary();
|
||||
Dictionary<Uri, HTTPCacheFileInfo> dictionary = HTTPCacheService.library;
|
||||
HTTPCacheService.LoadLibrary();
|
||||
Dictionary<Uri, HTTPCacheFileInfo> dictionary2 = HTTPCacheService.library;
|
||||
bool flag;
|
||||
if (flag)
|
||||
{
|
||||
}
|
||||
if (num != 0)
|
||||
{
|
||||
goto IL_51;
|
||||
}
|
||||
if (num != -1)
|
||||
{
|
||||
}
|
||||
Monitor.Exit(dictionary);
|
||||
}
|
||||
while (num != 0);
|
||||
throw new NullReferenceException();
|
||||
IL_51:
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600D25B RID: 53851 RVA: 0x0030112C File Offset: 0x002FF32C
|
||||
[Token(Token = "0x600D25B")]
|
||||
[Address(RVA = "0x24141B0", Offset = "0x24131B0", VA = "0x1824141B0")]
|
||||
private static void LoadLibrary()
|
||||
{
|
||||
for (;;)
|
||||
{
|
||||
int num = 0;
|
||||
if (!HTTPCacheService.IsSupported)
|
||||
{
|
||||
return;
|
||||
}
|
||||
HTTPCacheService.library = new Dictionary(new UriComparer());
|
||||
IIOService ioservice = HTTPManager.IOService;
|
||||
Dictionary<Uri, HTTPCacheFileInfo> dictionary = HTTPCacheService.library;
|
||||
IIOService ioservice2 = HTTPManager.IOService;
|
||||
BinaryReader binaryReader;
|
||||
ushort num2 = binaryReader.ReadUInt16();
|
||||
HTTPCacheService.NextNameIDX = (ulong)binaryReader.ReadInt64();
|
||||
ushort num3 = binaryReader.ReadUInt16();
|
||||
Uri uri;
|
||||
if (num < (int)num3)
|
||||
{
|
||||
decimal num4 = binaryReader.ReadDecimal();
|
||||
if (new HTTPCacheFileInfo(uri, binaryReader, (int)num2).IsExists())
|
||||
{
|
||||
break;
|
||||
}
|
||||
num++;
|
||||
}
|
||||
if (binaryReader != 0)
|
||||
{
|
||||
}
|
||||
if (num != 0)
|
||||
{
|
||||
goto IL_12F;
|
||||
}
|
||||
if (num != -1)
|
||||
{
|
||||
}
|
||||
num++;
|
||||
int num5;
|
||||
if (uri != 0)
|
||||
{
|
||||
num5 = 0;
|
||||
}
|
||||
if (num != 0)
|
||||
{
|
||||
goto IL_12F;
|
||||
}
|
||||
if (num != -1)
|
||||
{
|
||||
}
|
||||
Monitor.Exit(num5);
|
||||
if (num == 0)
|
||||
{
|
||||
goto Block_6;
|
||||
}
|
||||
}
|
||||
Dictionary<Uri, HTTPCacheFileInfo> dictionary2 = HTTPCacheService.library;
|
||||
throw new NullReferenceException();
|
||||
Block_6:
|
||||
HTTPCacheService.DeleteUnusedFiles();
|
||||
if (HTTPCacheService.IsSupported)
|
||||
{
|
||||
HTTPCacheService.SetupCacheFolder();
|
||||
WaitCallback waitCallback;
|
||||
if (HTTPCacheService.<>c.<>9__33_0 == 0)
|
||||
{
|
||||
waitCallback = delegate(object param)
|
||||
{
|
||||
HTTPCacheService.ClearImpl(param);
|
||||
};
|
||||
HTTPCacheService.<>c.<>9__33_0 = waitCallback;
|
||||
}
|
||||
bool flag = ThreadPool.QueueUserWorkItem(waitCallback);
|
||||
}
|
||||
return;
|
||||
IL_12F:
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600D25C RID: 53852 RVA: 0x00301270 File Offset: 0x002FF470
|
||||
[Token(Token = "0x600D25C")]
|
||||
[Address(RVA = "0x2414C50", Offset = "0x2413C50", VA = "0x182414C50")]
|
||||
internal static void SaveLibrary()
|
||||
{
|
||||
int num;
|
||||
do
|
||||
{
|
||||
num = 0;
|
||||
if (!HTTPCacheService.IsSupported)
|
||||
{
|
||||
break;
|
||||
}
|
||||
HTTPCacheService.LoadLibrary();
|
||||
Dictionary<Uri, HTTPCacheFileInfo> dictionary = HTTPCacheService.library;
|
||||
IIOService ioservice = HTTPManager.IOService;
|
||||
BinaryWriter binaryWriter;
|
||||
binaryWriter.Write(2);
|
||||
ulong nextNameIDX = HTTPCacheService.NextNameIDX;
|
||||
binaryWriter.Write((long)nextNameIDX);
|
||||
int count = HTTPCacheService.Library.Count;
|
||||
binaryWriter.Write((ushort)count);
|
||||
int num2 = 0;
|
||||
Dictionary<Uri, HTTPCacheFileInfo> dictionary2 = HTTPCacheService.Library;
|
||||
bool flag;
|
||||
if (flag)
|
||||
{
|
||||
int hashCode = num2.GetHashCode();
|
||||
}
|
||||
if (num != 0)
|
||||
{
|
||||
goto IL_AE;
|
||||
}
|
||||
if (num != -1)
|
||||
{
|
||||
}
|
||||
num++;
|
||||
if (binaryWriter != 0)
|
||||
{
|
||||
}
|
||||
if (num != 0)
|
||||
{
|
||||
goto IL_C0;
|
||||
}
|
||||
if (num != -1)
|
||||
{
|
||||
}
|
||||
num++;
|
||||
int num3 = 0;
|
||||
if (num != 0)
|
||||
{
|
||||
goto IL_C0;
|
||||
}
|
||||
if (num != -1)
|
||||
{
|
||||
}
|
||||
Monitor.Exit(num3);
|
||||
}
|
||||
while (num != 0);
|
||||
return;
|
||||
IL_AE:
|
||||
throw new NullReferenceException();
|
||||
IL_C0:
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600D25D RID: 53853 RVA: 0x00301344 File Offset: 0x002FF544
|
||||
[Token(Token = "0x600D25D")]
|
||||
[Address(RVA = "0x2415160", Offset = "0x2414160", VA = "0x182415160")]
|
||||
internal static void SetBodyLength(Uri uri, int bodyLength)
|
||||
{
|
||||
for (;;)
|
||||
{
|
||||
int num = 0;
|
||||
if (!HTTPCacheService.IsSupported)
|
||||
{
|
||||
return;
|
||||
}
|
||||
HTTPCacheService.LoadLibrary();
|
||||
Dictionary<Uri, HTTPCacheFileInfo> dictionary = HTTPCacheService.library;
|
||||
int num2 = 0;
|
||||
HTTPCacheService.LoadLibrary();
|
||||
if (!HTTPCacheService.library.TryGetValue(uri, num2))
|
||||
{
|
||||
break;
|
||||
}
|
||||
Monitor.Exit(dictionary);
|
||||
if (num == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
Dictionary<Uri, HTTPCacheFileInfo> dictionary2 = HTTPCacheService.Library;
|
||||
DateTime utcNow = DateTime.UtcNow;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600D25E RID: 53854 RVA: 0x003013D4 File Offset: 0x002FF5D4
|
||||
[Token(Token = "0x600D25E")]
|
||||
[Address(RVA = "0x2412B90", Offset = "0x2411B90", VA = "0x182412B90")]
|
||||
private static void DeleteUnusedFiles()
|
||||
{
|
||||
int num = 0;
|
||||
if (HTTPCacheService.IsSupported)
|
||||
{
|
||||
HTTPCacheService.CheckSetup();
|
||||
IIOService ioservice = HTTPManager.IOService;
|
||||
int num2 = 0;
|
||||
string fileName = Path.GetFileName(num);
|
||||
bool flag;
|
||||
if (flag)
|
||||
{
|
||||
Dictionary<Uri, HTTPCacheFileInfo> dictionary = HTTPCacheService.Library;
|
||||
Dictionary<ulong, HTTPCacheFileInfo> usedIndexes = HTTPCacheService.UsedIndexes;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
IIOService ioservice2 = HTTPManager.IOService;
|
||||
num2++;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x040085BB RID: 34235
|
||||
[Token(Token = "0x40085BB")]
|
||||
private const int LibraryVersion = 2;
|
||||
|
||||
// Token: 0x040085BC RID: 34236
|
||||
[Token(Token = "0x40085BC")]
|
||||
private static bool isSupported;
|
||||
|
||||
// Token: 0x040085BD RID: 34237
|
||||
[Token(Token = "0x40085BD")]
|
||||
private static bool IsSupportCheckDone;
|
||||
|
||||
// Token: 0x040085BE RID: 34238
|
||||
[Token(Token = "0x40085BE")]
|
||||
private static Dictionary<Uri, HTTPCacheFileInfo> library;
|
||||
|
||||
// Token: 0x040085BF RID: 34239
|
||||
[Token(Token = "0x40085BF")]
|
||||
private static Dictionary<ulong, HTTPCacheFileInfo> UsedIndexes = new Dictionary();
|
||||
|
||||
// Token: 0x040085C2 RID: 34242
|
||||
[Token(Token = "0x40085C2")]
|
||||
private static bool InClearThread;
|
||||
|
||||
// Token: 0x040085C3 RID: 34243
|
||||
[Token(Token = "0x40085C3")]
|
||||
private static bool InMaintainenceThread;
|
||||
|
||||
// Token: 0x040085C4 RID: 34244
|
||||
[Token(Token = "0x40085C4")]
|
||||
private static ulong NextNameIDX;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.Caching
|
||||
{
|
||||
// Token: 0x020020A4 RID: 8356
|
||||
[Token(Token = "0x20020A4")]
|
||||
public sealed class UriComparer : IEqualityComparer<Uri>
|
||||
{
|
||||
// Token: 0x0600D240 RID: 53824 RVA: 0x0030084C File Offset: 0x002FEA4C
|
||||
[Token(Token = "0x600D240")]
|
||||
[Address(RVA = "0x241CDF0", Offset = "0x241BDF0", VA = "0x18241CDF0", Slot = "4")]
|
||||
public bool Equals(Uri x, Uri y)
|
||||
{
|
||||
int num;
|
||||
return num == 0;
|
||||
}
|
||||
|
||||
// Token: 0x0600D241 RID: 53825 RVA: 0x00300860 File Offset: 0x002FEA60
|
||||
[Token(Token = "0x600D241")]
|
||||
[Address(RVA = "0x241CE70", Offset = "0x241BE70", VA = "0x18241CE70", Slot = "5")]
|
||||
public int GetHashCode(Uri uri)
|
||||
{
|
||||
TypeCode typeCode = ((IConvertible)uri.GetHashCode()).GetTypeCode();
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600D242 RID: 53826 RVA: 0x00300880 File Offset: 0x002FEA80
|
||||
[Token(Token = "0x600D242")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public UriComparer()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user