Files
2026-04-08 23:40:05 +02:00

396 lines
18 KiB
C#

using System;
using System.Runtime.InteropServices;
using BestHTTP.Logger;
using Cpp2IlInjected;
namespace BestHTTP
{
// Token: 0x0200129A RID: 4762
[Token(Token = "0x200129A")]
[StructLayout(3)]
internal abstract class ConnectionBase : IDisposable
{
// Token: 0x17001316 RID: 4886
// (get) Token: 0x06007669 RID: 30313 RVA: 0x001873B4 File Offset: 0x001855B4
// (set) Token: 0x0600766A RID: 30314 RVA: 0x001873C8 File Offset: 0x001855C8
[Token(Token = "0x17001316")]
public string ServerAddress
{
[Token(Token = "0x6007669")]
[Address(RVA = "0x3C39A0", Offset = "0x3C23A0", VA = "0x1803C39A0")]
get;
[Token(Token = "0x600766A")]
[Address(RVA = "0x3C39B0", Offset = "0x3C23B0", VA = "0x1803C39B0")]
protected set;
}
// Token: 0x17001317 RID: 4887
// (get) Token: 0x0600766B RID: 30315 RVA: 0x001873DC File Offset: 0x001855DC
// (set) Token: 0x0600766C RID: 30316 RVA: 0x001873F0 File Offset: 0x001855F0
[Token(Token = "0x17001317")]
public HTTPConnectionStates State
{
[Token(Token = "0x600766B")]
[Address(RVA = "0x3EE8D0", Offset = "0x3ED2D0", VA = "0x1803EE8D0")]
get;
[Token(Token = "0x600766C")]
[Address(RVA = "0x4F8C20", Offset = "0x4F7620", VA = "0x1804F8C20")]
protected set;
}
// Token: 0x17001318 RID: 4888
// (get) Token: 0x0600766D RID: 30317 RVA: 0x00187404 File Offset: 0x00185604
[Token(Token = "0x17001318")]
public bool IsFree
{
[Token(Token = "0x600766D")]
[Address(RVA = "0x1F01820", Offset = "0x1F00220", VA = "0x181F01820")]
get
{
HTTPConnectionStates httpconnectionStates = this.<State>k__BackingField;
return httpconnectionStates == HTTPConnectionStates.Initial || httpconnectionStates == HTTPConnectionStates.Free;
}
}
// Token: 0x17001319 RID: 4889
// (get) Token: 0x0600766E RID: 30318 RVA: 0x00187424 File Offset: 0x00185624
[Token(Token = "0x17001319")]
public bool IsActive
{
[Token(Token = "0x600766E")]
[Address(RVA = "0x1F01800", Offset = "0x1F00200", VA = "0x181F01800")]
get
{
HTTPConnectionStates httpconnectionStates = this.<State>k__BackingField;
return 0 < 6;
}
}
// Token: 0x1700131A RID: 4890
// (get) Token: 0x0600766F RID: 30319 RVA: 0x0018743C File Offset: 0x0018563C
// (set) Token: 0x06007670 RID: 30320 RVA: 0x00187450 File Offset: 0x00185650
[Token(Token = "0x1700131A")]
public HTTPRequest CurrentRequest
{
[Token(Token = "0x600766F")]
[Address(RVA = "0x3C1220", Offset = "0x3BFC20", VA = "0x1803C1220")]
get;
[Token(Token = "0x6007670")]
[Address(RVA = "0x3C1260", Offset = "0x3BFC60", VA = "0x1803C1260")]
protected set;
}
// Token: 0x1700131B RID: 4891
// (get) Token: 0x06007671 RID: 30321 RVA: 0x00187464 File Offset: 0x00185664
[Token(Token = "0x1700131B")]
public virtual bool IsRemovable
{
[Token(Token = "0x6007671")]
[Address(RVA = "0x1F01840", Offset = "0x1F00240", VA = "0x181F01840", 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: 0x1700131C RID: 4892
// (get) Token: 0x06007672 RID: 30322 RVA: 0x001874AC File Offset: 0x001856AC
// (set) Token: 0x06007673 RID: 30323 RVA: 0x001874C0 File Offset: 0x001856C0
[Token(Token = "0x1700131C")]
public DateTime StartTime
{
[Token(Token = "0x6007672")]
[Address(RVA = "0x3C1230", Offset = "0x3BFC30", VA = "0x1803C1230")]
get;
[Token(Token = "0x6007673")]
[Address(RVA = "0x3C1270", Offset = "0x3BFC70", VA = "0x1803C1270")]
protected set;
}
// Token: 0x1700131D RID: 4893
// (get) Token: 0x06007674 RID: 30324 RVA: 0x001874D4 File Offset: 0x001856D4
// (set) Token: 0x06007675 RID: 30325 RVA: 0x001874E8 File Offset: 0x001856E8
[Token(Token = "0x1700131D")]
public DateTime TimedOutStart
{
[Token(Token = "0x6007674")]
[Address(RVA = "0x3C1250", Offset = "0x3BFC50", VA = "0x1803C1250")]
get;
[Token(Token = "0x6007675")]
[Address(RVA = "0x3C1290", Offset = "0x3BFC90", VA = "0x1803C1290")]
protected set;
}
// Token: 0x1700131E RID: 4894
// (get) Token: 0x06007676 RID: 30326 RVA: 0x001874FC File Offset: 0x001856FC
[Token(Token = "0x1700131E")]
public bool HasProxy
{
[Token(Token = "0x6007676")]
[Address(RVA = "0x1F017E0", Offset = "0x1F001E0", VA = "0x181F017E0")]
get
{
/*
An exception occurred when decompiling this method (06007676)
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: 0x1700131F RID: 4895
// (get) Token: 0x06007677 RID: 30327 RVA: 0x00187514 File Offset: 0x00185714
// (set) Token: 0x06007678 RID: 30328 RVA: 0x00187528 File Offset: 0x00185728
[Token(Token = "0x1700131F")]
public Uri LastProcessedUri
{
[Token(Token = "0x6007677")]
[Address(RVA = "0x3EE8E0", Offset = "0x3ED2E0", VA = "0x1803EE8E0")]
get;
[Token(Token = "0x6007678")]
[Address(RVA = "0x421E00", Offset = "0x420800", VA = "0x180421E00")]
protected set;
}
// Token: 0x06007679 RID: 30329 RVA: 0x0018753C File Offset: 0x0018573C
[Token(Token = "0x6007679")]
[Address(RVA = "0x1F016D0", Offset = "0x1F000D0", VA = "0x181F016D0")]
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: 0x0600767A RID: 30330 RVA: 0x00187578 File Offset: 0x00185778
[Token(Token = "0x600767A")]
[Address(RVA = "0x1F01750", Offset = "0x1F00150", VA = "0x181F01750")]
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: 0x0600767B RID: 30331
[Token(Token = "0x600767B")]
[Address(Slot = "6")]
internal abstract void Abort(HTTPConnectionStates hTTPConnectionStates);
// Token: 0x0600767C RID: 30332 RVA: 0x001875B4 File Offset: 0x001857B4
[Token(Token = "0x600767C")]
[Address(RVA = "0x1F01450", Offset = "0x1EFFE50", VA = "0x181F01450")]
internal void Process(HTTPRequest request)
{
/*
An exception occurred when decompiling this method (0600767C)
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: 0x0600767D RID: 30333 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600767D")]
[Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60", Slot = "7")]
protected virtual void ThreadFunc(object param)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600767E RID: 30334 RVA: 0x00187610 File Offset: 0x00185810
[Token(Token = "0x600767E")]
[Address(RVA = "0x1F01210", Offset = "0x1EFFC10", VA = "0x181F01210")]
internal void HandleProgressCallback()
{
ILogger logger = HTTPManager.Logger;
ILogger logger2 = HTTPManager.Logger;
this.<CurrentRequest>k__BackingField.<UploadProgressChanged>k__BackingField = false;
}
// Token: 0x0600767F RID: 30335 RVA: 0x0018765C File Offset: 0x0018585C
[Token(Token = "0x600767F")]
[Address(RVA = "0x1F01110", Offset = "0x1EFFB10", VA = "0x181F01110")]
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: 0x06007680 RID: 30336 RVA: 0x001876C0 File Offset: 0x001858C0
[Token(Token = "0x6007680")]
[Address(RVA = "0x1F01610", Offset = "0x1F00010", VA = "0x181F01610")]
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: 0x06007681 RID: 30337 RVA: 0x00187720 File Offset: 0x00185920
[Token(Token = "0x6007681")]
[Address(RVA = "0x1F01560", Offset = "0x1EFFF60", VA = "0x181F01560")]
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: 0x17001320 RID: 4896
// (get) Token: 0x06007682 RID: 30338 RVA: 0x00187784 File Offset: 0x00185984
// (set) Token: 0x06007683 RID: 30339 RVA: 0x00187798 File Offset: 0x00185998
[Token(Token = "0x17001320")]
private protected bool IsDisposed
{
[Token(Token = "0x6007682")]
[Address(RVA = "0x5DE430", Offset = "0x5DCE30", VA = "0x1805DE430")]
protected get;
[Token(Token = "0x6007683")]
[Address(RVA = "0x5DE460", Offset = "0x5DCE60", VA = "0x1805DE460")]
private set;
}
// Token: 0x06007684 RID: 30340 RVA: 0x001877AC File Offset: 0x001859AC
[Token(Token = "0x6007684")]
[Address(RVA = "0x1F01000", Offset = "0x1EFFA00", VA = "0x181F01000", Slot = "4")]
public void Dispose()
{
GC.SuppressFinalize(this);
}
// Token: 0x06007685 RID: 30341 RVA: 0x001877C0 File Offset: 0x001859C0
[Token(Token = "0x6007685")]
[Address(RVA = "0x1F00FF0", Offset = "0x1EFF9F0", VA = "0x181F00FF0", Slot = "8")]
protected virtual void Dispose(bool disposing)
{
this.<IsDisposed>k__BackingField = true;
}
// Token: 0x06007686 RID: 30342 RVA: 0x001877D4 File Offset: 0x001859D4
[Token(Token = "0x6007686")]
[Address(RVA = "0x1F01070", Offset = "0x1EFFA70", VA = "0x181F01070", Slot = "1")]
protected override void Finalize()
{
int num;
do
{
num = 0;
int num2 = 0;
this.ThreadFunc(num2);
int num3 = 0;
this.ThreadFunc(num3);
if (num != -1)
{
}
}
while (num != 0);
}
// Token: 0x040055DA RID: 21978
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x40055DA")]
protected DateTime LastProcessTime;
// Token: 0x040055DB RID: 21979
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x40055DB")]
protected HTTPConnectionRecycledDelegate OnConnectionRecycled;
// Token: 0x040055DC RID: 21980
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
[Token(Token = "0x40055DC")]
private bool IsThreaded;
}
}