scripts
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user