m
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.WebSocket.Frames
|
||||
{
|
||||
// Token: 0x020019AC RID: 6572
|
||||
[Token(Token = "0x20019AC")]
|
||||
public struct RawFrameData : IDisposable
|
||||
{
|
||||
// Token: 0x06009911 RID: 39185 RVA: 0x001F49B8 File Offset: 0x001F2BB8
|
||||
[Token(Token = "0x6009911")]
|
||||
[Address(RVA = "0x62FA90", Offset = "0x62EA90", VA = "0x18062FA90")]
|
||||
public RawFrameData(byte[] data, int length)
|
||||
{
|
||||
this.Data = data;
|
||||
this.Length = length;
|
||||
}
|
||||
|
||||
// Token: 0x06009912 RID: 39186 RVA: 0x001F49D4 File Offset: 0x001F2BD4
|
||||
[Token(Token = "0x6009912")]
|
||||
[Address(RVA = "0x62FA20", Offset = "0x62EA20", VA = "0x18062FA20", Slot = "4")]
|
||||
public void Dispose()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0400678F RID: 26511
|
||||
[FieldOffset(Offset = "0x0")]
|
||||
[Token(Token = "0x400678F")]
|
||||
public byte[] Data;
|
||||
|
||||
// Token: 0x04006790 RID: 26512
|
||||
[FieldOffset(Offset = "0x8")]
|
||||
[Token(Token = "0x4006790")]
|
||||
public int Length;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,228 @@
|
||||
using System;
|
||||
using BestHTTP.Extensions;
|
||||
using BestHTTP.WebSocket.Extensions;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.WebSocket.Frames
|
||||
{
|
||||
// Token: 0x020019AD RID: 6573
|
||||
[Token(Token = "0x20019AD")]
|
||||
public sealed class WebSocketFrame
|
||||
{
|
||||
// Token: 0x17001856 RID: 6230
|
||||
// (get) Token: 0x06009913 RID: 39187 RVA: 0x001F49E4 File Offset: 0x001F2BE4
|
||||
// (set) Token: 0x06009914 RID: 39188 RVA: 0x001F49F8 File Offset: 0x001F2BF8
|
||||
[Token(Token = "0x17001856")]
|
||||
public WebSocketFrameTypes Type
|
||||
{
|
||||
[Token(Token = "0x6009913")]
|
||||
[Address(RVA = "0x4944B0", Offset = "0x4934B0", VA = "0x1804944B0")]
|
||||
get;
|
||||
[Token(Token = "0x6009914")]
|
||||
[Address(RVA = "0x62ADC0", Offset = "0x629DC0", VA = "0x18062ADC0")]
|
||||
private set;
|
||||
}
|
||||
|
||||
// Token: 0x17001857 RID: 6231
|
||||
// (get) Token: 0x06009915 RID: 39189 RVA: 0x001F4A0C File Offset: 0x001F2C0C
|
||||
// (set) Token: 0x06009916 RID: 39190 RVA: 0x001F4A20 File Offset: 0x001F2C20
|
||||
[Token(Token = "0x17001857")]
|
||||
public bool IsFinal
|
||||
{
|
||||
[Token(Token = "0x6009915")]
|
||||
[Address(RVA = "0x498E20", Offset = "0x497E20", VA = "0x180498E20")]
|
||||
get;
|
||||
[Token(Token = "0x6009916")]
|
||||
[Address(RVA = "0x62FA00", Offset = "0x62EA00", VA = "0x18062FA00")]
|
||||
private set;
|
||||
}
|
||||
|
||||
// Token: 0x17001858 RID: 6232
|
||||
// (get) Token: 0x06009917 RID: 39191 RVA: 0x001F4A34 File Offset: 0x001F2C34
|
||||
// (set) Token: 0x06009918 RID: 39192 RVA: 0x001F4A48 File Offset: 0x001F2C48
|
||||
[Token(Token = "0x17001858")]
|
||||
public byte Header
|
||||
{
|
||||
[Token(Token = "0x6009917")]
|
||||
[Address(RVA = "0x635090", Offset = "0x634090", VA = "0x180635090")]
|
||||
get;
|
||||
[Token(Token = "0x6009918")]
|
||||
[Address(RVA = "0x6350B0", Offset = "0x6340B0", VA = "0x1806350B0")]
|
||||
private set;
|
||||
}
|
||||
|
||||
// Token: 0x17001859 RID: 6233
|
||||
// (get) Token: 0x06009919 RID: 39193 RVA: 0x001F4A5C File Offset: 0x001F2C5C
|
||||
// (set) Token: 0x0600991A RID: 39194 RVA: 0x001F4A70 File Offset: 0x001F2C70
|
||||
[Token(Token = "0x17001859")]
|
||||
public byte[] Data
|
||||
{
|
||||
[Token(Token = "0x6009919")]
|
||||
[Address(RVA = "0x4157B0", Offset = "0x4147B0", VA = "0x1804157B0")]
|
||||
get;
|
||||
[Token(Token = "0x600991A")]
|
||||
[Address(RVA = "0x4157F0", Offset = "0x4147F0", VA = "0x1804157F0")]
|
||||
private set;
|
||||
}
|
||||
|
||||
// Token: 0x1700185A RID: 6234
|
||||
// (get) Token: 0x0600991B RID: 39195 RVA: 0x001F4A84 File Offset: 0x001F2C84
|
||||
// (set) Token: 0x0600991C RID: 39196 RVA: 0x001F4A98 File Offset: 0x001F2C98
|
||||
[Token(Token = "0x1700185A")]
|
||||
public int DataLength
|
||||
{
|
||||
[Token(Token = "0x600991B")]
|
||||
[Address(RVA = "0x470B70", Offset = "0x46FB70", VA = "0x180470B70")]
|
||||
get;
|
||||
[Token(Token = "0x600991C")]
|
||||
[Address(RVA = "0x62ADB0", Offset = "0x629DB0", VA = "0x18062ADB0")]
|
||||
private set;
|
||||
}
|
||||
|
||||
// Token: 0x1700185B RID: 6235
|
||||
// (get) Token: 0x0600991D RID: 39197 RVA: 0x001F4AAC File Offset: 0x001F2CAC
|
||||
// (set) Token: 0x0600991E RID: 39198 RVA: 0x001F4AC0 File Offset: 0x001F2CC0
|
||||
[Token(Token = "0x1700185B")]
|
||||
public bool UseExtensions
|
||||
{
|
||||
[Token(Token = "0x600991D")]
|
||||
[Address(RVA = "0x6350A0", Offset = "0x6340A0", VA = "0x1806350A0")]
|
||||
get;
|
||||
[Token(Token = "0x600991E")]
|
||||
[Address(RVA = "0x6350C0", Offset = "0x6340C0", VA = "0x1806350C0")]
|
||||
private set;
|
||||
}
|
||||
|
||||
// Token: 0x0600991F RID: 39199 RVA: 0x001F4AD4 File Offset: 0x001F2CD4
|
||||
[Token(Token = "0x600991F")]
|
||||
[Address(RVA = "0x635040", Offset = "0x634040", VA = "0x180635040")]
|
||||
public WebSocketFrame(WebSocket webSocket, WebSocketFrameTypes type, byte[] data)
|
||||
{
|
||||
if (data != 0)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009920 RID: 39200 RVA: 0x001F4AF0 File Offset: 0x001F2CF0
|
||||
[Token(Token = "0x6009920")]
|
||||
[Address(RVA = "0x634F90", Offset = "0x633F90", VA = "0x180634F90")]
|
||||
public WebSocketFrame(WebSocket webSocket, WebSocketFrameTypes type, byte[] data, bool useExtensions)
|
||||
{
|
||||
if (data != 0)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009921 RID: 39201 RVA: 0x001F4B0C File Offset: 0x001F2D0C
|
||||
[Token(Token = "0x6009921")]
|
||||
[Address(RVA = "0x634FE0", Offset = "0x633FE0", VA = "0x180634FE0")]
|
||||
public WebSocketFrame(WebSocket webSocket, WebSocketFrameTypes type, byte[] data, bool isFinal, bool useExtensions)
|
||||
{
|
||||
if (data != 0)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009922 RID: 39202 RVA: 0x001F4B28 File Offset: 0x001F2D28
|
||||
[Token(Token = "0x6009922")]
|
||||
[Address(RVA = "0x634DA0", Offset = "0x633DA0", VA = "0x180634DA0")]
|
||||
public WebSocketFrame(WebSocket webSocket, WebSocketFrameTypes type, byte[] data, ulong pos, ulong length, bool isFinal, bool useExtensions)
|
||||
{
|
||||
this.IsFinal = false;
|
||||
this.Type = type;
|
||||
int num = 0;
|
||||
this.UseExtensions = false;
|
||||
this.DataLength = 0;
|
||||
if (data == 0)
|
||||
{
|
||||
}
|
||||
int num2 = this.<DataLength>k__BackingField;
|
||||
byte[] array;
|
||||
this.Data = array;
|
||||
this.Header = data;
|
||||
if ((this.<UseExtensions>k__BackingField ? 1 : 0) != num && webSocket != 0 && webSocket.<Extensions>k__BackingField != num)
|
||||
{
|
||||
IExtension[] <Extensions>k__BackingField = webSocket.<Extensions>k__BackingField;
|
||||
int length2 = <Extensions>k__BackingField.Length;
|
||||
if (num < length2)
|
||||
{
|
||||
if (<Extensions>k__BackingField[num] != 0)
|
||||
{
|
||||
byte b = this.<Header>k__BackingField;
|
||||
this.Header = (byte)num;
|
||||
byte[] array2 = this.<Data>k__BackingField;
|
||||
if (num != array2)
|
||||
{
|
||||
VariableSizedBufferPool.Release(array2);
|
||||
this.Data = num;
|
||||
this.DataLength = num;
|
||||
}
|
||||
}
|
||||
num++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009923 RID: 39203 RVA: 0x001F4BE4 File Offset: 0x001F2DE4
|
||||
[Token(Token = "0x6009923")]
|
||||
[Address(RVA = "0x6349D0", Offset = "0x6339D0", VA = "0x1806349D0")]
|
||||
public RawFrameData Get()
|
||||
{
|
||||
int num;
|
||||
do
|
||||
{
|
||||
num = 0;
|
||||
byte[] noData = VariableSizedBufferPool.NoData;
|
||||
byte[] array;
|
||||
int length = array.Length;
|
||||
int num2 = 0;
|
||||
Array.Reverse(array, num2, length);
|
||||
byte[] array2;
|
||||
int length2 = array2.Length;
|
||||
int num3 = 0;
|
||||
Array.Reverse(array2, num3, length2);
|
||||
BufferPoolMemoryStream bufferPoolMemoryStream;
|
||||
int num4 = bufferPoolMemoryStream.ReadByte();
|
||||
int num5 = bufferPoolMemoryStream.ReadByte();
|
||||
if (num < "{il2cpp array field il2cppMethodInfo->}")
|
||||
{
|
||||
num++;
|
||||
num++;
|
||||
}
|
||||
byte[] array3 = bufferPoolMemoryStream.ToArray(true);
|
||||
bool canWrite = bufferPoolMemoryStream.CanWrite;
|
||||
if (bufferPoolMemoryStream != 0)
|
||||
{
|
||||
}
|
||||
}
|
||||
while (num != 0);
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x06009924 RID: 39204 RVA: 0x001F4C94 File Offset: 0x001F2E94
|
||||
[Token(Token = "0x6009924")]
|
||||
[Address(RVA = "0x6347D0", Offset = "0x6337D0", VA = "0x1806347D0")]
|
||||
public WebSocketFrame[] Fragment(ushort maxFragmentSize)
|
||||
{
|
||||
if (this.<Data>k__BackingField != (ulong)0L)
|
||||
{
|
||||
WebSocketFrameTypes webSocketFrameTypes = this.<Type>k__BackingField;
|
||||
if (this.<DataLength>k__BackingField > (int)maxFragmentSize)
|
||||
{
|
||||
WebSocketFrame[] array = new WebSocketFrame[(int)maxFragmentSize];
|
||||
int num = this.<DataLength>k__BackingField;
|
||||
if ((int)maxFragmentSize < num)
|
||||
{
|
||||
num -= (int)maxFragmentSize;
|
||||
ulong num2 = Math.Min((ulong)maxFragmentSize, (ulong)num);
|
||||
int num3 = this.<DataLength>k__BackingField;
|
||||
throw new ArrayTypeMismatchException();
|
||||
}
|
||||
this.<DataLength>k__BackingField = (int)maxFragmentSize;
|
||||
return array;
|
||||
}
|
||||
}
|
||||
throw new IndexOutOfRangeException();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,266 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using BestHTTP.Extensions;
|
||||
using BestHTTP.WebSocket.Extensions;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.WebSocket.Frames
|
||||
{
|
||||
// Token: 0x020019AE RID: 6574
|
||||
[Token(Token = "0x20019AE")]
|
||||
public struct WebSocketFrameReader
|
||||
{
|
||||
// Token: 0x1700185C RID: 6236
|
||||
// (get) Token: 0x06009925 RID: 39205 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
// (set) Token: 0x06009926 RID: 39206 RVA: 0x001F4D18 File Offset: 0x001F2F18
|
||||
[Token(Token = "0x1700185C")]
|
||||
public byte Header
|
||||
{
|
||||
[Token(Token = "0x6009925")]
|
||||
[Address(RVA = "0x634740", Offset = "0x633740", VA = "0x180634740")]
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
[Token(Token = "0x6009926")]
|
||||
[Address(RVA = "0x634790", Offset = "0x633790", VA = "0x180634790")]
|
||||
[CompilerGenerated]
|
||||
private set
|
||||
{
|
||||
this.<Header>k__BackingField = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700185D RID: 6237
|
||||
// (get) Token: 0x06009927 RID: 39207 RVA: 0x001F4D2C File Offset: 0x001F2F2C
|
||||
// (set) Token: 0x06009928 RID: 39208 RVA: 0x001F4D40 File Offset: 0x001F2F40
|
||||
[Token(Token = "0x1700185D")]
|
||||
public bool IsFinal
|
||||
{
|
||||
[Token(Token = "0x6009927")]
|
||||
[Address(RVA = "0x634750", Offset = "0x633750", VA = "0x180634750")]
|
||||
get;
|
||||
[Token(Token = "0x6009928")]
|
||||
[Address(RVA = "0x6347A0", Offset = "0x6337A0", VA = "0x1806347A0")]
|
||||
private set;
|
||||
}
|
||||
|
||||
// Token: 0x1700185E RID: 6238
|
||||
// (get) Token: 0x06009929 RID: 39209 RVA: 0x001F4D54 File Offset: 0x001F2F54
|
||||
// (set) Token: 0x0600992A RID: 39210 RVA: 0x001F4D68 File Offset: 0x001F2F68
|
||||
[Token(Token = "0x1700185E")]
|
||||
public WebSocketFrameTypes Type
|
||||
{
|
||||
[Token(Token = "0x6009929")]
|
||||
[Address(RVA = "0x634770", Offset = "0x633770", VA = "0x180634770")]
|
||||
get;
|
||||
[Token(Token = "0x600992A")]
|
||||
[Address(RVA = "0x6347C0", Offset = "0x6337C0", VA = "0x1806347C0")]
|
||||
private set;
|
||||
}
|
||||
|
||||
// Token: 0x1700185F RID: 6239
|
||||
// (get) Token: 0x0600992B RID: 39211 RVA: 0x001F4D7C File Offset: 0x001F2F7C
|
||||
// (set) Token: 0x0600992C RID: 39212 RVA: 0x001F4D90 File Offset: 0x001F2F90
|
||||
[Token(Token = "0x1700185F")]
|
||||
public bool HasMask
|
||||
{
|
||||
[Token(Token = "0x600992B")]
|
||||
[Address(RVA = "0x634730", Offset = "0x633730", VA = "0x180634730")]
|
||||
get;
|
||||
[Token(Token = "0x600992C")]
|
||||
[Address(RVA = "0x634780", Offset = "0x633780", VA = "0x180634780")]
|
||||
private set;
|
||||
}
|
||||
|
||||
// Token: 0x17001860 RID: 6240
|
||||
// (get) Token: 0x0600992D RID: 39213 RVA: 0x001F4DA4 File Offset: 0x001F2FA4
|
||||
// (set) Token: 0x0600992E RID: 39214 RVA: 0x001F4DB8 File Offset: 0x001F2FB8
|
||||
[Token(Token = "0x17001860")]
|
||||
public ulong Length
|
||||
{
|
||||
[Token(Token = "0x600992D")]
|
||||
[Address(RVA = "0x634760", Offset = "0x633760", VA = "0x180634760")]
|
||||
get;
|
||||
[Token(Token = "0x600992E")]
|
||||
[Address(RVA = "0x6347B0", Offset = "0x6337B0", VA = "0x1806347B0")]
|
||||
private set;
|
||||
}
|
||||
|
||||
// Token: 0x17001861 RID: 6241
|
||||
// (get) Token: 0x0600992F RID: 39215 RVA: 0x001F4DCC File Offset: 0x001F2FCC
|
||||
// (set) Token: 0x06009930 RID: 39216 RVA: 0x001F4DE0 File Offset: 0x001F2FE0
|
||||
[Token(Token = "0x17001861")]
|
||||
public byte[] Data
|
||||
{
|
||||
[Token(Token = "0x600992F")]
|
||||
[Address(RVA = "0x411530", Offset = "0x410530", VA = "0x180411530")]
|
||||
get;
|
||||
[Token(Token = "0x6009930")]
|
||||
[Address(RVA = "0x415800", Offset = "0x414800", VA = "0x180415800")]
|
||||
private set;
|
||||
}
|
||||
|
||||
// Token: 0x17001862 RID: 6242
|
||||
// (get) Token: 0x06009931 RID: 39217 RVA: 0x001F4DF4 File Offset: 0x001F2FF4
|
||||
// (set) Token: 0x06009932 RID: 39218 RVA: 0x001F4E08 File Offset: 0x001F3008
|
||||
[Token(Token = "0x17001862")]
|
||||
public string DataAsText
|
||||
{
|
||||
[Token(Token = "0x6009931")]
|
||||
[Address(RVA = "0x4157B0", Offset = "0x4147B0", VA = "0x1804157B0")]
|
||||
get;
|
||||
[Token(Token = "0x6009932")]
|
||||
[Address(RVA = "0x4157F0", Offset = "0x4147F0", VA = "0x1804157F0")]
|
||||
private set;
|
||||
}
|
||||
|
||||
// Token: 0x06009933 RID: 39219 RVA: 0x001F4E1C File Offset: 0x001F301C
|
||||
[Token(Token = "0x6009933")]
|
||||
[Address(RVA = "0x6341E0", Offset = "0x6331E0", VA = "0x1806341E0")]
|
||||
internal void Read(Stream stream)
|
||||
{
|
||||
int num;
|
||||
this.<Header>k__BackingField = (byte)num;
|
||||
this.<IsFinal>k__BackingField = stream != null;
|
||||
this.<Type>k__BackingField = (WebSocketFrameTypes)num;
|
||||
this.<HasMask>k__BackingField = stream != null;
|
||||
int num2;
|
||||
this.<Length>k__BackingField = (ulong)num2;
|
||||
if (num2 != 126)
|
||||
{
|
||||
if (num2 != 127)
|
||||
{
|
||||
goto IL_81;
|
||||
}
|
||||
byte[] array;
|
||||
stream.ReadBuffer(array, 8);
|
||||
int num3 = 0;
|
||||
Array.Reverse(array, num3, 8);
|
||||
int num4 = 0;
|
||||
ulong num5 = BitConverter.ToUInt64(array, num4);
|
||||
}
|
||||
byte[] array2;
|
||||
stream.ReadBuffer(array2, 2);
|
||||
int num6 = 0;
|
||||
Array.Reverse(array2, num6, 2);
|
||||
int num7 = 0;
|
||||
ushort num8 = BitConverter.ToUInt16(array2, num7);
|
||||
this.<Length>k__BackingField = (ulong)num8;
|
||||
VariableSizedBufferPool.Release(array2);
|
||||
IL_81:
|
||||
int num9 = 0;
|
||||
if ((this.<HasMask>k__BackingField ? 1 : 0) != num9)
|
||||
{
|
||||
}
|
||||
ulong num10 = this.<Length>k__BackingField;
|
||||
if (num10 != (ulong)0L)
|
||||
{
|
||||
ulong num11;
|
||||
if (num10 > num11)
|
||||
{
|
||||
throw new OverflowException();
|
||||
}
|
||||
byte[] array3 = new byte[num10];
|
||||
}
|
||||
ulong num12;
|
||||
byte[] array4 = VariableSizedBufferPool.Get((long)this.<Length>k__BackingField, num12 != 0UL);
|
||||
this.<Data>k__BackingField = array4;
|
||||
ulong num13 = this.<Length>k__BackingField;
|
||||
if (num13 != (ulong)0L)
|
||||
{
|
||||
num13 -= (ulong)num9;
|
||||
ulong num14 = this.<Length>k__BackingField;
|
||||
if ((this.<HasMask>k__BackingField ? 1 : 0) != num9)
|
||||
{
|
||||
if (num14 != (ulong)0L)
|
||||
{
|
||||
byte[] array5 = this.<Data>k__BackingField;
|
||||
num9++;
|
||||
}
|
||||
byte[] array6;
|
||||
VariableSizedBufferPool.Release(array6);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06009934 RID: 39220 RVA: 0x001F4F3C File Offset: 0x001F313C
|
||||
[Token(Token = "0x6009934")]
|
||||
[Address(RVA = "0x634170", Offset = "0x633170", VA = "0x180634170")]
|
||||
private byte ReadByte(Stream stream)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (06009934)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte BestHTTP.WebSocket.Frames.WebSocketFrameReader::ReadByte(System.IO.Stream)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:Exception(var_2_07, call:Exception(ExceptionHelper::ServerClosedTCPStream))
|
||||
}
|
||||
|
||||
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: 0x06009935 RID: 39221 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x6009935")]
|
||||
[Address(RVA = "0x633D00", Offset = "0x632D00", VA = "0x180633D00")]
|
||||
public void Assemble(List<WebSocketFrameReader> fragments)
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x06009936 RID: 39222 RVA: 0x001F4F50 File Offset: 0x001F3150
|
||||
[Token(Token = "0x6009936")]
|
||||
[Address(RVA = "0x633FC0", Offset = "0x632FC0", VA = "0x180633FC0")]
|
||||
public void DecodeWithExtensions(WebSocket webSocket)
|
||||
{
|
||||
if (webSocket.<Extensions>k__BackingField != (ulong)0L)
|
||||
{
|
||||
int num = 0;
|
||||
int num2 = 0;
|
||||
IExtension[] <Extensions>k__BackingField = webSocket.<Extensions>k__BackingField;
|
||||
int length = <Extensions>k__BackingField.Length;
|
||||
if (num2 < length)
|
||||
{
|
||||
if (<Extensions>k__BackingField[num] != 0)
|
||||
{
|
||||
ulong num3 = this.<Length>k__BackingField;
|
||||
byte[] array = this.<Data>k__BackingField;
|
||||
byte[] array2 = this.<Data>k__BackingField;
|
||||
if (array2 != array)
|
||||
{
|
||||
VariableSizedBufferPool.Release(array2);
|
||||
this.<Data>k__BackingField = array;
|
||||
int length2 = array.Length;
|
||||
this.<Length>k__BackingField = (ulong)length2;
|
||||
}
|
||||
}
|
||||
num++;
|
||||
}
|
||||
}
|
||||
if (this.<Data>k__BackingField != (ulong)0L)
|
||||
{
|
||||
Encoding utf = Encoding.UTF8;
|
||||
byte[] array3 = this.<Data>k__BackingField;
|
||||
string @string = utf.GetString(array3);
|
||||
byte[] array4 = this.<Data>k__BackingField;
|
||||
this.<DataAsText>k__BackingField = @string;
|
||||
VariableSizedBufferPool.Release(array4);
|
||||
this.<Data>k__BackingField = (ulong)0L;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.WebSocket.Frames
|
||||
{
|
||||
// Token: 0x020019AF RID: 6575
|
||||
[Token(Token = "0x20019AF")]
|
||||
public enum WebSocketFrameTypes : byte
|
||||
{
|
||||
// Token: 0x0400679F RID: 26527
|
||||
[Token(Token = "0x400679F")]
|
||||
Continuation,
|
||||
// Token: 0x040067A0 RID: 26528
|
||||
[Token(Token = "0x40067A0")]
|
||||
Text,
|
||||
// Token: 0x040067A1 RID: 26529
|
||||
[Token(Token = "0x40067A1")]
|
||||
Binary,
|
||||
// Token: 0x040067A2 RID: 26530
|
||||
[Token(Token = "0x40067A2")]
|
||||
ConnectionClose = 8,
|
||||
// Token: 0x040067A3 RID: 26531
|
||||
[Token(Token = "0x40067A3")]
|
||||
Ping,
|
||||
// Token: 0x040067A4 RID: 26532
|
||||
[Token(Token = "0x40067A4")]
|
||||
Pong
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user