Commit 146152ee authored by Stéphane Graziano's avatar Stéphane Graziano
parents 044a8e06 b309fc21
...@@ -72,8 +72,8 @@ ...@@ -72,8 +72,8 @@
<Prefer32Bit>true</Prefer32Bit> <Prefer32Bit>true</Prefer32Bit>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="StreamExtended, Version=1.0.190.0, Culture=neutral, PublicKeyToken=bbfa0f1d54f50043, processorArchitecture=MSIL"> <Reference Include="StreamExtended, Version=1.0.201.0, Culture=neutral, PublicKeyToken=bbfa0f1d54f50043, processorArchitecture=MSIL">
<HintPath>..\..\src\packages\StreamExtended.1.0.190\lib\net45\StreamExtended.dll</HintPath> <HintPath>..\..\src\packages\StreamExtended.1.0.201\lib\net45\StreamExtended.dll</HintPath>
</Reference> </Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Data" /> <Reference Include="System.Data" />
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="StreamExtended" version="1.0.190" targetFramework="net45" /> <package id="StreamExtended" version="1.0.201" targetFramework="net45" />
</packages> </packages>
\ No newline at end of file
...@@ -153,9 +153,14 @@ namespace Titanium.Web.Proxy ...@@ -153,9 +153,14 @@ namespace Titanium.Web.Proxy
} }
if (EnableTcpServerConnectionPrefetch) if (EnableTcpServerConnectionPrefetch)
{
IPAddress[] ipAddresses = null;
try
{ {
//make sure the host can be resolved before creating the prefetch task //make sure the host can be resolved before creating the prefetch task
var ipAddresses = await Dns.GetHostAddressesAsync(connectArgs.HttpClient.Request.RequestUri.Host); ipAddresses = await Dns.GetHostAddressesAsync(connectArgs.HttpClient.Request.RequestUri.Host);
}
catch (SocketException) { }
if (ipAddresses != null && ipAddresses.Length > 0) if (ipAddresses != null && ipAddresses.Length > 0)
{ {
......
...@@ -18,18 +18,13 @@ namespace Titanium.Web.Proxy.Helpers ...@@ -18,18 +18,13 @@ namespace Titanium.Web.Proxy.Helpers
private static readonly byte[] newLine = ProxyConstants.NewLineBytes; private static readonly byte[] newLine = ProxyConstants.NewLineBytes;
private static readonly Encoder encoder = Encoding.ASCII.GetEncoder(); private static readonly Encoding encoder = Encoding.ASCII;
private readonly char[] charBuffer;
internal HttpWriter(Stream stream, IBufferPool bufferPool, int bufferSize) internal HttpWriter(Stream stream, IBufferPool bufferPool, int bufferSize)
{ {
BufferSize = bufferSize; BufferSize = bufferSize;
this.stream = stream; this.stream = stream;
this.bufferPool = bufferPool; this.bufferPool = bufferPool;
// ASCII encoder max byte count is char count + 1
charBuffer = new char[BufferSize - 1];
} }
internal int BufferSize { get; } internal int BufferSize { get; }
...@@ -55,12 +50,10 @@ namespace Titanium.Web.Proxy.Helpers ...@@ -55,12 +50,10 @@ namespace Titanium.Web.Proxy.Helpers
int charCount = value.Length; int charCount = value.Length;
if (charCount < BufferSize - newLineChars) if (charCount < BufferSize - newLineChars)
{ {
value.CopyTo(0, charBuffer, 0, charCount);
var buffer = bufferPool.GetBuffer(BufferSize); var buffer = bufferPool.GetBuffer(BufferSize);
try try
{ {
int idx = encoder.GetBytes(charBuffer, 0, charCount, buffer, 0, true); int idx = encoder.GetBytes(value, 0, charCount, buffer, 0);
if (newLineChars > 0) if (newLineChars > 0)
{ {
Buffer.BlockCopy(newLine, 0, buffer, idx, newLineChars); Buffer.BlockCopy(newLine, 0, buffer, idx, newLineChars);
...@@ -76,11 +69,8 @@ namespace Titanium.Web.Proxy.Helpers ...@@ -76,11 +69,8 @@ namespace Titanium.Web.Proxy.Helpers
} }
else else
{ {
var charBuffer = new char[charCount];
value.CopyTo(0, charBuffer, 0, charCount);
var buffer = new byte[charCount + newLineChars + 1]; var buffer = new byte[charCount + newLineChars + 1];
int idx = encoder.GetBytes(charBuffer, 0, charCount, buffer, 0, true); int idx = encoder.GetBytes(value, 0, charCount, buffer, 0);
if (newLineChars > 0) if (newLineChars > 0)
{ {
Buffer.BlockCopy(newLine, 0, buffer, idx, newLineChars); Buffer.BlockCopy(newLine, 0, buffer, idx, newLineChars);
......
...@@ -13,9 +13,9 @@ ...@@ -13,9 +13,9 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="BrotliSharpLib" Version="0.3.1" /> <PackageReference Include="BrotliSharpLib" Version="0.3.3" />
<PackageReference Include="Portable.BouncyCastle" Version="1.8.3.37" /> <PackageReference Include="Portable.BouncyCastle" Version="1.8.5" />
<PackageReference Include="StreamExtended" Version="1.0.190" /> <PackageReference Include="StreamExtended" Version="1.0.201" />
</ItemGroup> </ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'"> <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
......
...@@ -15,14 +15,14 @@ ...@@ -15,14 +15,14 @@
<tags></tags> <tags></tags>
<dependencies> <dependencies>
<group targetFramework="net45"> <group targetFramework="net45">
<dependency id="StreamExtended" version="1.0.190" /> <dependency id="StreamExtended" version="1.0.201" />
<dependency id="Portable.BouncyCastle" version="1.8.3.37" /> <dependency id="Portable.BouncyCastle" version="1.8.5" />
<dependency id="BrotliSharpLib" version="0.3.1" /> <dependency id="BrotliSharpLib" version="0.3.3" />
</group> </group>
<group targetFramework="netstandard2.0"> <group targetFramework="netstandard2.0">
<dependency id="StreamExtended" version="1.0.190" /> <dependency id="StreamExtended" version="1.0.201" />
<dependency id="Portable.BouncyCastle" version="1.8.3.37" /> <dependency id="Portable.BouncyCastle" version="1.8.5" />
<dependency id="BrotliSharpLib" version="0.3.1" /> <dependency id="BrotliSharpLib" version="0.3.3" />
<dependency id="Microsoft.Win32.Registry" version="4.4.0" /> <dependency id="Microsoft.Win32.Registry" version="4.4.0" />
<dependency id="System.Security.Principal.Windows" version="4.4.1" /> <dependency id="System.Security.Principal.Windows" version="4.4.1" />
</group> </group>
......
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