234 lines
7.2 KiB
C#
234 lines
7.2 KiB
C#
using System;
|
|
using System.Runtime.InteropServices;
|
|
using BestHTTP.Extensions;
|
|
using BestHTTP.WebSocket.Extensions;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.WebSocket.Frames
|
|
{
|
|
// Token: 0x020012EE RID: 4846
|
|
[Token(Token = "0x20012EE")]
|
|
[StructLayout(3)]
|
|
public sealed class WebSocketFrame
|
|
{
|
|
// Token: 0x170013B4 RID: 5044
|
|
// (get) Token: 0x06007959 RID: 31065 RVA: 0x001940FC File Offset: 0x001922FC
|
|
// (set) Token: 0x0600795A RID: 31066 RVA: 0x00194110 File Offset: 0x00192310
|
|
[Token(Token = "0x170013B4")]
|
|
public WebSocketFrameTypes Type
|
|
{
|
|
[Token(Token = "0x6007959")]
|
|
[Address(RVA = "0x559440", Offset = "0x557E40", VA = "0x180559440")]
|
|
get;
|
|
[Token(Token = "0x600795A")]
|
|
[Address(RVA = "0x559450", Offset = "0x557E50", VA = "0x180559450")]
|
|
private set;
|
|
}
|
|
|
|
// Token: 0x170013B5 RID: 5045
|
|
// (get) Token: 0x0600795B RID: 31067 RVA: 0x00194124 File Offset: 0x00192324
|
|
// (set) Token: 0x0600795C RID: 31068 RVA: 0x00194138 File Offset: 0x00192338
|
|
[Token(Token = "0x170013B5")]
|
|
public bool IsFinal
|
|
{
|
|
[Token(Token = "0x600795B")]
|
|
[Address(RVA = "0x6E4A50", Offset = "0x6E3450", VA = "0x1806E4A50")]
|
|
get;
|
|
[Token(Token = "0x600795C")]
|
|
[Address(RVA = "0x6E4A60", Offset = "0x6E3460", VA = "0x1806E4A60")]
|
|
private set;
|
|
}
|
|
|
|
// Token: 0x170013B6 RID: 5046
|
|
// (get) Token: 0x0600795D RID: 31069 RVA: 0x0019414C File Offset: 0x0019234C
|
|
// (set) Token: 0x0600795E RID: 31070 RVA: 0x00194160 File Offset: 0x00192360
|
|
[Token(Token = "0x170013B6")]
|
|
public byte Header
|
|
{
|
|
[Token(Token = "0x600795D")]
|
|
[Address(RVA = "0x6E4A70", Offset = "0x6E3470", VA = "0x1806E4A70")]
|
|
get;
|
|
[Token(Token = "0x600795E")]
|
|
[Address(RVA = "0x6E4A80", Offset = "0x6E3480", VA = "0x1806E4A80")]
|
|
private set;
|
|
}
|
|
|
|
// Token: 0x170013B7 RID: 5047
|
|
// (get) Token: 0x0600795F RID: 31071 RVA: 0x00194174 File Offset: 0x00192374
|
|
// (set) Token: 0x06007960 RID: 31072 RVA: 0x00194188 File Offset: 0x00192388
|
|
[Token(Token = "0x170013B7")]
|
|
public byte[] Data
|
|
{
|
|
[Token(Token = "0x600795F")]
|
|
[Address(RVA = "0x3C1240", Offset = "0x3BFC40", VA = "0x1803C1240")]
|
|
get;
|
|
[Token(Token = "0x6007960")]
|
|
[Address(RVA = "0x3C1280", Offset = "0x3BFC80", VA = "0x1803C1280")]
|
|
private set;
|
|
}
|
|
|
|
// Token: 0x170013B8 RID: 5048
|
|
// (get) Token: 0x06007961 RID: 31073 RVA: 0x0019419C File Offset: 0x0019239C
|
|
// (set) Token: 0x06007962 RID: 31074 RVA: 0x001941B0 File Offset: 0x001923B0
|
|
[Token(Token = "0x170013B8")]
|
|
public int DataLength
|
|
{
|
|
[Token(Token = "0x6007961")]
|
|
[Address(RVA = "0x4FBD40", Offset = "0x4FA740", VA = "0x1804FBD40")]
|
|
get;
|
|
[Token(Token = "0x6007962")]
|
|
[Address(RVA = "0x4E90F0", Offset = "0x4E7AF0", VA = "0x1804E90F0")]
|
|
private set;
|
|
}
|
|
|
|
// Token: 0x170013B9 RID: 5049
|
|
// (get) Token: 0x06007963 RID: 31075 RVA: 0x001941C4 File Offset: 0x001923C4
|
|
// (set) Token: 0x06007964 RID: 31076 RVA: 0x001941D8 File Offset: 0x001923D8
|
|
[Token(Token = "0x170013B9")]
|
|
public bool UseExtensions
|
|
{
|
|
[Token(Token = "0x6007963")]
|
|
[Address(RVA = "0x4D2560", Offset = "0x4D0F60", VA = "0x1804D2560")]
|
|
get;
|
|
[Token(Token = "0x6007964")]
|
|
[Address(RVA = "0x4D2740", Offset = "0x4D1140", VA = "0x1804D2740")]
|
|
private set;
|
|
}
|
|
|
|
// Token: 0x06007965 RID: 31077 RVA: 0x001941EC File Offset: 0x001923EC
|
|
[Token(Token = "0x6007965")]
|
|
[Address(RVA = "0x6F93F0", Offset = "0x6F7DF0", VA = "0x1806F93F0")]
|
|
public WebSocketFrame(WebSocket webSocket, WebSocketFrameTypes type, byte[] data)
|
|
{
|
|
if (data != 0)
|
|
{
|
|
}
|
|
}
|
|
|
|
// Token: 0x06007966 RID: 31078 RVA: 0x00194208 File Offset: 0x00192408
|
|
[Token(Token = "0x6007966")]
|
|
[Address(RVA = "0x6F9340", Offset = "0x6F7D40", VA = "0x1806F9340")]
|
|
public WebSocketFrame(WebSocket webSocket, WebSocketFrameTypes type, byte[] data, bool useExtensions)
|
|
{
|
|
if (data != 0)
|
|
{
|
|
}
|
|
}
|
|
|
|
// Token: 0x06007967 RID: 31079 RVA: 0x00194224 File Offset: 0x00192424
|
|
[Token(Token = "0x6007967")]
|
|
[Address(RVA = "0x6F9390", Offset = "0x6F7D90", VA = "0x1806F9390")]
|
|
public WebSocketFrame(WebSocket webSocket, WebSocketFrameTypes type, byte[] data, bool isFinal, bool useExtensions)
|
|
{
|
|
if (data != 0)
|
|
{
|
|
}
|
|
}
|
|
|
|
// Token: 0x06007968 RID: 31080 RVA: 0x00194240 File Offset: 0x00192440
|
|
[Token(Token = "0x6007968")]
|
|
[Address(RVA = "0x6F9150", Offset = "0x6F7B50", VA = "0x1806F9150")]
|
|
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: 0x06007969 RID: 31081 RVA: 0x001942FC File Offset: 0x001924FC
|
|
[Token(Token = "0x6007969")]
|
|
[Address(RVA = "0x6F8D40", Offset = "0x6F7740", VA = "0x1806F8D40")]
|
|
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)
|
|
{
|
|
}
|
|
if (num != -1)
|
|
{
|
|
}
|
|
}
|
|
while (num != 0);
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600796A RID: 31082 RVA: 0x001943B0 File Offset: 0x001925B0
|
|
[Token(Token = "0x600796A")]
|
|
[Address(RVA = "0x6F8B40", Offset = "0x6F7540", VA = "0x1806F8B40")]
|
|
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();
|
|
}
|
|
}
|
|
}
|