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

782 lines
31 KiB
C#

using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using Cpp2IlInjected;
namespace BestHTTP.PlatformSupport.TcpClient.General
{
// Token: 0x02001F74 RID: 8052
[Token(Token = "0x2001F74")]
public class TcpClient : IDisposable
{
// Token: 0x0600CBB7 RID: 52151 RVA: 0x002EADE0 File Offset: 0x002E8FE0
[Token(Token = "0x600CBB7")]
[Address(RVA = "0x26558B0", Offset = "0x26546B0", VA = "0x1826558B0")]
private void Init(AddressFamily family)
{
Socket socket = this.client;
this.active = false;
if (socket != 0)
{
socket.Close();
this.client = (ulong)0L;
}
Socket socket2;
this.client = socket2;
}
// Token: 0x0600CBB8 RID: 52152 RVA: 0x002EAE18 File Offset: 0x002E9018
[Token(Token = "0x600CBB8")]
[Address(RVA = "0x2655CE0", Offset = "0x2654AE0", VA = "0x182655CE0")]
public TcpClient()
{
this.Init(AddressFamily.InterNetwork);
TimeSpan timeSpan;
this.ConnectTimeout = timeSpan;
}
// Token: 0x0600CBB9 RID: 52153 RVA: 0x002EAE3C File Offset: 0x002E903C
[Token(Token = "0x600CBB9")]
[Address(RVA = "0x2655C20", Offset = "0x2654A20", VA = "0x182655C20")]
public TcpClient(AddressFamily family)
{
/*
An exception occurred when decompiling this method (0600CBB9)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.PlatformSupport.TcpClient.General.TcpClient::.ctor(System.Net.Sockets.AddressFamily)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_19:
stloc:ArgumentException(var_2_28, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Family must be InterNetwork or InterNetworkV6"), ldstr:string("family")))
}
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: 0x0600CBBA RID: 52154 RVA: 0x002EAE74 File Offset: 0x002E9074
[Token(Token = "0x600CBBA")]
[Address(RVA = "0x2655D60", Offset = "0x2654B60", VA = "0x182655D60")]
public TcpClient(IPEndPoint localEP)
{
string text = localEP.ToString();
TimeSpan timeSpan;
this.ConnectTimeout = timeSpan;
}
// Token: 0x0600CBBB RID: 52155 RVA: 0x002EAE9C File Offset: 0x002E909C
[Token(Token = "0x600CBBB")]
[Address(RVA = "0x2655E00", Offset = "0x2654C00", VA = "0x182655E00")]
public TcpClient(string hostname, int port)
{
TimeSpan timeSpan;
this.ConnectTimeout = timeSpan;
this.Connect(hostname, port);
}
// Token: 0x1700205B RID: 8283
// (get) Token: 0x0600CBBC RID: 52156 RVA: 0x002EAEC0 File Offset: 0x002E90C0
// (set) Token: 0x0600CBBD RID: 52157 RVA: 0x002EAED4 File Offset: 0x002E90D4
[Token(Token = "0x1700205B")]
protected bool Active
{
[Token(Token = "0x600CBBC")]
[Address(RVA = "0x42C2C0", Offset = "0x42B0C0", VA = "0x18042C2C0")]
get
{
return this.active;
}
[Token(Token = "0x600CBBD")]
[Address(RVA = "0x43DE90", Offset = "0x43CC90", VA = "0x18043DE90")]
set
{
this.active = value;
}
}
// Token: 0x1700205C RID: 8284
// (get) Token: 0x0600CBBE RID: 52158 RVA: 0x002EAEE8 File Offset: 0x002E90E8
// (set) Token: 0x0600CBBF RID: 52159 RVA: 0x002EAEFC File Offset: 0x002E90FC
[Token(Token = "0x1700205C")]
public Socket Client
{
[Token(Token = "0x600CBBE")]
[Address(RVA = "0x3F6400", Offset = "0x3F5200", VA = "0x1803F6400")]
get
{
return this.client;
}
[Token(Token = "0x600CBBF")]
[Address(RVA = "0x2655BA0", Offset = "0x26549A0", VA = "0x182655BA0")]
set
{
this.client = value;
this.stream = (ulong)0L;
}
}
// Token: 0x1700205D RID: 8285
// (get) Token: 0x0600CBC0 RID: 52160 RVA: 0x002EAF1C File Offset: 0x002E911C
[Token(Token = "0x1700205D")]
public int Available
{
[Token(Token = "0x600CBC0")]
[Address(RVA = "0x2655E90", Offset = "0x2654C90", VA = "0x182655E90")]
get
{
return this.client.Available;
}
}
// Token: 0x1700205E RID: 8286
// (get) Token: 0x0600CBC1 RID: 52161 RVA: 0x002EAF3C File Offset: 0x002E913C
[Token(Token = "0x1700205E")]
public bool Connected
{
[Token(Token = "0x600CBC1")]
[Address(RVA = "0x2655EB0", Offset = "0x2654CB0", VA = "0x182655EB0")]
get
{
return this.client.is_connected;
}
}
// Token: 0x0600CBC2 RID: 52162 RVA: 0x002EAF5C File Offset: 0x002E915C
[Token(Token = "0x600CBC2")]
[Address(RVA = "0x2655940", Offset = "0x2654740", VA = "0x182655940")]
public bool IsConnected()
{
Socket socket = this.client;
int num = 0;
if (socket.Poll(1, (SelectMode)num))
{
int available = this.client.Available;
}
throw new NullReferenceException();
}
// Token: 0x1700205F RID: 8287
// (get) Token: 0x0600CBC3 RID: 52163 RVA: 0x002EAF98 File Offset: 0x002E9198
// (set) Token: 0x0600CBC4 RID: 52164 RVA: 0x002EAFB8 File Offset: 0x002E91B8
[Token(Token = "0x1700205F")]
public bool ExclusiveAddressUse
{
[Token(Token = "0x600CBC3")]
[Address(RVA = "0x2655ED0", Offset = "0x2654CD0", VA = "0x182655ED0")]
get
{
return this.client.ExclusiveAddressUse;
}
[Token(Token = "0x600CBC4")]
[Address(RVA = "0x2656270", Offset = "0x2655070", VA = "0x182656270")]
set
{
this.client.ExclusiveAddressUse = value;
}
}
// Token: 0x0600CBC5 RID: 52165 RVA: 0x002EAFD8 File Offset: 0x002E91D8
[Token(Token = "0x600CBC5")]
[Address(RVA = "0x2655BA0", Offset = "0x26549A0", VA = "0x182655BA0")]
internal void SetTcpClient(Socket s)
{
this.client = s;
this.stream = (ulong)0L;
}
// Token: 0x17002060 RID: 8288
// (get) Token: 0x0600CBC6 RID: 52166 RVA: 0x002EAFF8 File Offset: 0x002E91F8
// (set) Token: 0x0600CBC7 RID: 52167 RVA: 0x002EB038 File Offset: 0x002E9238
[Token(Token = "0x17002060")]
public LingerOption LingerState
{
[Token(Token = "0x600CBC6")]
[Address(RVA = "0x2655EF0", Offset = "0x2654CF0", VA = "0x182655EF0")]
get
{
while (this.values == (TcpClient.Properties)1)
{
object socketOption = this.client.GetSocketOption((SocketOptionLevel)((uint)65535), (SocketOptionName)((uint)128));
if (socketOption == 0)
{
}
if (socketOption != 0)
{
break;
}
}
return this.linger_state;
}
[Token(Token = "0x600CBC7")]
[Address(RVA = "0x2656290", Offset = "0x2655090", VA = "0x182656290")]
set
{
Socket socket = this.client;
if (socket.is_connected)
{
socket.SetSocketOption((SocketOptionLevel)((uint)65535), (SocketOptionName)((uint)128), value);
return;
}
this.linger_state = value;
}
}
// Token: 0x17002061 RID: 8289
// (get) Token: 0x0600CBC8 RID: 52168 RVA: 0x002EB078 File Offset: 0x002E9278
// (set) Token: 0x0600CBC9 RID: 52169 RVA: 0x002EB0A4 File Offset: 0x002E92A4
[Token(Token = "0x17002061")]
public bool NoDelay
{
[Token(Token = "0x600CBC8")]
[Address(RVA = "0x2655FA0", Offset = "0x2654DA0", VA = "0x182655FA0")]
get
{
if (this.values == (TcpClient.Properties)2)
{
object socketOption = this.client.GetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.Debug);
}
return this.no_delay;
}
[Token(Token = "0x600CBC9")]
[Address(RVA = "0x26562E0", Offset = "0x26550E0", VA = "0x1826562E0")]
set
{
if (this.client.is_connected)
{
return;
}
this.no_delay = value;
}
}
// Token: 0x17002062 RID: 8290
// (get) Token: 0x0600CBCA RID: 52170 RVA: 0x002EB0D0 File Offset: 0x002E92D0
// (set) Token: 0x0600CBCB RID: 52171 RVA: 0x002EB108 File Offset: 0x002E9308
[Token(Token = "0x17002062")]
public int ReceiveBufferSize
{
[Token(Token = "0x600CBCA")]
[Address(RVA = "0x2656030", Offset = "0x2654E30", VA = "0x182656030")]
get
{
if (this.values == (TcpClient.Properties)4)
{
object socketOption = this.client.GetSocketOption((SocketOptionLevel)((uint)65535), (SocketOptionName)((uint)4098));
}
return this.recv_buffer_size;
}
[Token(Token = "0x600CBCB")]
[Address(RVA = "0x2656330", Offset = "0x2655130", VA = "0x182656330")]
set
{
Socket socket = this.client;
if (socket.is_connected)
{
socket.SetSocketOption((SocketOptionLevel)((uint)65535), (SocketOptionName)((uint)4098), value);
return;
}
this.recv_buffer_size = value;
}
}
// Token: 0x17002063 RID: 8291
// (get) Token: 0x0600CBCC RID: 52172 RVA: 0x002EB148 File Offset: 0x002E9348
// (set) Token: 0x0600CBCD RID: 52173 RVA: 0x002EB180 File Offset: 0x002E9380
[Token(Token = "0x17002063")]
public int ReceiveTimeout
{
[Token(Token = "0x600CBCC")]
[Address(RVA = "0x26560C0", Offset = "0x2654EC0", VA = "0x1826560C0")]
get
{
if (this.values == (TcpClient.Properties)8)
{
object socketOption = this.client.GetSocketOption((SocketOptionLevel)((uint)65535), (SocketOptionName)((uint)4102));
}
return this.recv_timeout;
}
[Token(Token = "0x600CBCD")]
[Address(RVA = "0x2656380", Offset = "0x2655180", VA = "0x182656380")]
set
{
Socket socket = this.client;
if (socket.is_connected)
{
socket.SetSocketOption((SocketOptionLevel)((uint)65535), (SocketOptionName)((uint)4102), value);
return;
}
this.recv_timeout = value;
}
}
// Token: 0x17002064 RID: 8292
// (get) Token: 0x0600CBCE RID: 52174 RVA: 0x002EB1C0 File Offset: 0x002E93C0
// (set) Token: 0x0600CBCF RID: 52175 RVA: 0x002EB1F8 File Offset: 0x002E93F8
[Token(Token = "0x17002064")]
public int SendBufferSize
{
[Token(Token = "0x600CBCE")]
[Address(RVA = "0x2656150", Offset = "0x2654F50", VA = "0x182656150")]
get
{
if (this.values == (TcpClient.Properties)16)
{
object socketOption = this.client.GetSocketOption((SocketOptionLevel)((uint)65535), (SocketOptionName)((uint)4097));
}
return this.send_buffer_size;
}
[Token(Token = "0x600CBCF")]
[Address(RVA = "0x26563D0", Offset = "0x26551D0", VA = "0x1826563D0")]
set
{
Socket socket = this.client;
if (socket.is_connected)
{
socket.SetSocketOption((SocketOptionLevel)((uint)65535), (SocketOptionName)((uint)4097), value);
return;
}
this.send_buffer_size = value;
}
}
// Token: 0x17002065 RID: 8293
// (get) Token: 0x0600CBD0 RID: 52176 RVA: 0x002EB238 File Offset: 0x002E9438
// (set) Token: 0x0600CBD1 RID: 52177 RVA: 0x002EB270 File Offset: 0x002E9470
[Token(Token = "0x17002065")]
public int SendTimeout
{
[Token(Token = "0x600CBD0")]
[Address(RVA = "0x26561E0", Offset = "0x2654FE0", VA = "0x1826561E0")]
get
{
if (this.values == (TcpClient.Properties)32)
{
object socketOption = this.client.GetSocketOption((SocketOptionLevel)((uint)65535), (SocketOptionName)((uint)4101));
}
return this.send_timeout;
}
[Token(Token = "0x600CBD1")]
[Address(RVA = "0x2656420", Offset = "0x2655220", VA = "0x182656420")]
set
{
Socket socket = this.client;
if (socket.is_connected)
{
socket.SetSocketOption((SocketOptionLevel)((uint)65535), (SocketOptionName)((uint)4101), value);
return;
}
this.send_timeout = value;
}
}
// Token: 0x17002066 RID: 8294
// (get) Token: 0x0600CBD2 RID: 52178 RVA: 0x002EB2B0 File Offset: 0x002E94B0
// (set) Token: 0x0600CBD3 RID: 52179 RVA: 0x002EB2C4 File Offset: 0x002E94C4
[Token(Token = "0x17002066")]
public TimeSpan ConnectTimeout
{
[Token(Token = "0x600CBD2")]
[Address(RVA = "0x415290", Offset = "0x414090", VA = "0x180415290")]
get;
[Token(Token = "0x600CBD3")]
[Address(RVA = "0x46AB00", Offset = "0x469900", VA = "0x18046AB00")]
set;
}
// Token: 0x0600CBD4 RID: 52180 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600CBD4")]
[Address(RVA = "0x2654E00", Offset = "0x2653C00", VA = "0x182654E00")]
public void Close()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600CBD5 RID: 52181 RVA: 0x002EB2D8 File Offset: 0x002E94D8
[Token(Token = "0x600CBD5")]
[Address(RVA = "0x2654E40", Offset = "0x2653C40", VA = "0x182654E40")]
public void Connect(IPEndPoint remoteEP)
{
int num;
do
{
num = 0;
TimeSpan timeSpan = this.<ConnectTimeout>k__BackingField;
TimeSpan zero = TimeSpan.Zero;
if (!(timeSpan > zero))
{
this.client.Connect(remoteEP);
this.active = true;
}
int num2;
ManualResetEvent manualResetEvent = new ManualResetEvent(num2 != 0);
num2 = 0;
ManualResetEvent mre = manualResetEvent;
Socket socket = this.client;
AsyncCallback asyncCallback = delegate(IAsyncResult res)
{
bool flag2 = mre.Set();
};
int num3 = 0;
IAsyncResult asyncResult = socket.BeginConnect(remoteEP, asyncCallback, num3);
ManualResetEvent mre2 = mre;
TimeSpan timeSpan2 = this.<ConnectTimeout>k__BackingField;
bool flag = mre2.WaitOne(timeSpan2);
this.active = flag;
if (!flag)
{
goto IL_B6;
}
this.client.EndConnect(asyncResult);
this.CheckDisposed();
}
while (num != 0);
return;
IL_B6:
throw new NullReferenceException();
}
// Token: 0x0600CBD6 RID: 52182 RVA: 0x002EB3C4 File Offset: 0x002E95C4
[Token(Token = "0x600CBD6")]
[Address(RVA = "0x2655080", Offset = "0x2653E80", VA = "0x182655080")]
public void Connect(IPAddress address, int port)
{
IPEndPoint ipendPoint = new IPEndPoint(address, port);
this.Connect(ipendPoint);
}
// Token: 0x0600CBD7 RID: 52183 RVA: 0x002EB3E0 File Offset: 0x002E95E0
[Token(Token = "0x600CBD7")]
[Address(RVA = "0x26559E0", Offset = "0x26547E0", VA = "0x1826559E0")]
private void SetOptions()
{
TcpClient.Properties properties = this.values;
int num = 0;
this.values = (TcpClient.Properties)num;
if (properties != (TcpClient.Properties)1)
{
Socket socket = this.client;
if ((socket.is_connected ? 1 : 0) != num)
{
LingerOption lingerOption = this.linger_state;
socket.SetSocketOption((SocketOptionLevel)((uint)65535), (SocketOptionName)((uint)128), lingerOption);
}
this.values = (TcpClient.Properties)((ulong)1L);
}
if (properties != (TcpClient.Properties)2 && (this.client.is_connected ? 1 : 0) != num)
{
bool flag = (this.no_delay ? 1 : 0) != num;
}
if (properties != (TcpClient.Properties)4)
{
Socket socket2 = this.client;
if ((socket2.is_connected ? 1 : 0) != num)
{
int num2 = this.recv_buffer_size;
socket2.SetSocketOption((SocketOptionLevel)((uint)65535), (SocketOptionName)((uint)4098), num2);
}
}
if (properties != (TcpClient.Properties)8)
{
Socket socket3 = this.client;
if ((socket3.is_connected ? 1 : 0) != num)
{
int num3 = this.recv_timeout;
socket3.SetSocketOption((SocketOptionLevel)((uint)65535), (SocketOptionName)((uint)4102), num3);
}
}
if (properties != (TcpClient.Properties)16)
{
Socket socket4 = this.client;
if ((socket4.is_connected ? 1 : 0) != num)
{
int num4 = this.send_buffer_size;
socket4.SetSocketOption((SocketOptionLevel)((uint)65535), (SocketOptionName)((uint)4097), num4);
}
}
if (properties != (TcpClient.Properties)32)
{
Socket socket5 = this.client;
int num5 = this.send_timeout;
if ((socket5.is_connected ? 1 : 0) == num)
{
return;
}
socket5.SetSocketOption((SocketOptionLevel)((uint)65535), (SocketOptionName)((uint)4101), num5);
}
}
// Token: 0x0600CBD8 RID: 52184 RVA: 0x002EB530 File Offset: 0x002E9730
[Token(Token = "0x600CBD8")]
[Address(RVA = "0x2655100", Offset = "0x2653F00", VA = "0x182655100")]
public void Connect(string hostname, int port)
{
/*
An exception occurred when decompiling this method (0600CBD8)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.PlatformSupport.TcpClient.General.TcpClient::Connect(System.String,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_A5:
stloc:TimeoutException(var_14_AF, newobj:TimeoutException(TimeoutException::.ctor, ldstr:string("DNS resolve timed out!")))
}
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: 0x0600CBD9 RID: 52185 RVA: 0x002EB5F0 File Offset: 0x002E97F0
[Token(Token = "0x600CBD9")]
[Address(RVA = "0x26553A0", Offset = "0x26541A0", VA = "0x1826553A0")]
public void Connect(IPAddress[] ipAddresses, int port)
{
/*
An exception occurred when decompiling this method (0600CBD9)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.PlatformSupport.TcpClient.General.TcpClient::Connect(System.Net.IPAddress[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_D8:
stloc:ArgumentNullException(var_15_E2, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("ipAddresses")))
}
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: 0x0600CBDA RID: 52186 RVA: 0x002EB6E0 File Offset: 0x002E98E0
[Token(Token = "0x600CBDA")]
[Address(RVA = "0x2655740", Offset = "0x2654540", VA = "0x182655740")]
public void EndConnect(IAsyncResult asyncResult)
{
this.client.EndConnect(asyncResult);
}
// Token: 0x0600CBDB RID: 52187 RVA: 0x002EB700 File Offset: 0x002E9900
[Token(Token = "0x600CBDB")]
[Address(RVA = "0x2654D10", Offset = "0x2653B10", VA = "0x182654D10")]
public IAsyncResult BeginConnect(IPAddress address, int port, AsyncCallback requestCallback, object state)
{
Socket socket = this.client;
IAsyncResult asyncResult;
return asyncResult;
}
// Token: 0x0600CBDC RID: 52188 RVA: 0x002EB71C File Offset: 0x002E991C
[Token(Token = "0x600CBDC")]
[Address(RVA = "0x2654CE0", Offset = "0x2653AE0", VA = "0x182654CE0")]
public IAsyncResult BeginConnect(IPAddress[] addresses, int port, AsyncCallback requestCallback, object state)
{
Socket socket = this.client;
IAsyncResult asyncResult;
return asyncResult;
}
// Token: 0x0600CBDD RID: 52189 RVA: 0x002EB738 File Offset: 0x002E9938
[Token(Token = "0x600CBDD")]
[Address(RVA = "0x2654D40", Offset = "0x2653B40", VA = "0x182654D40")]
public IAsyncResult BeginConnect(string host, int port, AsyncCallback requestCallback, object state)
{
Socket socket = this.client;
IAsyncResult asyncResult;
return asyncResult;
}
// Token: 0x0600CBDE RID: 52190 RVA: 0x002EB754 File Offset: 0x002E9954
[Token(Token = "0x600CBDE")]
[Address(RVA = "0x2655BB0", Offset = "0x26549B0", VA = "0x182655BB0", Slot = "4")]
void IDisposable.Dispose()
{
this.System.IDisposable.Dispose();
GC.SuppressFinalize(this);
}
// Token: 0x0600CBDF RID: 52191 RVA: 0x002EB770 File Offset: 0x002E9970
[Token(Token = "0x600CBDF")]
[Address(RVA = "0x26556E0", Offset = "0x26544E0", VA = "0x1826556E0", Slot = "5")]
protected virtual void Dispose(bool disposing)
{
if (!this.disposed)
{
this.disposed = true;
if (disposing)
{
NetworkStream networkStream = this.stream;
this.stream = (ulong)0L;
if (networkStream == 0)
{
Socket socket = this.client;
if (socket != 0)
{
socket.Close();
this.client = (ulong)0L;
return;
}
}
else
{
int writeTimeout = networkStream.WriteTimeout;
this.active = false;
}
}
}
}
// Token: 0x0600CBE0 RID: 52192 RVA: 0x002EB7D0 File Offset: 0x002E99D0
[Token(Token = "0x600CBE0")]
[Address(RVA = "0x2655760", Offset = "0x2654560", VA = "0x182655760", Slot = "1")]
protected override void Finalize()
{
int num;
do
{
num = 0;
this.System.IDisposable.Dispose();
base..ctor();
}
while (num != 0);
}
// Token: 0x0600CBE1 RID: 52193 RVA: 0x002EB7F0 File Offset: 0x002E99F0
[Token(Token = "0x600CBE1")]
[Address(RVA = "0x26557E0", Offset = "0x26545E0", VA = "0x1826557E0")]
public Stream GetStream()
{
/*
An exception occurred when decompiling this method (0600CBE1)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.IO.Stream BestHTTP.PlatformSupport.TcpClient.General.TcpClient::GetStream()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_1F:
call:void(TcpClient::CheckDisposed, ldloc:TcpClient(this))
brtrue(IL_00, cne:bool(ldloc:int32(var_0_01), ldc.i4:int32(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: 0x0600CBE2 RID: 52194 RVA: 0x002EB828 File Offset: 0x002E9A28
[Token(Token = "0x600CBE2")]
[Address(RVA = "0x2654D70", Offset = "0x2653B70", VA = "0x182654D70")]
private void CheckDisposed()
{
}
// Token: 0x040081F7 RID: 33271
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40081F7")]
private NetworkStream stream;
// Token: 0x040081F8 RID: 33272
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40081F8")]
private bool active;
// Token: 0x040081F9 RID: 33273
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40081F9")]
private Socket client;
// Token: 0x040081FA RID: 33274
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40081FA")]
private bool disposed;
// Token: 0x040081FB RID: 33275
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x40081FB")]
private TcpClient.Properties values;
// Token: 0x040081FC RID: 33276
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40081FC")]
private int recv_timeout;
// Token: 0x040081FD RID: 33277
[FieldOffset(Offset = "0x34")]
[Token(Token = "0x40081FD")]
private int send_timeout;
// Token: 0x040081FE RID: 33278
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40081FE")]
private int recv_buffer_size;
// Token: 0x040081FF RID: 33279
[FieldOffset(Offset = "0x3C")]
[Token(Token = "0x40081FF")]
private int send_buffer_size;
// Token: 0x04008200 RID: 33280
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4008200")]
private LingerOption linger_state;
// Token: 0x04008201 RID: 33281
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4008201")]
private bool no_delay;
// Token: 0x02001F75 RID: 8053
[Token(Token = "0x2001F75")]
private enum Properties : uint
{
// Token: 0x04008204 RID: 33284
[Token(Token = "0x4008204")]
LingerState = 1U,
// Token: 0x04008205 RID: 33285
[Token(Token = "0x4008205")]
NoDelay,
// Token: 0x04008206 RID: 33286
[Token(Token = "0x4008206")]
ReceiveBufferSize = 4U,
// Token: 0x04008207 RID: 33287
[Token(Token = "0x4008207")]
ReceiveTimeout = 8U,
// Token: 0x04008208 RID: 33288
[Token(Token = "0x4008208")]
SendBufferSize = 16U,
// Token: 0x04008209 RID: 33289
[Token(Token = "0x4008209")]
SendTimeout = 32U
}
}
}