Commit a5c57013 authored by mikhaylov's avatar mikhaylov

Remove unnecessery dependency on DotNetZip library

parent 2e518643
...@@ -13,8 +13,6 @@ ...@@ -13,8 +13,6 @@
return new GZipCompression(); return new GZipCompression();
case "deflate": case "deflate":
return new DeflateCompression(); return new DeflateCompression();
case "zlib":
return new ZlibCompression();
default: default:
return null; return null;
} }
......
using Ionic.Zlib; using System.IO;
using System.IO; using System.IO.Compression;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace Titanium.Web.Proxy.Compression namespace Titanium.Web.Proxy.Compression
......
using Ionic.Zlib;
using System.IO;
using System.Threading.Tasks;
namespace Titanium.Web.Proxy.Compression
{
/// <summary>
/// concrete implementation of zlib compression
/// </summary>
internal class ZlibCompression : ICompression
{
public async Task<byte[]> Compress(byte[] responseBody)
{
using (var ms = new MemoryStream())
{
using (var zip = new ZlibStream(ms, CompressionMode.Compress, true))
{
await zip.WriteAsync(responseBody, 0, responseBody.Length);
}
return ms.ToArray();
}
}
}
}
...@@ -13,8 +13,6 @@ ...@@ -13,8 +13,6 @@
return new GZipDecompression(); return new GZipDecompression();
case "deflate": case "deflate":
return new DeflateDecompression(); return new DeflateDecompression();
case "zlib":
return new ZlibDecompression();
default: default:
return new DefaultDecompression(); return new DefaultDecompression();
} }
......
using Ionic.Zlib; using System.IO;
using System.IO; using System.IO.Compression;
using System.Threading.Tasks; using System.Threading.Tasks;
using Titanium.Web.Proxy.Shared;
namespace Titanium.Web.Proxy.Decompression namespace Titanium.Web.Proxy.Decompression
{ {
...@@ -12,8 +11,7 @@ namespace Titanium.Web.Proxy.Decompression ...@@ -12,8 +11,7 @@ namespace Titanium.Web.Proxy.Decompression
{ {
public async Task<byte[]> Decompress(byte[] compressedArray, int bufferSize) public async Task<byte[]> Decompress(byte[] compressedArray, int bufferSize)
{ {
var stream = new MemoryStream(compressedArray); using (var stream = new MemoryStream(compressedArray))
using (var decompressor = new DeflateStream(stream, CompressionMode.Decompress)) using (var decompressor = new DeflateStream(stream, CompressionMode.Decompress))
{ {
var buffer = new byte[bufferSize]; var buffer = new byte[bufferSize];
...@@ -23,7 +21,7 @@ namespace Titanium.Web.Proxy.Decompression ...@@ -23,7 +21,7 @@ namespace Titanium.Web.Proxy.Decompression
int read; int read;
while ((read = await decompressor.ReadAsync(buffer, 0, buffer.Length)) > 0) while ((read = await decompressor.ReadAsync(buffer, 0, buffer.Length)) > 0)
{ {
await output.WriteAsync(buffer, 0, read); await output.WriteAsync(buffer, 0, read);
} }
return output.ToArray(); return output.ToArray();
......
using Ionic.Zlib;
using System.IO;
using System.Threading.Tasks;
using Titanium.Web.Proxy.Shared;
namespace Titanium.Web.Proxy.Decompression
{
/// <summary>
/// concrete implemetation of zlib de-compression
/// </summary>
internal class ZlibDecompression : IDecompression
{
public async Task<byte[]> Decompress(byte[] compressedArray, int bufferSize)
{
var memoryStream = new MemoryStream(compressedArray);
using (var decompressor = new ZlibStream(memoryStream, CompressionMode.Decompress))
{
var buffer = new byte[bufferSize];
using (var output = new MemoryStream())
{
int read;
while ((read = await decompressor.ReadAsync(buffer, 0, buffer.Length)) > 0)
{
await output.WriteAsync(buffer, 0, read);
}
return output.ToArray();
}
}
}
}
}
...@@ -568,7 +568,7 @@ namespace Titanium.Web.Proxy ...@@ -568,7 +568,7 @@ namespace Titanium.Web.Proxy
{ {
//these are the only encoding this proxy can read //these are the only encoding this proxy can read
case "accept-encoding": case "accept-encoding":
header.Value = "gzip,deflate,zlib"; header.Value = "gzip,deflate";
break; break;
default: default:
......
...@@ -42,10 +42,6 @@ ...@@ -42,10 +42,6 @@
<AssemblyOriginatorKeyFile>StrongNameKey.snk</AssemblyOriginatorKeyFile> <AssemblyOriginatorKeyFile>StrongNameKey.snk</AssemblyOriginatorKeyFile>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="Ionic.Zip, Version=1.9.8.0, Culture=neutral, PublicKeyToken=6583c7c814667745, processorArchitecture=MSIL">
<HintPath>..\packages\DotNetZip.1.9.8\lib\net20\Ionic.Zip.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Net" /> <Reference Include="System.Net" />
<Reference Include="System.configuration" /> <Reference Include="System.configuration" />
...@@ -62,13 +58,11 @@ ...@@ -62,13 +58,11 @@
<Compile Include="Compression\DeflateCompression.cs" /> <Compile Include="Compression\DeflateCompression.cs" />
<Compile Include="Compression\GZipCompression.cs" /> <Compile Include="Compression\GZipCompression.cs" />
<Compile Include="Compression\ICompression.cs" /> <Compile Include="Compression\ICompression.cs" />
<Compile Include="Compression\ZlibCompression.cs" />
<Compile Include="Decompression\DecompressionFactory.cs" /> <Compile Include="Decompression\DecompressionFactory.cs" />
<Compile Include="Decompression\DefaultDecompression.cs" /> <Compile Include="Decompression\DefaultDecompression.cs" />
<Compile Include="Decompression\DeflateDecompression.cs" /> <Compile Include="Decompression\DeflateDecompression.cs" />
<Compile Include="Decompression\GZipDecompression.cs" /> <Compile Include="Decompression\GZipDecompression.cs" />
<Compile Include="Decompression\IDecompression.cs" /> <Compile Include="Decompression\IDecompression.cs" />
<Compile Include="Decompression\ZlibDecompression.cs" />
<Compile Include="EventArguments\CertificateSelectionEventArgs.cs" /> <Compile Include="EventArguments\CertificateSelectionEventArgs.cs" />
<Compile Include="EventArguments\CertificateValidationEventArgs.cs" /> <Compile Include="EventArguments\CertificateValidationEventArgs.cs" />
<Compile Include="Extensions\ByteArrayExtensions.cs" /> <Compile Include="Extensions\ByteArrayExtensions.cs" />
...@@ -123,7 +117,6 @@ ...@@ -123,7 +117,6 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="app.config" /> <None Include="app.config" />
<None Include="packages.config" />
<None Include="StrongNameKey.snk" /> <None Include="StrongNameKey.snk" />
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
......
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="DotNetZip" version="1.9.8" targetFramework="net45" />
</packages>
\ No newline at end of file
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