aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Common/Net
diff options
context:
space:
mode:
authorLukePulverenti <luke.pulverenti@gmail.com>2013-02-25 00:17:59 -0500
committerLukePulverenti <luke.pulverenti@gmail.com>2013-02-25 00:17:59 -0500
commit364fbb9e0c7586afa296ddd7d739df086f4c3533 (patch)
tree4b643b13ebdc31b95d0544c87e9fa398571c450e /MediaBrowser.Common/Net
parentb075e0a5b963435c67b7027f85b51ff181adc2d1 (diff)
fixed plugin assembly downloads as well as debug/release detection with nuget assemblies
Diffstat (limited to 'MediaBrowser.Common/Net')
-rw-r--r--MediaBrowser.Common/Net/BaseRestService.cs9
-rw-r--r--MediaBrowser.Common/Net/MimeTypes.cs2
-rw-r--r--MediaBrowser.Common/Net/StreamWriter.cs48
3 files changed, 57 insertions, 2 deletions
diff --git a/MediaBrowser.Common/Net/BaseRestService.cs b/MediaBrowser.Common/Net/BaseRestService.cs
index 59818a932..a7e95fca2 100644
--- a/MediaBrowser.Common/Net/BaseRestService.cs
+++ b/MediaBrowser.Common/Net/BaseRestService.cs
@@ -241,6 +241,10 @@ namespace MediaBrowser.Common.Net
{
return false;
}
+ if (contentType.StartsWith("application/", StringComparison.OrdinalIgnoreCase))
+ {
+ return false;
+ }
return true;
}
@@ -257,7 +261,10 @@ namespace MediaBrowser.Common.Net
if (!compress || string.IsNullOrEmpty(RequestContext.CompressionType))
{
Response.ContentType = contentType;
- return await factoryFn().ConfigureAwait(false);
+
+ var stream = await factoryFn().ConfigureAwait(false);
+
+ return new StreamWriter(stream);
}
string content;
diff --git a/MediaBrowser.Common/Net/MimeTypes.cs b/MediaBrowser.Common/Net/MimeTypes.cs
index b9d0347d7..7bd01bf6d 100644
--- a/MediaBrowser.Common/Net/MimeTypes.cs
+++ b/MediaBrowser.Common/Net/MimeTypes.cs
@@ -173,7 +173,7 @@ namespace MediaBrowser.Common.Net
// Misc
if (ext.Equals(".dll", StringComparison.OrdinalIgnoreCase))
{
- return "application/x-msdownload";
+ return "application/octet-stream";
}
// Web
diff --git a/MediaBrowser.Common/Net/StreamWriter.cs b/MediaBrowser.Common/Net/StreamWriter.cs
new file mode 100644
index 000000000..220c52578
--- /dev/null
+++ b/MediaBrowser.Common/Net/StreamWriter.cs
@@ -0,0 +1,48 @@
+using ServiceStack.Service;
+using System.IO;
+using System.Threading.Tasks;
+
+namespace MediaBrowser.Common.Net
+{
+ /// <summary>
+ /// Class StreamWriter
+ /// </summary>
+ public class StreamWriter : IStreamWriter
+ {
+ /// <summary>
+ /// Gets or sets the source stream.
+ /// </summary>
+ /// <value>The source stream.</value>
+ public Stream SourceStream { get; set; }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="StreamWriter" /> class.
+ /// </summary>
+ /// <param name="source">The source.</param>
+ public StreamWriter(Stream source)
+ {
+ SourceStream = source;
+ }
+
+ /// <summary>
+ /// Writes to.
+ /// </summary>
+ /// <param name="responseStream">The response stream.</param>
+ public void WriteTo(Stream responseStream)
+ {
+ var task = WriteToAsync(responseStream);
+
+ Task.WaitAll(task);
+ }
+
+ /// <summary>
+ /// Writes to async.
+ /// </summary>
+ /// <param name="responseStream">The response stream.</param>
+ /// <returns>Task.</returns>
+ private Task WriteToAsync(Stream responseStream)
+ {
+ return SourceStream.CopyToAsync(responseStream);
+ }
+ }
+}