Files
Aug2021-Cpp2IL-Dump/Assembly-CSharp/BestHTTP/ConnectionBase.cs
T
2026-04-10 22:50:51 +02:00

391 lines
18 KiB
C#

using System;
using BestHTTP.Logger;
using Cpp2IlInjected;
namespace BestHTTP
{
// Token: 0x0200188B RID: 6283
[Token(Token = "0x200188B")]
internal abstract class ConnectionBase : IDisposable
{
// Token: 0x1700172F RID: 5935
// (get) Token: 0x060092E9 RID: 37609 RVA: 0x001E17C0 File Offset: 0x001DF9C0
// (set) Token: 0x060092EA RID: 37610 RVA: 0x001E17D4 File Offset: 0x001DF9D4
[Token(Token = "0x1700172F")]
public string ServerAddress
{
[Token(Token = "0x60092E9")]
[Address(RVA = "0x3F6E20", Offset = "0x3F5C20", VA = "0x1803F6E20")]
get;
[Token(Token = "0x60092EA")]
[Address(RVA = "0x3F7200", Offset = "0x3F6000", VA = "0x1803F7200")]
protected set;
}
// Token: 0x17001730 RID: 5936
// (get) Token: 0x060092EB RID: 37611 RVA: 0x001E17E8 File Offset: 0x001DF9E8
// (set) Token: 0x060092EC RID: 37612 RVA: 0x001E17FC File Offset: 0x001DF9FC
[Token(Token = "0x17001730")]
public HTTPConnectionStates State
{
[Token(Token = "0x60092EB")]
[Address(RVA = "0x40B720", Offset = "0x40A520", VA = "0x18040B720")]
get;
[Token(Token = "0x60092EC")]
[Address(RVA = "0x41F740", Offset = "0x41E540", VA = "0x18041F740")]
protected set;
}
// Token: 0x17001731 RID: 5937
// (get) Token: 0x060092ED RID: 37613 RVA: 0x001E1810 File Offset: 0x001DFA10
[Token(Token = "0x17001731")]
public bool IsFree
{
[Token(Token = "0x60092ED")]
[Address(RVA = "0x1961C30", Offset = "0x1960A30", VA = "0x181961C30")]
get
{
HTTPConnectionStates httpconnectionStates = this.<State>k__BackingField;
return httpconnectionStates == HTTPConnectionStates.Initial || httpconnectionStates == HTTPConnectionStates.Free;
}
}
// Token: 0x17001732 RID: 5938
// (get) Token: 0x060092EE RID: 37614 RVA: 0x001E1830 File Offset: 0x001DFA30
[Token(Token = "0x17001732")]
public bool IsActive
{
[Token(Token = "0x60092EE")]
[Address(RVA = "0x1961C10", Offset = "0x1960A10", VA = "0x181961C10")]
get
{
HTTPConnectionStates httpconnectionStates = this.<State>k__BackingField;
return 0 < 6;
}
}
// Token: 0x17001733 RID: 5939
// (get) Token: 0x060092EF RID: 37615 RVA: 0x001E1848 File Offset: 0x001DFA48
// (set) Token: 0x060092F0 RID: 37616 RVA: 0x001E185C File Offset: 0x001DFA5C
[Token(Token = "0x17001733")]
public HTTPRequest CurrentRequest
{
[Token(Token = "0x60092EF")]
[Address(RVA = "0x3F6400", Offset = "0x3F5200", VA = "0x1803F6400")]
get;
[Token(Token = "0x60092F0")]
[Address(RVA = "0x460F90", Offset = "0x45FD90", VA = "0x180460F90")]
protected set;
}
// Token: 0x17001734 RID: 5940
// (get) Token: 0x060092F1 RID: 37617 RVA: 0x001E1870 File Offset: 0x001DFA70
[Token(Token = "0x17001734")]
public virtual bool IsRemovable
{
[Token(Token = "0x60092F1")]
[Address(RVA = "0x1961C50", Offset = "0x1960A50", VA = "0x181961C50", Slot = "5")]
get
{
HTTPConnectionStates httpconnectionStates = this.<State>k__BackingField;
if (httpconnectionStates == HTTPConnectionStates.Initial || httpconnectionStates != HTTPConnectionStates.Free)
{
}
DateTime utcNow = DateTime.UtcNow;
DateTime lastProcessTime = this.LastProcessTime;
TimeSpan timeSpan = utcNow - lastProcessTime;
TimeSpan <MaxConnectionIdleTime>k__BackingField = HTTPManager.<MaxConnectionIdleTime>k__BackingField;
return timeSpan > <MaxConnectionIdleTime>k__BackingField;
}
}
// Token: 0x17001735 RID: 5941
// (get) Token: 0x060092F2 RID: 37618 RVA: 0x001E18B8 File Offset: 0x001DFAB8
// (set) Token: 0x060092F3 RID: 37619 RVA: 0x001E18CC File Offset: 0x001DFACC
[Token(Token = "0x17001735")]
public DateTime StartTime
{
[Token(Token = "0x60092F2")]
[Address(RVA = "0x3F63E0", Offset = "0x3F51E0", VA = "0x1803F63E0")]
get;
[Token(Token = "0x60092F3")]
[Address(RVA = "0x409C60", Offset = "0x408A60", VA = "0x180409C60")]
protected set;
}
// Token: 0x17001736 RID: 5942
// (get) Token: 0x060092F4 RID: 37620 RVA: 0x001E18E0 File Offset: 0x001DFAE0
// (set) Token: 0x060092F5 RID: 37621 RVA: 0x001E18F4 File Offset: 0x001DFAF4
[Token(Token = "0x17001736")]
public DateTime TimedOutStart
{
[Token(Token = "0x60092F4")]
[Address(RVA = "0x3FA180", Offset = "0x3F8F80", VA = "0x1803FA180")]
get;
[Token(Token = "0x60092F5")]
[Address(RVA = "0x4437E0", Offset = "0x4425E0", VA = "0x1804437E0")]
protected set;
}
// Token: 0x17001737 RID: 5943
// (get) Token: 0x060092F6 RID: 37622 RVA: 0x001E1908 File Offset: 0x001DFB08
[Token(Token = "0x17001737")]
public bool HasProxy
{
[Token(Token = "0x60092F6")]
[Address(RVA = "0x1961BF0", Offset = "0x19609F0", VA = "0x181961BF0")]
get
{
/*
An exception occurred when decompiling this method (060092F6)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.ConnectionBase::get_HasProxy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_00:
brtrue(IL_00, cne:bool(ldfld:HTTPRequest(ConnectionBase::<CurrentRequest>k__BackingField, ldloc:ConnectionBase(this)), ldc.i4:int32[exp:HTTPRequest](0)))
}
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: 0x17001738 RID: 5944
// (get) Token: 0x060092F7 RID: 37623 RVA: 0x001E1920 File Offset: 0x001DFB20
// (set) Token: 0x060092F8 RID: 37624 RVA: 0x001E1934 File Offset: 0x001DFB34
[Token(Token = "0x17001738")]
public Uri LastProcessedUri
{
[Token(Token = "0x60092F7")]
[Address(RVA = "0x3F63D0", Offset = "0x3F51D0", VA = "0x1803F63D0")]
get;
[Token(Token = "0x60092F8")]
[Address(RVA = "0x5329E0", Offset = "0x5317E0", VA = "0x1805329E0")]
protected set;
}
// Token: 0x060092F9 RID: 37625 RVA: 0x001E1948 File Offset: 0x001DFB48
[Token(Token = "0x60092F9")]
[Address(RVA = "0x1961AE0", Offset = "0x19608E0", VA = "0x181961AE0")]
public ConnectionBase(string serverAddress)
{
int num = 0;
this.ThreadFunc(num);
this.ServerAddress = serverAddress;
this.State = (HTTPConnectionStates)((ulong)0L);
DateTime utcNow = DateTime.UtcNow;
this.LastProcessTime = utcNow;
this.IsThreaded = true;
}
// Token: 0x060092FA RID: 37626 RVA: 0x001E1984 File Offset: 0x001DFB84
[Token(Token = "0x60092FA")]
[Address(RVA = "0x1961B60", Offset = "0x1960960", VA = "0x181961B60")]
public ConnectionBase(string serverAddress, bool threaded)
{
int num = 0;
this.ThreadFunc(num);
this.ServerAddress = serverAddress;
this.State = (HTTPConnectionStates)((ulong)0L);
DateTime utcNow = DateTime.UtcNow;
this.LastProcessTime = utcNow;
this.IsThreaded = threaded;
}
// Token: 0x060092FB RID: 37627
[Token(Token = "0x60092FB")]
[Address(Slot = "6")]
internal abstract void Abort(HTTPConnectionStates hTTPConnectionStates);
// Token: 0x060092FC RID: 37628 RVA: 0x001E19C0 File Offset: 0x001DFBC0
[Token(Token = "0x60092FC")]
[Address(RVA = "0x1961860", Offset = "0x1960660", VA = "0x181961860")]
internal void Process(HTTPRequest request)
{
/*
An exception occurred when decompiling this method (060092FC)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.ConnectionBase::Process(BestHTTP.HTTPRequest)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_41:
stloc:Exception(var_4_4B, newobj:Exception(Exception::.ctor, ldstr:string("Connection already processing a request!")))
}
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: 0x060092FD RID: 37629 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x60092FD")]
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "7")]
protected virtual void ThreadFunc(object param)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x060092FE RID: 37630 RVA: 0x001E1A1C File Offset: 0x001DFC1C
[Token(Token = "0x60092FE")]
[Address(RVA = "0x1961620", Offset = "0x1960420", VA = "0x181961620")]
internal void HandleProgressCallback()
{
ILogger logger = HTTPManager.Logger;
ILogger logger2 = HTTPManager.Logger;
this.<CurrentRequest>k__BackingField.<UploadProgressChanged>k__BackingField = false;
}
// Token: 0x060092FF RID: 37631 RVA: 0x001E1A68 File Offset: 0x001DFC68
[Token(Token = "0x60092FF")]
[Address(RVA = "0x1961520", Offset = "0x1960320", VA = "0x181961520")]
internal void HandleCallback()
{
this.HandleProgressCallback();
HTTPRequest httprequest = this.<CurrentRequest>k__BackingField;
if (this.<State>k__BackingField != HTTPConnectionStates.Upgraded)
{
httprequest.CallCallback();
}
if (httprequest != 0)
{
HTTPResponse <Response>k__BackingField = httprequest.<Response>k__BackingField;
if (<Response>k__BackingField != 0 && <Response>k__BackingField.<IsUpgraded>k__BackingField)
{
httprequest.UpgradeCallback();
}
}
this.<State>k__BackingField = (HTTPConnectionStates)((ulong)4L);
ILogger logger = HTTPManager.Logger;
}
// Token: 0x06009300 RID: 37632 RVA: 0x001E1ACC File Offset: 0x001DFCCC
[Token(Token = "0x6009300")]
[Address(RVA = "0x1961A20", Offset = "0x1960820", VA = "0x181961A20")]
internal void Recycle(HTTPConnectionRecycledDelegate onConnectionRecycled)
{
this.OnConnectionRecycled = onConnectionRecycled;
if (this.<State>k__BackingField == HTTPConnectionStates.Redirected)
{
DateTime minValue = DateTime.MinValue;
this.LastProcessTime = minValue;
HTTPRequest httprequest = this.<CurrentRequest>k__BackingField;
this.<State>k__BackingField = (HTTPConnectionStates)((ulong)6L);
if (httprequest != 0)
{
httprequest.Dispose();
}
HTTPConnectionRecycledDelegate onConnectionRecycled2 = this.OnConnectionRecycled;
this.<CurrentRequest>k__BackingField = (ulong)0L;
this.OnConnectionRecycled = (ulong)0L;
}
}
// Token: 0x06009301 RID: 37633 RVA: 0x001E1B2C File Offset: 0x001DFD2C
[Token(Token = "0x6009301")]
[Address(RVA = "0x1961970", Offset = "0x1960770", VA = "0x181961970")]
protected void RecycleNow()
{
if (this.<State>k__BackingField <= HTTPConnectionStates.Processing)
{
DateTime minValue = DateTime.MinValue;
this.LastProcessTime = minValue;
}
HTTPRequest httprequest = this.<CurrentRequest>k__BackingField;
this.<State>k__BackingField = (HTTPConnectionStates)((ulong)6L);
if (httprequest != 0)
{
httprequest.Dispose();
}
HTTPConnectionRecycledDelegate onConnectionRecycled = this.OnConnectionRecycled;
this.<CurrentRequest>k__BackingField = (ulong)0L;
if (onConnectionRecycled != 0)
{
onConnectionRecycled(this);
this.OnConnectionRecycled = (ulong)0L;
}
}
// Token: 0x17001739 RID: 5945
// (get) Token: 0x06009302 RID: 37634 RVA: 0x001E1B90 File Offset: 0x001DFD90
// (set) Token: 0x06009303 RID: 37635 RVA: 0x001E1BA4 File Offset: 0x001DFDA4
[Token(Token = "0x17001739")]
private protected bool IsDisposed
{
[Token(Token = "0x6009302")]
[Address(RVA = "0x781F10", Offset = "0x780D10", VA = "0x180781F10")]
protected get;
[Token(Token = "0x6009303")]
[Address(RVA = "0x536B80", Offset = "0x535980", VA = "0x180536B80")]
private set;
}
// Token: 0x06009304 RID: 37636 RVA: 0x001E1BB8 File Offset: 0x001DFDB8
[Token(Token = "0x6009304")]
[Address(RVA = "0x1961430", Offset = "0x1960230", VA = "0x181961430", Slot = "4")]
public void Dispose()
{
GC.SuppressFinalize(this);
}
// Token: 0x06009305 RID: 37637 RVA: 0x001E1BCC File Offset: 0x001DFDCC
[Token(Token = "0x6009305")]
[Address(RVA = "0x1961420", Offset = "0x1960220", VA = "0x181961420", Slot = "8")]
protected virtual void Dispose(bool disposing)
{
this.<IsDisposed>k__BackingField = true;
}
// Token: 0x06009306 RID: 37638 RVA: 0x001E1BE0 File Offset: 0x001DFDE0
[Token(Token = "0x6009306")]
[Address(RVA = "0x19614A0", Offset = "0x19602A0", VA = "0x1819614A0", Slot = "1")]
protected override void Finalize()
{
int num;
do
{
num = 0;
int num2 = 0;
this.ThreadFunc(num2);
int num3 = 0;
this.ThreadFunc(num3);
}
while (num != 0);
}
// Token: 0x04006474 RID: 25716
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4006474")]
protected DateTime LastProcessTime;
// Token: 0x04006475 RID: 25717
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4006475")]
protected HTTPConnectionRecycledDelegate OnConnectionRecycled;
// Token: 0x04006476 RID: 25718
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4006476")]
private bool IsThreaded;
}
}