Commit 236e7563 authored by Honfika's avatar Honfika

get buffer from bufferpool

parent e7a9d66a
...@@ -174,6 +174,7 @@ namespace Titanium.Web.Proxy.Http ...@@ -174,6 +174,7 @@ namespace Titanium.Web.Proxy.Http
Response.Is100Continue = true; Response.Is100Continue = true;
Response.StatusCode = 0; Response.StatusCode = 0;
await ServerConnection.StreamReader.ReadLineAsync(); await ServerConnection.StreamReader.ReadLineAsync();
//now receive response //now receive response
await ReceiveResponse(); await ReceiveResponse();
return; return;
...@@ -186,6 +187,7 @@ namespace Titanium.Web.Proxy.Http ...@@ -186,6 +187,7 @@ namespace Titanium.Web.Proxy.Http
Response.ExpectationFailed = true; Response.ExpectationFailed = true;
Response.StatusCode = 0; Response.StatusCode = 0;
await ServerConnection.StreamReader.ReadLineAsync(); await ServerConnection.StreamReader.ReadLineAsync();
//now receive response //now receive response
await ReceiveResponse(); await ReceiveResponse();
return; return;
......
...@@ -7,6 +7,7 @@ using System.Net.Sockets; ...@@ -7,6 +7,7 @@ using System.Net.Sockets;
using System.Security.Authentication; using System.Security.Authentication;
using System.Threading.Tasks; using System.Threading.Tasks;
using StreamExtended; using StreamExtended;
using StreamExtended.Helpers;
using StreamExtended.Network; using StreamExtended.Network;
using Titanium.Web.Proxy.EventArguments; using Titanium.Web.Proxy.EventArguments;
using Titanium.Web.Proxy.Exceptions; using Titanium.Web.Proxy.Exceptions;
...@@ -166,10 +167,19 @@ namespace Titanium.Web.Proxy ...@@ -166,10 +167,19 @@ namespace Titanium.Web.Proxy
if (clientStream.Available > 0) if (clientStream.Available > 0)
{ {
//send the buffered data //send the buffered data
var data = new byte[clientStream.Available]; var data = BufferPool.GetBuffer(BufferSize);
await clientStream.ReadAsync(data, 0, data.Length);
try
{
// clientStream.Available sbould be at most BufferSize because it is using the same buffer size
await clientStream.ReadAsync(data, 0, clientStream.Available);
await connection.StreamWriter.WriteAsync(data, true); await connection.StreamWriter.WriteAsync(data, true);
} }
finally
{
BufferPool.ReturnBuffer(data);
}
}
var serverHelloInfo = await SslTools.PeekServerHello(connection.Stream); var serverHelloInfo = await SslTools.PeekServerHello(connection.Stream);
((ConnectResponse)connectArgs.WebSession.Response).ServerHelloInfo = serverHelloInfo; ((ConnectResponse)connectArgs.WebSession.Response).ServerHelloInfo = serverHelloInfo;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment