aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Common/Net/Handlers/BaseHandler.cs20
1 files changed, 15 insertions, 5 deletions
diff --git a/MediaBrowser.Common/Net/Handlers/BaseHandler.cs b/MediaBrowser.Common/Net/Handlers/BaseHandler.cs
index a63759708..51d56719d 100644
--- a/MediaBrowser.Common/Net/Handlers/BaseHandler.cs
+++ b/MediaBrowser.Common/Net/Handlers/BaseHandler.cs
@@ -13,6 +13,8 @@ namespace MediaBrowser.Common.Net.Handlers
/// </summary>
public IDictionary<string, string> Headers = new Dictionary<string, string>();
+ private Stream CompressedStream { get; set; }
+
public virtual bool UseChunkedEncoding
{
get
@@ -54,7 +56,7 @@ namespace MediaBrowser.Common.Net.Handlers
if (!IsAsyncHandler)
{
- s.Dispose();
+ DisposeResponseStream();
}
};
}
@@ -127,10 +129,9 @@ namespace MediaBrowser.Common.Net.Handlers
{
if (CompressResponse)
{
- using (DeflateStream compressedStream = new DeflateStream(stream, CompressionLevel.Fastest, false))
- {
- WriteResponseToOutputStream(compressedStream);
- }
+ CompressedStream = new DeflateStream(stream, CompressionLevel.Fastest, false);
+
+ WriteResponseToOutputStream(CompressedStream);
}
else
{
@@ -140,5 +141,14 @@ namespace MediaBrowser.Common.Net.Handlers
protected abstract void WriteResponseToOutputStream(Stream stream);
+ protected void DisposeResponseStream()
+ {
+ if (CompressedStream != null)
+ {
+ CompressedStream.Dispose();
+ }
+
+ RequestContext.Response.OutputStream.Dispose();
+ }
}
} \ No newline at end of file