diff --git a/src/Unosquare.Labs.EmbedIO.Command/project.json b/src/Unosquare.Labs.EmbedIO.Command/project.json index 3ba7eb8ee..9de501c18 100644 --- a/src/Unosquare.Labs.EmbedIO.Command/project.json +++ b/src/Unosquare.Labs.EmbedIO.Command/project.json @@ -17,7 +17,7 @@ }, "netcoreapp1.1": { "dependencies": { - "Microsoft.NETCore.App": "1.1.1", + "Microsoft.NETCore.App": "1.1.2", "System.Runtime.Loader": "4.3.0" } } diff --git a/src/Unosquare.Labs.EmbedIO.Samples/project.json b/src/Unosquare.Labs.EmbedIO.Samples/project.json index b8aff7a68..2998ae768 100644 --- a/src/Unosquare.Labs.EmbedIO.Samples/project.json +++ b/src/Unosquare.Labs.EmbedIO.Samples/project.json @@ -15,7 +15,7 @@ "frameworks": { "netcoreapp1.1": { "dependencies": { - "Microsoft.NETCore.App": "1.1.1" + "Microsoft.NETCore.App": "1.1.2" } }, "net452": { diff --git a/src/Unosquare.Labs.EmbedIO/Extensions.cs b/src/Unosquare.Labs.EmbedIO/Extensions.cs index feec5e3c7..7a9fe5689 100644 --- a/src/Unosquare.Labs.EmbedIO/Extensions.cs +++ b/src/Unosquare.Labs.EmbedIO/Extensions.cs @@ -455,7 +455,8 @@ private static Dictionary ParseFormDataAsDictionary(string reque /// The method. /// The mode. /// - public static MemoryStream Compress(this Stream buffer, CompressionMethod method = CompressionMethod.Gzip, CompressionMode mode = CompressionMode.Compress) + public static MemoryStream Compress(this Stream buffer, CompressionMethod method = CompressionMethod.Gzip, + CompressionMode mode = CompressionMode.Compress) { buffer.Position = 0; var targetStream = new MemoryStream(); @@ -463,19 +464,41 @@ public static MemoryStream Compress(this Stream buffer, CompressionMethod method switch (method) { case CompressionMethod.Deflate: - using (var compressor = new DeflateStream(targetStream, mode, true)) + if (mode == CompressionMode.Compress) { - buffer.CopyTo(compressor, 1024); - buffer.CopyTo(compressor); - // WebSocket use this - targetStream.Write(Last, 0, 1); - targetStream.Position = 0; + using (var compressor = new DeflateStream(targetStream, CompressionMode.Compress, true)) + { + buffer.CopyTo(compressor, 1024); + buffer.CopyTo(compressor); + // WebSocket use this + targetStream.Write(Last, 0, 1); + targetStream.Position = 0; + } + } + else + { + using (var compressor = new DeflateStream(buffer, CompressionMode.Decompress)) + { + compressor.CopyTo(targetStream); + } + } break; case CompressionMethod.Gzip: - using (var compressor = new GZipStream(targetStream, mode, true)) + if (mode == CompressionMode.Compress) { - buffer.CopyTo(compressor); + using (var compressor = new GZipStream(targetStream, CompressionMode.Compress, true)) + { + buffer.CopyTo(compressor); + } + } + else + { + using (var compressor = new GZipStream(buffer, CompressionMode.Decompress)) + { + compressor.CopyTo(targetStream); + } + } break; case CompressionMethod.None: @@ -487,7 +510,7 @@ public static MemoryStream Compress(this Stream buffer, CompressionMethod method return targetStream; } - + /// /// Compresses/Decompresses the specified buffer using the compression algorithm. /// diff --git a/test/Unosquare.Labs.EmbedIO.Tests/project.json b/test/Unosquare.Labs.EmbedIO.Tests/project.json index 53a4a5397..c18a20ceb 100644 --- a/test/Unosquare.Labs.EmbedIO.Tests/project.json +++ b/test/Unosquare.Labs.EmbedIO.Tests/project.json @@ -6,7 +6,7 @@ }, "dependencies": { "dotnet-test-nunit": "3.4.0-beta-3", - "NUnit": "3.6.1", + "NUnit": "3.7.0", "Unosquare.Labs.EmbedIO": { "target": "project" } }, @@ -16,14 +16,14 @@ "netcoreapp1.1": { "imports": "dnxcore50", "dependencies": { - "Microsoft.NETCore.App": "1.1.1", + "Microsoft.NETCore.App": "1.1.2", "System.Net.Http": "4.3.1" } }, "netcoreapp1.0": { "imports": "dnxcore50", "dependencies": { - "Microsoft.NETCore.App": "1.0.4", + "Microsoft.NETCore.App": "1.1.2", "System.Net.Http": "4.3.1" } },