scripts
This commit is contained in:
@@ -0,0 +1,358 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using BestHTTP.Authentication;
|
||||
using BestHTTP.Extensions;
|
||||
using BestHTTP.Logger;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP
|
||||
{
|
||||
// Token: 0x020012A8 RID: 4776
|
||||
[Token(Token = "0x20012A8")]
|
||||
[StructLayout(3)]
|
||||
public sealed class HTTPProxy : Proxy
|
||||
{
|
||||
// Token: 0x1700133F RID: 4927
|
||||
// (get) Token: 0x060076F8 RID: 30456 RVA: 0x0018A124 File Offset: 0x00188324
|
||||
// (set) Token: 0x060076F9 RID: 30457 RVA: 0x0018A138 File Offset: 0x00188338
|
||||
[Token(Token = "0x1700133F")]
|
||||
public bool IsTransparent
|
||||
{
|
||||
[Token(Token = "0x60076F8")]
|
||||
[Address(RVA = "0x4F5370", Offset = "0x4F3D70", VA = "0x1804F5370")]
|
||||
get;
|
||||
[Token(Token = "0x60076F9")]
|
||||
[Address(RVA = "0x4F5390", Offset = "0x4F3D90", VA = "0x1804F5390")]
|
||||
set;
|
||||
}
|
||||
|
||||
// Token: 0x17001340 RID: 4928
|
||||
// (get) Token: 0x060076FA RID: 30458 RVA: 0x0018A14C File Offset: 0x0018834C
|
||||
// (set) Token: 0x060076FB RID: 30459 RVA: 0x0018A160 File Offset: 0x00188360
|
||||
[Token(Token = "0x17001340")]
|
||||
public bool SendWholeUri
|
||||
{
|
||||
[Token(Token = "0x60076FA")]
|
||||
[Address(RVA = "0x5C5EB0", Offset = "0x5C48B0", VA = "0x1805C5EB0")]
|
||||
get;
|
||||
[Token(Token = "0x60076FB")]
|
||||
[Address(RVA = "0x60FB10", Offset = "0x60E510", VA = "0x18060FB10")]
|
||||
set;
|
||||
}
|
||||
|
||||
// Token: 0x17001341 RID: 4929
|
||||
// (get) Token: 0x060076FC RID: 30460 RVA: 0x0018A174 File Offset: 0x00188374
|
||||
// (set) Token: 0x060076FD RID: 30461 RVA: 0x0018A188 File Offset: 0x00188388
|
||||
[Token(Token = "0x17001341")]
|
||||
public bool NonTransparentForHTTPS
|
||||
{
|
||||
[Token(Token = "0x60076FC")]
|
||||
[Address(RVA = "0x72A810", Offset = "0x729210", VA = "0x18072A810")]
|
||||
get;
|
||||
[Token(Token = "0x60076FD")]
|
||||
[Address(RVA = "0x72AA50", Offset = "0x729450", VA = "0x18072AA50")]
|
||||
set;
|
||||
}
|
||||
|
||||
// Token: 0x060076FE RID: 30462 RVA: 0x0018A19C File Offset: 0x0018839C
|
||||
[Token(Token = "0x60076FE")]
|
||||
[Address(RVA = "0x1C93B90", Offset = "0x1C92590", VA = "0x181C93B90")]
|
||||
public HTTPProxy(Uri address)
|
||||
{
|
||||
int num = 0;
|
||||
base..ctor(address, num);
|
||||
this.IsTransparent = false;
|
||||
this.NonTransparentForHTTPS = true;
|
||||
}
|
||||
|
||||
// Token: 0x060076FF RID: 30463 RVA: 0x0018A1C4 File Offset: 0x001883C4
|
||||
[Token(Token = "0x60076FF")]
|
||||
[Address(RVA = "0x1C93C00", Offset = "0x1C92600", VA = "0x181C93C00")]
|
||||
public HTTPProxy(Uri address, Credentials credentials)
|
||||
: base(address, credentials)
|
||||
{
|
||||
this.IsTransparent = false;
|
||||
this.NonTransparentForHTTPS = true;
|
||||
}
|
||||
|
||||
// Token: 0x06007700 RID: 30464 RVA: 0x0018A1E8 File Offset: 0x001883E8
|
||||
[Token(Token = "0x6007700")]
|
||||
[Address(RVA = "0x1C93C70", Offset = "0x1C92670", VA = "0x181C93C70")]
|
||||
public HTTPProxy(Uri address, Credentials credentials, bool isTransparent)
|
||||
: base(address, credentials)
|
||||
{
|
||||
this.IsTransparent = isTransparent;
|
||||
this.SendWholeUri = true;
|
||||
}
|
||||
|
||||
// Token: 0x06007701 RID: 30465 RVA: 0x0018A20C File Offset: 0x0018840C
|
||||
[Token(Token = "0x6007701")]
|
||||
[Address(RVA = "0x1C93C30", Offset = "0x1C92630", VA = "0x181C93C30")]
|
||||
public HTTPProxy(Uri address, Credentials credentials, bool isTransparent, bool sendWholeUri)
|
||||
: base(address, credentials)
|
||||
{
|
||||
this.IsTransparent = isTransparent;
|
||||
this.SendWholeUri = false;
|
||||
this.NonTransparentForHTTPS = true;
|
||||
}
|
||||
|
||||
// Token: 0x06007702 RID: 30466 RVA: 0x0018A238 File Offset: 0x00188438
|
||||
[Token(Token = "0x6007702")]
|
||||
[Address(RVA = "0x1C93BC0", Offset = "0x1C925C0", VA = "0x181C93BC0")]
|
||||
public HTTPProxy(Uri address, Credentials credentials, bool isTransparent, bool sendWholeUri, bool nonTransparentForHTTPS)
|
||||
: base(address, credentials)
|
||||
{
|
||||
this.SendWholeUri = false;
|
||||
this.IsTransparent = isTransparent;
|
||||
this.NonTransparentForHTTPS = false;
|
||||
}
|
||||
|
||||
// Token: 0x06007703 RID: 30467 RVA: 0x0018A264 File Offset: 0x00188464
|
||||
[Token(Token = "0x6007703")]
|
||||
[Address(RVA = "0x1C93AC0", Offset = "0x1C924C0", VA = "0x181C93AC0", Slot = "5")]
|
||||
internal override string GetRequestPath(Uri uri)
|
||||
{
|
||||
if (this.<SendWholeUri>k__BackingField)
|
||||
{
|
||||
return uri.OriginalString;
|
||||
}
|
||||
string parts = uri.GetParts(UriComponents.PathAndQuery, UriFormat.UriEscaped);
|
||||
return "/";
|
||||
}
|
||||
|
||||
// Token: 0x06007704 RID: 30468 RVA: 0x0018A298 File Offset: 0x00188498
|
||||
[Token(Token = "0x6007704")]
|
||||
[Address(RVA = "0x1C92930", Offset = "0x1C91330", VA = "0x181C92930", Slot = "4")]
|
||||
internal override void Connect(Stream stream, HTTPRequest request)
|
||||
{
|
||||
for (;;)
|
||||
{
|
||||
int num = 0;
|
||||
if ((request.<IsRedirected>k__BackingField ? 1 : 0) != num)
|
||||
{
|
||||
}
|
||||
bool flag = HTTPProtocolFactory.IsSecureProtocol(request.<Uri>k__BackingField);
|
||||
if ((this.<IsTransparent>k__BackingField ? 1 : 0) == num || (flag && (this.<NonTransparentForHTTPS>k__BackingField ? 1 : 0) != num))
|
||||
{
|
||||
int uploadChunkSize = HTTPRequest.UploadChunkSize;
|
||||
WriteOnlyBufferedStream writeOnlyBufferedStream = new WriteOnlyBufferedStream(stream, uploadChunkSize);
|
||||
Encoding utf = Encoding.UTF8;
|
||||
BinaryWriter binaryWriter = new BinaryWriter(writeOnlyBufferedStream, utf);
|
||||
if (request.<IsRedirected>k__BackingField)
|
||||
{
|
||||
}
|
||||
string host = request.<Uri>k__BackingField.Host;
|
||||
if (request.<IsRedirected>k__BackingField)
|
||||
{
|
||||
}
|
||||
int port = request.<Uri>k__BackingField.Port;
|
||||
string text = string.Format("CONNECT {0}:{1} HTTP/1.1", host, port);
|
||||
ILogger logger = HTTPManager.Logger;
|
||||
int num2 = 0;
|
||||
string text2 = "Sending " + text;
|
||||
if (num < num2)
|
||||
{
|
||||
num += num;
|
||||
num++;
|
||||
}
|
||||
if (num < text.m_stringLength)
|
||||
{
|
||||
char c = text[num];
|
||||
binaryWriter.Write(c != '\0');
|
||||
num++;
|
||||
c += c;
|
||||
}
|
||||
byte[] eol = HTTPRequest.EOL;
|
||||
binaryWriter.Write(eol);
|
||||
char c2;
|
||||
binaryWriter.Write(c2 != '\0');
|
||||
num++;
|
||||
byte[] eol2 = HTTPRequest.EOL;
|
||||
binaryWriter.Write(eol2);
|
||||
char c3;
|
||||
binaryWriter.Write(c3 != '\0');
|
||||
num++;
|
||||
byte[] eol3 = HTTPRequest.EOL;
|
||||
binaryWriter.Write(eol3);
|
||||
if (request.<IsRedirected>k__BackingField)
|
||||
{
|
||||
}
|
||||
string host2 = request.<Uri>k__BackingField.Host;
|
||||
if (request.<IsRedirected>k__BackingField)
|
||||
{
|
||||
}
|
||||
int port2 = request.<Uri>k__BackingField.Port;
|
||||
string text3 = string.Format("Host: {0}:{1}", host2, port2);
|
||||
if (num < text3.m_stringLength)
|
||||
{
|
||||
char c4 = text3[num];
|
||||
binaryWriter.Write(c4 != '\0');
|
||||
num++;
|
||||
}
|
||||
byte[] eol4 = HTTPRequest.EOL;
|
||||
binaryWriter.Write(eol4);
|
||||
if (binaryWriter == 0)
|
||||
{
|
||||
goto IL_227;
|
||||
}
|
||||
Stream outStream = binaryWriter.OutStream;
|
||||
if (outStream != 0)
|
||||
{
|
||||
if (outStream == 0)
|
||||
{
|
||||
goto IL_281;
|
||||
}
|
||||
if (outStream != (ulong)1L)
|
||||
{
|
||||
goto IL_227;
|
||||
}
|
||||
}
|
||||
string text4;
|
||||
if (DigestStore.Get(num) != 0 && text4 == 0)
|
||||
{
|
||||
string text5 = string.Format("Proxy-Authorization: {0}", text4);
|
||||
if (HTTPManager.Logger <= (ulong)1L)
|
||||
{
|
||||
ILogger logger2 = HTTPManager.Logger;
|
||||
string text6 = "Sending proxy authorization header: " + text5;
|
||||
}
|
||||
byte[] asciibytes = text5.GetASCIIBytes();
|
||||
binaryWriter.Write(asciibytes);
|
||||
byte[] eol5 = HTTPRequest.EOL;
|
||||
binaryWriter.Write(eol5);
|
||||
VariableSizedBufferPool.Release(asciibytes);
|
||||
goto IL_227;
|
||||
}
|
||||
goto IL_227;
|
||||
IL_31E:
|
||||
HTTPResponse <ProxyResponse>k__BackingField = request.<ProxyResponse>k__BackingField;
|
||||
int num3 = <ProxyResponse>k__BackingField.<StatusCode>k__BackingField;
|
||||
if (num3 != 407)
|
||||
{
|
||||
int num4 = <ProxyResponse>k__BackingField.<StatusCode>k__BackingField;
|
||||
if (num3 > 99)
|
||||
{
|
||||
if (num4 != 304)
|
||||
{
|
||||
goto IL_45F;
|
||||
}
|
||||
num4 += num4;
|
||||
num3 += 13;
|
||||
num3 += 19;
|
||||
}
|
||||
}
|
||||
string text7 = DigestStore.FindBest(<ProxyResponse>k__BackingField.GetHeaderValues("proxy-authenticate"));
|
||||
if (text7 != 0)
|
||||
{
|
||||
goto IL_4F7;
|
||||
}
|
||||
Digest digest;
|
||||
digest.ParseChallange(text7);
|
||||
bool flag2;
|
||||
if (!flag2)
|
||||
{
|
||||
goto IL_4F7;
|
||||
}
|
||||
Dictionary<string, List<string>> <Headers>k__BackingField = request.<Headers>k__BackingField;
|
||||
while (<Headers>k__BackingField == 0)
|
||||
{
|
||||
}
|
||||
if (!<Headers>k__BackingField.ContainsKey("Proxy-Authorization"))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (!digest.<Stale>k__BackingField)
|
||||
{
|
||||
goto IL_4F7;
|
||||
}
|
||||
if (binaryWriter != 0)
|
||||
{
|
||||
}
|
||||
if (digest != (ulong)(-1L))
|
||||
{
|
||||
}
|
||||
if (num != 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
ILogger logger3;
|
||||
if (logger3 != 0)
|
||||
{
|
||||
}
|
||||
if (digest != (ulong)(-1L))
|
||||
{
|
||||
}
|
||||
if (num == 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
continue;
|
||||
IL_227:
|
||||
byte[] eol6 = HTTPRequest.EOL;
|
||||
binaryWriter.Write(eol6);
|
||||
HTTPResponse httpresponse;
|
||||
request.<ProxyResponse>k__BackingField = httpresponse;
|
||||
httpresponse.Dispose();
|
||||
ILogger logger4 = HTTPManager.Logger;
|
||||
ulong num5;
|
||||
if ((ulong)num < num5)
|
||||
{
|
||||
num += num;
|
||||
num++;
|
||||
}
|
||||
int num6 = 0;
|
||||
if (num > 1)
|
||||
{
|
||||
goto IL_31E;
|
||||
}
|
||||
logger3 = HTTPManager.Logger;
|
||||
object[] array = new object[6];
|
||||
if ("Proxy returned - status code: " != 0)
|
||||
{
|
||||
goto IL_281;
|
||||
}
|
||||
IL_2DC:
|
||||
if (request.<ProxyResponse>k__BackingField.<StatusCode>k__BackingField != 0)
|
||||
{
|
||||
}
|
||||
if (" message: " != 0)
|
||||
{
|
||||
}
|
||||
if (request.<ProxyResponse>k__BackingField.<Message>k__BackingField != 0)
|
||||
{
|
||||
}
|
||||
if (" Body: " != 0)
|
||||
{
|
||||
}
|
||||
if (request.<ProxyResponse>k__BackingField.DataAsText != 0)
|
||||
{
|
||||
}
|
||||
num += num;
|
||||
num++;
|
||||
goto IL_31E;
|
||||
IL_281:
|
||||
int num7 = 0;
|
||||
Encoding utf2 = Encoding.UTF8;
|
||||
string text8 = num7 + ":" + num6;
|
||||
string text10;
|
||||
string text9 = "Basic " + text10;
|
||||
byte[] asciibytes2 = string.Format("Proxy-Authorization: {0}", text9).GetASCIIBytes();
|
||||
binaryWriter.Write(asciibytes2);
|
||||
byte[] array2 = HTTPRequest.EOL;
|
||||
binaryWriter.Write(array2);
|
||||
array2 += array2;
|
||||
goto IL_2DC;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return;
|
||||
IL_45F:
|
||||
throw new NullReferenceException();
|
||||
IL_4F7:
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user