Skip to content
This repository was archived by the owner on Jul 9, 2023. It is now read-only.

Commit 158e728

Browse files
committed
#823 Update TODO comments
1 parent 476f877 commit 158e728

File tree

3 files changed

+15
-2
lines changed

3 files changed

+15
-2
lines changed

src/Titanium.Web.Proxy/Helpers/HttpStream.cs

+11-2
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ internal class HttpStream : Stream, IHttpStreamWriter, IHttpStreamReader, IPeekS
4141
private readonly IBufferPool bufferPool;
4242
private readonly CancellationToken cancellationToken;
4343

44+
public bool IsNetworkStream => isNetworkStream;
45+
4446
public event EventHandler<DataEventArgs>? DataRead;
4547

4648
public event EventHandler<DataEventArgs>? DataWrite;
@@ -1056,8 +1058,11 @@ public Task CopyBodyAsync(IHttpStreamWriter writer, bool isChunked, long content
10561058
{
10571059

10581060
#if DEBUG
1059-
if ((isRequest && args.HttpClient.Request.OriginalHasBody && !args.HttpClient.Request.IsBodyRead && server.ShouldCallBeforeRequestBodyWrite())
1060-
|| (!isRequest && args.HttpClient.Response.OriginalHasBody && !args.HttpClient.Response.IsBodyRead && server.ShouldCallBeforeResponseBodyWrite()))
1061+
var isResponse = !isRequest;
1062+
1063+
if (isNetworkStream && writer.IsNetworkStream &&
1064+
(isRequest && args.HttpClient.Request.OriginalHasBody && !args.HttpClient.Request.IsBodyRead && server.ShouldCallBeforeRequestBodyWrite()) ||
1065+
(isResponse && args.HttpClient.Response.OriginalHasBody && !args.HttpClient.Response.IsBodyRead && server.ShouldCallBeforeResponseBodyWrite()))
10611066
{
10621067
return handleBodyWrite(writer, isChunked, contentLength, isRequest, args, cancellationToken);
10631068
}
@@ -1084,6 +1089,10 @@ private Task handleBodyWrite(IHttpStreamWriter writer, bool isChunked, long cont
10841089
var originalContentLength = isRequest ? args.HttpClient.Request.OriginalContentLength : args.HttpClient.Response.OriginalContentLength;
10851090
var originalIsChunked = isRequest ? args.HttpClient.Request.OriginalIsChunked : args.HttpClient.Response.OriginalIsChunked;
10861091

1092+
//TODO
1093+
//create a new decompression stream to wrap this source HttpStream based on original content encoding if needed.
1094+
//create a new compression stream to wrap target writer stream based on content encoding if needed.
1095+
10871096
//1. Begin while(true) loop
10881097
//2. Parse chunk if chunked, and read bytes from original stream. Max length of bytes read will be equal to bufferPool.BufferSize.
10891098
//3. Call BeforeBodyWrite event handler with BeforeBodyWriteEventArgs.BodyBytes set to the bytes read from original stream (pass null if original stream reached its end).

src/Titanium.Web.Proxy/Helpers/NullWriter.cs

+2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ internal class NullWriter : IHttpStreamWriter
88
{
99
public static NullWriter Instance { get; } = new NullWriter();
1010

11+
public bool IsNetworkStream => false;
12+
1113
private NullWriter()
1214
{
1315
}

src/Titanium.Web.Proxy/StreamExtended/Network/IHttpStreamWriter.cs

+2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ namespace Titanium.Web.Proxy.StreamExtended.Network
88
/// </summary>
99
public interface IHttpStreamWriter
1010
{
11+
bool IsNetworkStream { get; }
12+
1113
void Write(byte[] buffer, int offset, int count);
1214

1315
Task WriteAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken);

0 commit comments

Comments
 (0)