浏览代码

Merge pull request #455 from Bond-009/cleanup

Cleanup some small things
Joshua M. Boniface 6 年之前
父节点
当前提交
7aa975325a

+ 2 - 3
Emby.Server.Implementations/ApplicationHost.cs

@@ -230,7 +230,6 @@ namespace Emby.Server.Implementations
         {
         {
             get
             get
             {
             {
-
 #if BETA
 #if BETA
                 return PackageVersionClass.Beta;
                 return PackageVersionClass.Beta;
 #endif
 #endif
@@ -510,7 +509,7 @@ namespace Emby.Server.Implementations
         protected void RegisterSingleInstance<T>(T obj, bool manageLifetime = true)
         protected void RegisterSingleInstance<T>(T obj, bool manageLifetime = true)
             where T : class
             where T : class
         {
         {
-            Container.RegisterSingleton(obj);
+            Container.RegisterInstance<T>(obj);
 
 
             if (manageLifetime)
             if (manageLifetime)
             {
             {
@@ -575,7 +574,7 @@ namespace Emby.Server.Implementations
             }
             }
             catch (Exception ex)
             catch (Exception ex)
             {
             {
-                Logger.LogError(ex, "Error loading assembly {file}", file);
+                Logger.LogError(ex, "Error loading assembly {File}", file);
                 return null;
                 return null;
             }
             }
         }
         }

+ 1 - 1
Emby.Server.Implementations/HttpClientManager/HttpClientManager.cs

@@ -389,7 +389,7 @@ namespace Emby.Server.Implementations.HttpClientManager
             {
             {
                 options.ResourcePool?.Release();
                 options.ResourcePool?.Release();
 
 
-                throw new HttpException(string.Format("Connection to {0} timed out", options.Url)) { IsTimedOut = true };
+                throw new HttpException($"Connection to {options.Url} timed out") { IsTimedOut = true };
             }
             }
 
 
             if (options.LogRequest)
             if (options.LogRequest)

+ 47 - 83
Emby.Server.Implementations/HttpServer/HttpListenerHost.cs

@@ -1,26 +1,26 @@
-using MediaBrowser.Common.Extensions;
-using MediaBrowser.Controller.Configuration;
-using MediaBrowser.Controller.Net;
-using Microsoft.Extensions.Logging;
 using System;
 using System;
 using System.Collections.Generic;
 using System.Collections.Generic;
 using System.Globalization;
 using System.Globalization;
 using System.IO;
 using System.IO;
 using System.Linq;
 using System.Linq;
+using System.Net.Sockets;
 using System.Reflection;
 using System.Reflection;
 using System.Text;
 using System.Text;
 using System.Threading;
 using System.Threading;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
+using Emby.Server.Implementations.Net;
 using Emby.Server.Implementations.Services;
 using Emby.Server.Implementations.Services;
+using MediaBrowser.Common.Extensions;
 using MediaBrowser.Common.Net;
 using MediaBrowser.Common.Net;
 using MediaBrowser.Controller;
 using MediaBrowser.Controller;
+using MediaBrowser.Controller.Configuration;
+using MediaBrowser.Controller.Net;
+using MediaBrowser.Model.Events;
 using MediaBrowser.Model.Extensions;
 using MediaBrowser.Model.Extensions;
 using MediaBrowser.Model.Serialization;
 using MediaBrowser.Model.Serialization;
 using MediaBrowser.Model.Services;
 using MediaBrowser.Model.Services;
 using MediaBrowser.Model.Text;
 using MediaBrowser.Model.Text;
-using System.Net.Sockets;
-using Emby.Server.Implementations.Net;
-using MediaBrowser.Model.Events;
+using Microsoft.Extensions.Logging;
 
 
 namespace Emby.Server.Implementations.HttpServer
 namespace Emby.Server.Implementations.HttpServer
 {
 {
@@ -54,39 +54,33 @@ namespace Emby.Server.Implementations.HttpServer
         private IWebSocketListener[] _webSocketListeners = Array.Empty<IWebSocketListener>();
         private IWebSocketListener[] _webSocketListeners = Array.Empty<IWebSocketListener>();
         private readonly List<IWebSocketConnection> _webSocketConnections = new List<IWebSocketConnection>();
         private readonly List<IWebSocketConnection> _webSocketConnections = new List<IWebSocketConnection>();
 
 
-        public HttpListenerHost(IServerApplicationHost applicationHost,
+        public HttpListenerHost(
+            IServerApplicationHost applicationHost,
             ILogger logger,
             ILogger logger,
             IServerConfigurationManager config,
             IServerConfigurationManager config,
-            string defaultRedirectPath, INetworkManager networkManager, ITextEncoding textEncoding, IJsonSerializer jsonSerializer, IXmlSerializer xmlSerializer, Func<Type, Func<string, object>> funcParseFn)
+            string defaultRedirectPath,
+            INetworkManager networkManager,
+            ITextEncoding textEncoding,
+            IJsonSerializer jsonSerializer,
+            IXmlSerializer xmlSerializer,
+            Func<Type, Func<string, object>> funcParseFn)
         {
         {
-            Instance = this;
-
             _appHost = applicationHost;
             _appHost = applicationHost;
+            _logger = logger;
+            _config = config;
             DefaultRedirectPath = defaultRedirectPath;
             DefaultRedirectPath = defaultRedirectPath;
             _networkManager = networkManager;
             _networkManager = networkManager;
             _textEncoding = textEncoding;
             _textEncoding = textEncoding;
             _jsonSerializer = jsonSerializer;
             _jsonSerializer = jsonSerializer;
             _xmlSerializer = xmlSerializer;
             _xmlSerializer = xmlSerializer;
-            _config = config;
-
-            _logger = logger;
             _funcParseFn = funcParseFn;
             _funcParseFn = funcParseFn;
 
 
-            ResponseFilters = new Action<IRequest, IResponse, object>[] { };
+            Instance = this;
+            ResponseFilters = Array.Empty<Action<IRequest, IResponse, object>>();
         }
         }
 
 
         public string GlobalResponse { get; set; }
         public string GlobalResponse { get; set; }
 
 
-        readonly Dictionary<Type, int> _mapExceptionToStatusCode = new Dictionary<Type, int>
-            {
-                {typeof (ResourceNotFoundException), 404},
-                {typeof (RemoteServiceUnavailableException), 502},
-                {typeof (FileNotFoundException), 404},
-                //{typeof (DirectoryNotFoundException), 404},
-                {typeof (SecurityException), 401},
-                {typeof (ArgumentException), 400}
-            };
-
         protected ILogger Logger => _logger;
         protected ILogger Logger => _logger;
 
 
         public object CreateInstance(Type type)
         public object CreateInstance(Type type)
@@ -103,9 +97,9 @@ namespace Emby.Server.Implementations.HttpServer
         {
         {
             //Exec all RequestFilter attributes with Priority < 0
             //Exec all RequestFilter attributes with Priority < 0
             var attributes = GetRequestFilterAttributes(requestDto.GetType());
             var attributes = GetRequestFilterAttributes(requestDto.GetType());
-            var i = 0;
-            var count = attributes.Count;
 
 
+            int count = attributes.Count;
+            int i = 0;
             for (; i < count && attributes[i].Priority < 0; i++)
             for (; i < count && attributes[i].Priority < 0; i++)
             {
             {
                 var attribute = attributes[i];
                 var attribute = attributes[i];
@@ -168,10 +162,7 @@ namespace Emby.Server.Implementations.HttpServer
                 _webSocketConnections.Add(connection);
                 _webSocketConnections.Add(connection);
             }
             }
 
 
-            if (WebSocketConnected != null)
-            {
-                WebSocketConnected?.Invoke(this, new GenericEventArgs<IWebSocketConnection>(connection));
-            }
+            WebSocketConnected?.Invoke(this, new GenericEventArgs<IWebSocketConnection>(connection));
         }
         }
 
 
         private void Connection_Closed(object sender, EventArgs e)
         private void Connection_Closed(object sender, EventArgs e)
@@ -206,27 +197,16 @@ namespace Emby.Server.Implementations.HttpServer
 
 
         private int GetStatusCode(Exception ex)
         private int GetStatusCode(Exception ex)
         {
         {
-            if (ex is ArgumentException)
+            switch (ex)
             {
             {
-                return 400;
-            }
-
-            var exceptionType = ex.GetType();
-
-            int statusCode;
-            if (!_mapExceptionToStatusCode.TryGetValue(exceptionType, out statusCode))
-            {
-                if (ex is DirectoryNotFoundException)
-                {
-                    statusCode = 404;
-                }
-                else
-                {
-                    statusCode = 500;
-                }
+                case ArgumentException _:                 return 400;
+                case SecurityException _:                 return 401;
+                case DirectoryNotFoundException _:
+                case FileNotFoundException _:
+                case ResourceNotFoundException _:         return 404;
+                case RemoteServiceUnavailableException _: return 502;
+                default:                                  return 500;
             }
             }
-
-            return statusCode;
         }
         }
 
 
         private async Task ErrorHandler(Exception ex, IRequest httpReq, bool logExceptionStackTrace, bool logExceptionMessage)
         private async Task ErrorHandler(Exception ex, IRequest httpReq, bool logExceptionStackTrace, bool logExceptionMessage)
@@ -312,29 +292,22 @@ namespace Emby.Server.Implementations.HttpServer
             }
             }
         }
         }
 
 
-        private readonly Dictionary<string, int> _skipLogExtensions = new Dictionary<string, int>(StringComparer.OrdinalIgnoreCase)
+        private static readonly string[] _skipLogExtensions =
         {
         {
-            {".js", 0},
-            {".css", 0},
-            {".woff", 0},
-            {".woff2", 0},
-            {".ttf", 0},
-            {".html", 0}
+            ".js",
+            ".css",
+            ".woff",
+            ".woff2",
+            ".ttf",
+            ".html"
         };
         };
 
 
         private bool EnableLogging(string url, string localPath)
         private bool EnableLogging(string url, string localPath)
         {
         {
             var extension = GetExtension(url);
             var extension = GetExtension(url);
 
 
-            if (string.IsNullOrEmpty(extension) || !_skipLogExtensions.ContainsKey(extension))
-            {
-                if (string.IsNullOrEmpty(localPath) || localPath.IndexOf("system/ping", StringComparison.OrdinalIgnoreCase) == -1)
-                {
-                    return true;
-                }
-            }
-
-            return false;
+            return ((string.IsNullOrEmpty(extension) || !_skipLogExtensions.Contains(extension))
+                && (string.IsNullOrEmpty(localPath) || localPath.IndexOf("system/ping", StringComparison.OrdinalIgnoreCase) == -1));
         }
         }
 
 
         private static string GetExtension(string url)
         private static string GetExtension(string url)
@@ -557,9 +530,7 @@ namespace Emby.Server.Implementations.HttpServer
                     return;
                     return;
                 }
                 }
 
 
-                if (string.Equals(localPath, "/mediabrowser/", StringComparison.OrdinalIgnoreCase) ||
-                    string.Equals(localPath, "/mediabrowser", StringComparison.OrdinalIgnoreCase) ||
-                    localPath.IndexOf("mediabrowser/web", StringComparison.OrdinalIgnoreCase) != -1)
+                if (localPath.IndexOf("mediabrowser/web", StringComparison.OrdinalIgnoreCase) != -1)
                 {
                 {
                     httpRes.StatusCode = 200;
                     httpRes.StatusCode = 200;
                     httpRes.ContentType = "text/html";
                     httpRes.ContentType = "text/html";
@@ -714,7 +685,7 @@ namespace Emby.Server.Implementations.HttpServer
                 };
                 };
             }
             }
 
 
-            _logger.LogError("Could not find handler for {pathInfo}", pathInfo);
+            _logger.LogError("Could not find handler for {PathInfo}", pathInfo);
             return null;
             return null;
         }
         }
 
 
@@ -728,14 +699,13 @@ namespace Emby.Server.Implementations.HttpServer
 
 
         private void RedirectToSecureUrl(IHttpRequest httpReq, IResponse httpRes, string url)
         private void RedirectToSecureUrl(IHttpRequest httpReq, IResponse httpRes, string url)
         {
         {
-            int currentPort;
-            Uri uri;
-            if (Uri.TryCreate(url, UriKind.Absolute, out uri))
+            if (Uri.TryCreate(url, UriKind.Absolute, out Uri uri))
             {
             {
-                currentPort = uri.Port;
-                var builder = new UriBuilder(uri);
-                builder.Port = _config.Configuration.PublicHttpsPort;
-                builder.Scheme = "https";
+                var builder = new UriBuilder(uri)
+                {
+                    Port = _config.Configuration.PublicHttpsPort,
+                    Scheme = "https"
+                };
                 url = builder.Uri.ToString();
                 url = builder.Uri.ToString();
 
 
                 RedirectToUrl(httpRes, url);
                 RedirectToUrl(httpRes, url);
@@ -835,12 +805,6 @@ namespace Emby.Server.Implementations.HttpServer
 
 
         public Task<object> DeserializeJson(Type type, Stream stream)
         public Task<object> DeserializeJson(Type type, Stream stream)
         {
         {
-            //using (var reader = new StreamReader(stream))
-            //{
-            //    var json = reader.ReadToEnd();
-            //    logger.LogInformation(json);
-            //    return _jsonSerializer.DeserializeFromString(json, type);
-            //}
             return _jsonSerializer.DeserializeFromStreamAsync(stream, type);
             return _jsonSerializer.DeserializeFromStreamAsync(stream, type);
         }
         }
 
 

+ 15 - 24
Emby.Server.Implementations/HttpServer/HttpResultFactory.cs

@@ -412,8 +412,10 @@ namespace Emby.Server.Implementations.HttpServer
                     serializer.WriteObject(xw, from);
                     serializer.WriteObject(xw, from);
                     xw.Flush();
                     xw.Flush();
                     ms.Seek(0, SeekOrigin.Begin);
                     ms.Seek(0, SeekOrigin.Begin);
-                    var reader = new StreamReader(ms);
-                    return reader.ReadToEnd();
+                    using (var reader = new StreamReader(ms))
+                    {
+                        return reader.ReadToEnd();
+                    }
                 }
                 }
             }
             }
         }
         }
@@ -425,7 +427,7 @@ namespace Emby.Server.Implementations.HttpServer
         {
         {
             responseHeaders["ETag"] = string.Format("\"{0}\"", cacheKeyString);
             responseHeaders["ETag"] = string.Format("\"{0}\"", cacheKeyString);
 
 
-            var noCache = (requestContext.Headers.Get("Cache-Control") ?? string.Empty).IndexOf("no-cache", StringComparison.OrdinalIgnoreCase) != -1;
+            bool noCache = (requestContext.Headers.Get("Cache-Control") ?? string.Empty).IndexOf("no-cache", StringComparison.OrdinalIgnoreCase) != -1;
 
 
             if (!noCache)
             if (!noCache)
             {
             {
@@ -463,8 +465,7 @@ namespace Emby.Server.Implementations.HttpServer
             });
             });
         }
         }
 
 
-        public Task<object> GetStaticFileResult(IRequest requestContext,
-            StaticFileResultOptions options)
+        public Task<object> GetStaticFileResult(IRequest requestContext, StaticFileResultOptions options)
         {
         {
             var path = options.Path;
             var path = options.Path;
             var fileShare = options.FileShare;
             var fileShare = options.FileShare;
@@ -699,36 +700,26 @@ namespace Emby.Server.Implementations.HttpServer
 
 
             var ifModifiedSinceHeader = requestContext.Headers.Get("If-Modified-Since");
             var ifModifiedSinceHeader = requestContext.Headers.Get("If-Modified-Since");
 
 
-            if (!string.IsNullOrEmpty(ifModifiedSinceHeader))
+            if (!string.IsNullOrEmpty(ifModifiedSinceHeader)
+                && DateTime.TryParse(ifModifiedSinceHeader, out DateTime ifModifiedSince)
+                && IsNotModified(ifModifiedSince.ToUniversalTime(), cacheDuration, lastDateModified))
             {
             {
-                DateTime ifModifiedSince;
-
-                if (DateTime.TryParse(ifModifiedSinceHeader, out ifModifiedSince))
-                {
-                    if (IsNotModified(ifModifiedSince.ToUniversalTime(), cacheDuration, lastDateModified))
-                    {
-                        return true;
-                    }
-                }
+                return true;
             }
             }
 
 
             var ifNoneMatchHeader = requestContext.Headers.Get("If-None-Match");
             var ifNoneMatchHeader = requestContext.Headers.Get("If-None-Match");
 
 
-            var hasCacheKey = !cacheKey.Equals(Guid.Empty);
+            bool hasCacheKey = !cacheKey.Equals(Guid.Empty);
 
 
             // Validate If-None-Match
             // Validate If-None-Match
-            if ((hasCacheKey || !string.IsNullOrEmpty(ifNoneMatchHeader)))
+            if ((hasCacheKey && !string.IsNullOrEmpty(ifNoneMatchHeader)))
             {
             {
-                Guid ifNoneMatch;
-
                 ifNoneMatchHeader = (ifNoneMatchHeader ?? string.Empty).Trim('\"');
                 ifNoneMatchHeader = (ifNoneMatchHeader ?? string.Empty).Trim('\"');
 
 
-                if (Guid.TryParse(ifNoneMatchHeader, out ifNoneMatch))
+                if (Guid.TryParse(ifNoneMatchHeader, out Guid ifNoneMatch)
+                    && cacheKey.Equals(ifNoneMatch))
                 {
                 {
-                    if (hasCacheKey && cacheKey.Equals(ifNoneMatch))
-                    {
-                        return true;
-                    }
+                    return true;
                 }
                 }
             }
             }
 
 

+ 0 - 5
Emby.Server.Implementations/HttpServer/RangeRequestWriter.cs

@@ -40,8 +40,6 @@ namespace Emby.Server.Implementations.HttpServer
         /// </summary>
         /// </summary>
         private static readonly CultureInfo UsCulture = new CultureInfo("en-US");
         private static readonly CultureInfo UsCulture = new CultureInfo("en-US");
 
 
-        public List<Cookie> Cookies { get; private set; }
-
         /// <summary>
         /// <summary>
         /// Additional HTTP Headers
         /// Additional HTTP Headers
         /// </summary>
         /// </summary>
@@ -72,7 +70,6 @@ namespace Emby.Server.Implementations.HttpServer
             Headers["Accept-Ranges"] = "bytes";
             Headers["Accept-Ranges"] = "bytes";
             StatusCode = HttpStatusCode.PartialContent;
             StatusCode = HttpStatusCode.PartialContent;
 
 
-            Cookies = new List<Cookie>();
             SetRangeValues(contentLength);
             SetRangeValues(contentLength);
         }
         }
 
 
@@ -220,7 +217,5 @@ namespace Emby.Server.Implementations.HttpServer
             get => (HttpStatusCode)Status;
             get => (HttpStatusCode)Status;
             set => Status = (int)value;
             set => Status = (int)value;
         }
         }
-
-        public string StatusDescription { get; set; }
     }
     }
 }
 }

+ 4 - 24
Emby.Server.Implementations/HttpServer/ResponseFilter.cs

@@ -25,14 +25,11 @@ namespace Emby.Server.Implementations.HttpServer
         public void FilterResponse(IRequest req, IResponse res, object dto)
         public void FilterResponse(IRequest req, IResponse res, object dto)
         {
         {
             // Try to prevent compatibility view
             // Try to prevent compatibility view
-            //res.AddHeader("X-UA-Compatible", "IE=Edge");
             res.AddHeader("Access-Control-Allow-Headers", "Accept, Accept-Language, Authorization, Cache-Control, Content-Disposition, Content-Encoding, Content-Language, Content-Length, Content-MD5, Content-Range, Content-Type, Date, Host, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since, Origin, OriginToken, Pragma, Range, Slug, Transfer-Encoding, Want-Digest, X-MediaBrowser-Token, X-Emby-Authorization");
             res.AddHeader("Access-Control-Allow-Headers", "Accept, Accept-Language, Authorization, Cache-Control, Content-Disposition, Content-Encoding, Content-Language, Content-Length, Content-MD5, Content-Range, Content-Type, Date, Host, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since, Origin, OriginToken, Pragma, Range, Slug, Transfer-Encoding, Want-Digest, X-MediaBrowser-Token, X-Emby-Authorization");
             res.AddHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, PATCH, OPTIONS");
             res.AddHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, PATCH, OPTIONS");
             res.AddHeader("Access-Control-Allow-Origin", "*");
             res.AddHeader("Access-Control-Allow-Origin", "*");
 
 
-            var exception = dto as Exception;
-
-            if (exception != null)
+            if (dto is Exception exception)
             {
             {
                 _logger.LogError(exception, "Error processing request for {RawUrl}", req.RawUrl);
                 _logger.LogError(exception, "Error processing request for {RawUrl}", req.RawUrl);
 
 
@@ -45,43 +42,26 @@ namespace Emby.Server.Implementations.HttpServer
                 }
                 }
             }
             }
 
 
-            var hasHeaders = dto as IHasHeaders;
-
-            if (hasHeaders != null)
+            if (dto is IHasHeaders hasHeaders)
             {
             {
                 if (!hasHeaders.Headers.ContainsKey("Server"))
                 if (!hasHeaders.Headers.ContainsKey("Server"))
                 {
                 {
                     hasHeaders.Headers["Server"] = "Microsoft-NetCore/2.0, UPnP/1.0 DLNADOC/1.50";
                     hasHeaders.Headers["Server"] = "Microsoft-NetCore/2.0, UPnP/1.0 DLNADOC/1.50";
-                    //hasHeaders.Headers["Server"] = "Mono-HTTPAPI/1.1";
                 }
                 }
 
 
                 // Content length has to be explicitly set on on HttpListenerResponse or it won't be happy
                 // Content length has to be explicitly set on on HttpListenerResponse or it won't be happy
-                string contentLength;
-
-                if (hasHeaders.Headers.TryGetValue("Content-Length", out contentLength) && !string.IsNullOrEmpty(contentLength))
+                if (hasHeaders.Headers.TryGetValue("Content-Length", out string contentLength)
+                    && !string.IsNullOrEmpty(contentLength))
                 {
                 {
                     var length = long.Parse(contentLength, UsCulture);
                     var length = long.Parse(contentLength, UsCulture);
 
 
                     if (length > 0)
                     if (length > 0)
                     {
                     {
                         res.SetContentLength(length);
                         res.SetContentLength(length);
-
-                        //var listenerResponse = res.OriginalResponse as HttpListenerResponse;
-
-                        //if (listenerResponse != null)
-                        //{
-                        //    // Disable chunked encoding. Technically this is only needed when using Content-Range, but
-                        //    // anytime we know the content length there's no need for it
-                        //    listenerResponse.SendChunked = false;
-                        //    return;
-                        //}
-
                         res.SendChunked = false;
                         res.SendChunked = false;
                     }
                     }
                 }
                 }
             }
             }
-
-            //res.KeepAlive = false;
         }
         }
 
 
         /// <summary>
         /// <summary>

+ 4 - 6
Emby.Server.Implementations/Services/HttpResult.cs

@@ -15,7 +15,6 @@ namespace Emby.Server.Implementations.Services
         public HttpResult(object response, string contentType, HttpStatusCode statusCode)
         public HttpResult(object response, string contentType, HttpStatusCode statusCode)
         {
         {
             this.Headers = new Dictionary<string, string>();
             this.Headers = new Dictionary<string, string>();
-            this.Cookies = new List<Cookie>();
 
 
             this.Response = response;
             this.Response = response;
             this.ContentType = contentType;
             this.ContentType = contentType;
@@ -26,8 +25,6 @@ namespace Emby.Server.Implementations.Services
 
 
         public IDictionary<string, string> Headers { get; private set; }
         public IDictionary<string, string> Headers { get; private set; }
 
 
-        public List<Cookie> Cookies { get; private set; }
-
         public int Status { get; set; }
         public int Status { get; set; }
 
 
         public HttpStatusCode StatusCode
         public HttpStatusCode StatusCode
@@ -40,15 +37,16 @@ namespace Emby.Server.Implementations.Services
 
 
         public async Task WriteToAsync(Stream responseStream, CancellationToken cancellationToken)
         public async Task WriteToAsync(Stream responseStream, CancellationToken cancellationToken)
         {
         {
-            var response = RequestContext != null ? RequestContext.Response : null;
+            var response = RequestContext == null ? null : RequestContext.Response;
 
 
-            var bytesResponse = this.Response as byte[];
-            if (bytesResponse != null)
+            if (this.Response is byte[] bytesResponse)
             {
             {
                 var contentLength = bytesResponse.Length;
                 var contentLength = bytesResponse.Length;
 
 
                 if (response != null)
                 if (response != null)
+                {
                     response.SetContentLength(contentLength);
                     response.SetContentLength(contentLength);
+                }
 
 
                 if (contentLength > 0)
                 if (contentLength > 0)
                 {
                 {

+ 1 - 1
Emby.Server.Implementations/Services/RequestHelper.cs

@@ -49,4 +49,4 @@ namespace Emby.Server.Implementations.Services
         }
         }
 
 
     }
     }
-}
+}