This commit is contained in:
niko
2026-06-04 11:42:34 +02:00
parent f39ba70a9f
commit e720b98cd1
7488 changed files with 2493818 additions and 0 deletions
+274
View File
@@ -0,0 +1,274 @@
using System;
using System.IO;
using System.Runtime.InteropServices;
namespace System.Net
{
// Token: 0x02000250 RID: 592
internal class RequestStream : Stream
{
// Token: 0x060014F2 RID: 5362 RVA: 0x00042FF8 File Offset: 0x000411F8
internal RequestStream(Stream stream, byte[] buffer, int offset, int length)
: this(stream, buffer, offset, length, -1L)
{
}
// Token: 0x060014F3 RID: 5363 RVA: 0x00043008 File Offset: 0x00041208
internal RequestStream(Stream stream, byte[] buffer, int offset, int length, long contentlength)
{
this.stream = stream;
this.buffer = buffer;
this.offset = offset;
this.length = length;
this.remaining_body = contentlength;
}
// Token: 0x170006D7 RID: 1751
// (get) Token: 0x060014F4 RID: 5364 RVA: 0x00043038 File Offset: 0x00041238
public override bool CanRead
{
get
{
return true;
}
}
// Token: 0x170006D8 RID: 1752
// (get) Token: 0x060014F5 RID: 5365 RVA: 0x0004303C File Offset: 0x0004123C
public override bool CanSeek
{
get
{
return false;
}
}
// Token: 0x170006D9 RID: 1753
// (get) Token: 0x060014F6 RID: 5366 RVA: 0x00043040 File Offset: 0x00041240
public override bool CanWrite
{
get
{
return false;
}
}
// Token: 0x170006DA RID: 1754
// (get) Token: 0x060014F7 RID: 5367 RVA: 0x00043044 File Offset: 0x00041244
public override long Length
{
get
{
throw new NotSupportedException();
}
}
// Token: 0x170006DB RID: 1755
// (get) Token: 0x060014F8 RID: 5368 RVA: 0x0004304C File Offset: 0x0004124C
// (set) Token: 0x060014F9 RID: 5369 RVA: 0x00043054 File Offset: 0x00041254
public override long Position
{
get
{
throw new NotSupportedException();
}
set
{
throw new NotSupportedException();
}
}
// Token: 0x060014FA RID: 5370 RVA: 0x0004305C File Offset: 0x0004125C
public override void Close()
{
this.disposed = true;
}
// Token: 0x060014FB RID: 5371 RVA: 0x00043068 File Offset: 0x00041268
public override void Flush()
{
}
// Token: 0x060014FC RID: 5372 RVA: 0x0004306C File Offset: 0x0004126C
private int FillFromBuffer(byte[] buffer, int off, int count)
{
if (buffer == null)
{
throw new ArgumentNullException("buffer");
}
if (off < 0)
{
throw new ArgumentOutOfRangeException("offset", "< 0");
}
if (count < 0)
{
throw new ArgumentOutOfRangeException("count", "< 0");
}
int num = buffer.Length;
if (off > num)
{
throw new ArgumentException("destination offset is beyond array size");
}
if (off > num - count)
{
throw new ArgumentException("Reading would overrun buffer");
}
if (this.remaining_body == 0L)
{
return -1;
}
if (this.length == 0)
{
return 0;
}
int num2 = Math.Min(this.length, count);
if (this.remaining_body > 0L)
{
num2 = (int)Math.Min((long)num2, this.remaining_body);
}
if (this.offset > this.buffer.Length - num2)
{
num2 = Math.Min(num2, this.buffer.Length - this.offset);
}
if (num2 == 0)
{
return 0;
}
Buffer.BlockCopy(this.buffer, this.offset, buffer, off, num2);
this.offset += num2;
this.length -= num2;
if (this.remaining_body > 0L)
{
this.remaining_body -= (long)num2;
}
return num2;
}
// Token: 0x060014FD RID: 5373 RVA: 0x000431A8 File Offset: 0x000413A8
public override int Read([In] [Out] byte[] buffer, int offset, int count)
{
if (this.disposed)
{
throw new ObjectDisposedException(typeof(RequestStream).ToString());
}
int num = this.FillFromBuffer(buffer, offset, count);
if (num == -1)
{
return 0;
}
if (num > 0)
{
return num;
}
num = this.stream.Read(buffer, offset, count);
if (num > 0 && this.remaining_body > 0L)
{
this.remaining_body -= (long)num;
}
return num;
}
// Token: 0x060014FE RID: 5374 RVA: 0x00043224 File Offset: 0x00041424
public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback cback, object state)
{
if (this.disposed)
{
throw new ObjectDisposedException(typeof(RequestStream).ToString());
}
int num = this.FillFromBuffer(buffer, offset, count);
if (num > 0 || num == -1)
{
HttpStreamAsyncResult httpStreamAsyncResult = new HttpStreamAsyncResult();
httpStreamAsyncResult.Buffer = buffer;
httpStreamAsyncResult.Offset = offset;
httpStreamAsyncResult.Count = count;
httpStreamAsyncResult.Callback = cback;
httpStreamAsyncResult.State = state;
httpStreamAsyncResult.SynchRead = num;
httpStreamAsyncResult.Complete();
return httpStreamAsyncResult;
}
if (this.remaining_body >= 0L && (long)count > this.remaining_body)
{
count = (int)Math.Min(2147483647L, this.remaining_body);
}
return this.stream.BeginRead(buffer, offset, count, cback, state);
}
// Token: 0x060014FF RID: 5375 RVA: 0x000432E4 File Offset: 0x000414E4
public override int EndRead(IAsyncResult ares)
{
if (this.disposed)
{
throw new ObjectDisposedException(typeof(RequestStream).ToString());
}
if (ares == null)
{
throw new ArgumentNullException("async_result");
}
if (ares is HttpStreamAsyncResult)
{
HttpStreamAsyncResult httpStreamAsyncResult = (HttpStreamAsyncResult)ares;
if (!ares.IsCompleted)
{
ares.AsyncWaitHandle.WaitOne();
}
return httpStreamAsyncResult.SynchRead;
}
int num = this.stream.EndRead(ares);
if (this.remaining_body > 0L && num > 0)
{
this.remaining_body -= (long)num;
}
return num;
}
// Token: 0x06001500 RID: 5376 RVA: 0x00043384 File Offset: 0x00041584
public override long Seek(long offset, SeekOrigin origin)
{
throw new NotSupportedException();
}
// Token: 0x06001501 RID: 5377 RVA: 0x0004338C File Offset: 0x0004158C
public override void SetLength(long value)
{
throw new NotSupportedException();
}
// Token: 0x06001502 RID: 5378 RVA: 0x00043394 File Offset: 0x00041594
public override void Write(byte[] buffer, int offset, int count)
{
throw new NotSupportedException();
}
// Token: 0x06001503 RID: 5379 RVA: 0x0004339C File Offset: 0x0004159C
public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback cback, object state)
{
throw new NotSupportedException();
}
// Token: 0x06001504 RID: 5380 RVA: 0x000433A4 File Offset: 0x000415A4
public override void EndWrite(IAsyncResult async_result)
{
throw new NotSupportedException();
}
// Token: 0x0400119F RID: 4511
private byte[] buffer;
// Token: 0x040011A0 RID: 4512
private int offset;
// Token: 0x040011A1 RID: 4513
private int length;
// Token: 0x040011A2 RID: 4514
private long remaining_body;
// Token: 0x040011A3 RID: 4515
private bool disposed;
// Token: 0x040011A4 RID: 4516
private Stream stream;
}
}