This commit is contained in:
niko
2026-04-08 23:40:05 +02:00
parent d6894bcbc7
commit 18dc73f922
7750 changed files with 1795369 additions and 0 deletions
@@ -0,0 +1,331 @@
using System;
using System.Runtime.InteropServices;
using BestHTTP.Decompression.Zlib;
using BestHTTP.Extensions;
using BestHTTP.WebSocket.Frames;
using Cpp2IlInjected;
namespace BestHTTP.WebSocket.Extensions
{
// Token: 0x020012F2 RID: 4850
[Token(Token = "0x20012F2")]
[StructLayout(3)]
public sealed class PerMessageCompression : IExtension
{
// Token: 0x170013C1 RID: 5057
// (get) Token: 0x06007982 RID: 31106 RVA: 0x001944E8 File Offset: 0x001926E8
// (set) Token: 0x06007983 RID: 31107 RVA: 0x001944FC File Offset: 0x001926FC
[Token(Token = "0x170013C1")]
public bool ClientNoContextTakeover
{
[Token(Token = "0x6007982")]
[Address(RVA = "0x559440", Offset = "0x557E40", VA = "0x180559440")]
get;
[Token(Token = "0x6007983")]
[Address(RVA = "0x559450", Offset = "0x557E50", VA = "0x180559450")]
private set;
}
// Token: 0x170013C2 RID: 5058
// (get) Token: 0x06007984 RID: 31108 RVA: 0x00194510 File Offset: 0x00192710
// (set) Token: 0x06007985 RID: 31109 RVA: 0x00194524 File Offset: 0x00192724
[Token(Token = "0x170013C2")]
public bool ServerNoContextTakeover
{
[Token(Token = "0x6007984")]
[Address(RVA = "0x6E4A50", Offset = "0x6E3450", VA = "0x1806E4A50")]
get;
[Token(Token = "0x6007985")]
[Address(RVA = "0x6E4A60", Offset = "0x6E3460", VA = "0x1806E4A60")]
private set;
}
// Token: 0x170013C3 RID: 5059
// (get) Token: 0x06007986 RID: 31110 RVA: 0x00194538 File Offset: 0x00192738
// (set) Token: 0x06007987 RID: 31111 RVA: 0x0019454C File Offset: 0x0019274C
[Token(Token = "0x170013C3")]
public int ClientMaxWindowBits
{
[Token(Token = "0x6007986")]
[Address(RVA = "0x55D550", Offset = "0x55BF50", VA = "0x18055D550")]
get;
[Token(Token = "0x6007987")]
[Address(RVA = "0x55D5D0", Offset = "0x55BFD0", VA = "0x18055D5D0")]
private set;
}
// Token: 0x170013C4 RID: 5060
// (get) Token: 0x06007988 RID: 31112 RVA: 0x00194560 File Offset: 0x00192760
// (set) Token: 0x06007989 RID: 31113 RVA: 0x00194574 File Offset: 0x00192774
[Token(Token = "0x170013C4")]
public int ServerMaxWindowBits
{
[Token(Token = "0x6007988")]
[Address(RVA = "0x3EE8D0", Offset = "0x3ED2D0", VA = "0x1803EE8D0")]
get;
[Token(Token = "0x6007989")]
[Address(RVA = "0x4F8C20", Offset = "0x4F7620", VA = "0x1804F8C20")]
private set;
}
// Token: 0x170013C5 RID: 5061
// (get) Token: 0x0600798A RID: 31114 RVA: 0x00194588 File Offset: 0x00192788
// (set) Token: 0x0600798B RID: 31115 RVA: 0x0019459C File Offset: 0x0019279C
[Token(Token = "0x170013C5")]
public CompressionLevel Level
{
[Token(Token = "0x600798A")]
[Address(RVA = "0x4F8C10", Offset = "0x4F7610", VA = "0x1804F8C10")]
get;
[Token(Token = "0x600798B")]
[Address(RVA = "0x420CD0", Offset = "0x41F6D0", VA = "0x180420CD0")]
private set;
}
// Token: 0x170013C6 RID: 5062
// (get) Token: 0x0600798C RID: 31116 RVA: 0x001945B0 File Offset: 0x001927B0
// (set) Token: 0x0600798D RID: 31117 RVA: 0x001945C4 File Offset: 0x001927C4
[Token(Token = "0x170013C6")]
public int MinimumDataLegthToCompress
{
[Token(Token = "0x600798C")]
[Address(RVA = "0x4FBD40", Offset = "0x4FA740", VA = "0x1804FBD40")]
get;
[Token(Token = "0x600798D")]
[Address(RVA = "0x4E90F0", Offset = "0x4E7AF0", VA = "0x1804E90F0")]
set;
}
// Token: 0x0600798E RID: 31118 RVA: 0x001945D8 File Offset: 0x001927D8
[Token(Token = "0x600798E")]
[Address(RVA = "0x6F3F00", Offset = "0x6F2900", VA = "0x1806F3F00")]
public PerMessageCompression()
{
this.Level = (CompressionLevel)((ulong)6L);
this.ClientNoContextTakeover = false;
this.ClientMaxWindowBits = (int)((ulong)15L);
this.ServerMaxWindowBits = (int)((ulong)15L);
this.MinimumDataLegthToCompress = (int)((ulong)256L);
}
// Token: 0x0600798F RID: 31119 RVA: 0x0019461C File Offset: 0x0019281C
[Token(Token = "0x600798F")]
[Address(RVA = "0x6F3EB0", Offset = "0x6F28B0", VA = "0x1806F3EB0")]
public PerMessageCompression(CompressionLevel level, bool clientNoContextTakeover, bool serverNoContextTakeover, int desiredClientMaxWindowBits, int desiredServerMaxWindowBits, int minDatalengthToCompress)
{
this.ClientMaxWindowBits = 0;
this.ServerMaxWindowBits = 0;
this.Level = level;
this.MinimumDataLegthToCompress = 0;
this.ClientNoContextTakeover = clientNoContextTakeover;
}
// Token: 0x06007990 RID: 31120 RVA: 0x00194654 File Offset: 0x00192854
[Token(Token = "0x6007990")]
[Address(RVA = "0x6F3340", Offset = "0x6F1D40", VA = "0x1806F3340", Slot = "4")]
public void AddNegotiation(HTTPRequest request)
{
if (this.<ServerNoContextTakeover>k__BackingField)
{
string text = "permessage-deflate" + "; server_no_context_takeover";
}
if (this.<ClientNoContextTakeover>k__BackingField)
{
string text2 = "permessage-deflate" + "; client_no_context_takeover";
}
int num = this.<ServerMaxWindowBits>k__BackingField;
if (num == 15)
{
this.<ServerMaxWindowBits>k__BackingField = num;
}
string text4;
string text3;
if (this.<ClientMaxWindowBits>k__BackingField == 15)
{
text3 = text4 + "; client_max_window_bits";
this.<ClientMaxWindowBits>k__BackingField = (int)((ulong)15L);
}
string text5 = text4 + "; client_max_window_bits=" + text3;
request.AddHeader("Sec-WebSocket-Extensions", text5);
}
// Token: 0x06007991 RID: 31121 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x6007991")]
[Address(RVA = "0x6F3B20", Offset = "0x6F2520", VA = "0x1806F3B20", Slot = "5")]
public bool ParseNegotiation(WebSocketResponse resp)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06007992 RID: 31122 RVA: 0x001946EC File Offset: 0x001928EC
[Token(Token = "0x6007992")]
[Address(RVA = "0x6F3AE0", Offset = "0x6F24E0", VA = "0x1806F3AE0", Slot = "6")]
public byte GetFrameHeader(WebSocketFrame writer, byte inFlag)
{
WebSocketFrameTypes <Type>k__BackingField = writer.<Type>k__BackingField;
if (writer.<Data>k__BackingField != 0)
{
int num = this.<MinimumDataLegthToCompress>k__BackingField;
}
return inFlag;
}
// Token: 0x06007993 RID: 31123 RVA: 0x00194718 File Offset: 0x00192918
[Token(Token = "0x6007993")]
[Address(RVA = "0x6F3A30", Offset = "0x6F2430", VA = "0x1806F3A30", Slot = "7")]
public byte[] Encode(WebSocketFrame writer)
{
byte[] <Data>k__BackingField = writer.<Data>k__BackingField;
if (<Data>k__BackingField != 0)
{
return <Data>k__BackingField;
}
return VariableSizedBufferPool.NoData;
}
// Token: 0x06007994 RID: 31124 RVA: 0x00194750 File Offset: 0x00192950
[Token(Token = "0x6007994")]
[Address(RVA = "0x6F3700", Offset = "0x6F2100", VA = "0x1806F3700", Slot = "8")]
public byte[] Decode(byte header, byte[] data, int length)
{
return this.Decompress(data, length);
}
// Token: 0x06007995 RID: 31125 RVA: 0x00194768 File Offset: 0x00192968
[Token(Token = "0x6007995")]
[Address(RVA = "0x6F3470", Offset = "0x6F1E70", VA = "0x1806F3470")]
private byte[] Compress(byte[] data, int length)
{
int num;
byte[] array;
do
{
num = 0;
if (this.compressorOutputStream == 0)
{
BufferPoolMemoryStream bufferPoolMemoryStream = new BufferPoolMemoryStream();
this.compressorOutputStream = bufferPoolMemoryStream;
}
if (this.compressorDeflateStream == num)
{
CompressionLevel compressionLevel = this.<Level>k__BackingField;
int num2 = this.<ClientMaxWindowBits>k__BackingField;
DeflateStream deflateStream;
this.compressorDeflateStream = deflateStream;
FlushType flushMode = deflateStream.FlushMode;
}
int num3 = this.compressorDeflateStream.ReadByte();
DeflateStream deflateStream2 = this.compressorDeflateStream;
long position = this.compressorOutputStream.Position;
bool canWrite = this.compressorOutputStream.CanWrite;
array = this.compressorOutputStream.ToArray();
int num4 = 0;
if (this.<ClientNoContextTakeover>k__BackingField)
{
this.compressorDeflateStream.Dispose();
this.compressorDeflateStream = (ulong)0L;
}
if (num4 != -1)
{
}
}
while (num != 0);
return array;
}
// Token: 0x06007996 RID: 31126 RVA: 0x00194850 File Offset: 0x00192A50
[Token(Token = "0x6007996")]
[Address(RVA = "0x6F3720", Offset = "0x6F2120", VA = "0x1806F3720")]
private byte[] Decompress(byte[] data, int length)
{
BufferPoolMemoryStream bufferPoolMemoryStream = this.decompressorInputStream;
if (bufferPoolMemoryStream == 0)
{
int num;
BufferPoolMemoryStream bufferPoolMemoryStream2 = new BufferPoolMemoryStream(num);
num = data.Length;
num += 4;
this.decompressorInputStream = bufferPoolMemoryStream2;
}
int num2 = bufferPoolMemoryStream.ReadByte();
BufferPoolMemoryStream bufferPoolMemoryStream3 = this.decompressorInputStream;
byte[] trailer = PerMessageCompression.Trailer;
int num3 = bufferPoolMemoryStream3.ReadByte();
long position = this.decompressorInputStream.Position;
int num4 = 0;
if (this.decompressorDeflateStream == num4)
{
BufferPoolMemoryStream bufferPoolMemoryStream4 = this.decompressorInputStream;
int num5 = this.<ServerMaxWindowBits>k__BackingField;
ulong num6;
DeflateStream deflateStream = new DeflateStream(bufferPoolMemoryStream4, CompressionMode.Decompress, CompressionLevel.Default, num6 != 0UL, num5);
this.decompressorDeflateStream = deflateStream;
FlushType flushMode = deflateStream.FlushMode;
}
if (this.decompressorOutputStream == 0)
{
BufferPoolMemoryStream bufferPoolMemoryStream5 = new BufferPoolMemoryStream();
this.decompressorOutputStream = bufferPoolMemoryStream5;
}
uint num7;
ulong num8;
byte[] array = VariableSizedBufferPool.Get((long)num7, num8 != 0UL);
DeflateStream deflateStream2 = this.decompressorDeflateStream;
int num9 = this.decompressorOutputStream.ReadByte();
VariableSizedBufferPool.Release(array);
DeflateStream deflateStream3 = this.decompressorDeflateStream;
byte[] array2 = this.decompressorOutputStream.ToArray();
if ((this.<ServerNoContextTakeover>k__BackingField ? 1 : 0) != num4)
{
this.decompressorDeflateStream.Dispose();
this.decompressorDeflateStream = num4;
}
return array2;
}
// Token: 0x06007997 RID: 31127 RVA: 0x00194964 File Offset: 0x00192B64
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x6007997")]
[Address(RVA = "0x6F3E20", Offset = "0x6F2820", VA = "0x1806F3E20")]
static PerMessageCompression()
{
byte[] array = new byte[4];
array[0] = (byte)((ulong)255L);
array[0] = (byte)((ulong)255L);
PerMessageCompression.Trailer = array;
}
// Token: 0x040057A7 RID: 22439
[Token(Token = "0x40057A7")]
public const int MinDataLengthToCompressDefault = 256;
// Token: 0x040057A8 RID: 22440
[Token(Token = "0x40057A8")]
private static readonly byte[] Trailer;
// Token: 0x040057AF RID: 22447
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x40057AF")]
private BufferPoolMemoryStream compressorOutputStream;
// Token: 0x040057B0 RID: 22448
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x40057B0")]
private DeflateStream compressorDeflateStream;
// Token: 0x040057B1 RID: 22449
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x40057B1")]
private BufferPoolMemoryStream decompressorInputStream;
// Token: 0x040057B2 RID: 22450
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x40057B2")]
private BufferPoolMemoryStream decompressorOutputStream;
// Token: 0x040057B3 RID: 22451
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x40057B3")]
private DeflateStream decompressorDeflateStream;
}
}