diff --git a/Emby.Dlna/ContentDirectory/ContentDirectoryBrowser.cs b/Emby.Dlna/ContentDirectory/ContentDirectoryBrowser.cs index 9c5c5fb64f..61501635fa 100644 --- a/Emby.Dlna/ContentDirectory/ContentDirectoryBrowser.cs +++ b/Emby.Dlna/ContentDirectory/ContentDirectoryBrowser.cs @@ -33,7 +33,7 @@ namespace Emby.Dlna.ContentDirectory { CancellationToken = cancellationToken, UserAgent = "Emby", - RequestContentType = "text/xml; charset=\"utf-8\"", + RequestContentType = "text/xml", LogErrorResponseBody = true, Url = request.ContentDirectoryUrl, BufferContent = false diff --git a/Emby.Dlna/PlayTo/SsdpHttpClient.cs b/Emby.Dlna/PlayTo/SsdpHttpClient.cs index 6c66a999c8..78b688d92a 100644 --- a/Emby.Dlna/PlayTo/SsdpHttpClient.cs +++ b/Emby.Dlna/PlayTo/SsdpHttpClient.cs @@ -72,7 +72,10 @@ namespace Emby.Dlna.PlayTo Url = url, UserAgent = USERAGENT, LogErrorResponseBody = true, - BufferContent = false + BufferContent = false, + + // The periodic requests may keep some devices awake + LogRequestAsDebug = true }; options.RequestHeaders["HOST"] = ip + ":" + port.ToString(_usCulture); @@ -93,7 +96,10 @@ namespace Emby.Dlna.PlayTo Url = url, UserAgent = USERAGENT, LogErrorResponseBody = true, - BufferContent = false + BufferContent = false, + + // The periodic requests may keep some devices awake + LogRequestAsDebug = true }; options.RequestHeaders["FriendlyName.DLNA.ORG"] = FriendlyName; @@ -125,7 +131,10 @@ namespace Emby.Dlna.PlayTo UserAgent = USERAGENT, LogRequest = logRequest || _config.GetDlnaConfiguration().EnableDebugLog, LogErrorResponseBody = true, - BufferContent = false + BufferContent = false, + + // The periodic requests may keep some devices awake + LogRequestAsDebug = true }; options.RequestHeaders["SOAPAction"] = soapAction; @@ -137,7 +146,8 @@ namespace Emby.Dlna.PlayTo options.RequestHeaders["contentFeatures.dlna.org"] = header; } - options.RequestContentType = "text/xml; charset=\"utf-8\""; + options.RequestContentType = "text/xml"; + options.AppendCharsetToMimeType = true; options.RequestContent = postData; return _httpClient.Post(options); diff --git a/Emby.Drawing/ImageProcessor.cs b/Emby.Drawing/ImageProcessor.cs index 1c60abfb5b..e28d22cf7b 100644 --- a/Emby.Drawing/ImageProcessor.cs +++ b/Emby.Drawing/ImageProcessor.cs @@ -461,7 +461,7 @@ namespace Emby.Drawing }; } - var path = item.Path; + var path = info.Path; _logger.Info("Getting image size for item {0} {1}", item.GetType().Name, path); var size = GetImageSize(path, allowSlowMethods); diff --git a/Emby.Server.Implementations/Dto/DtoService.cs b/Emby.Server.Implementations/Dto/DtoService.cs index a0176e406c..0a316fcf1a 100644 --- a/Emby.Server.Implementations/Dto/DtoService.cs +++ b/Emby.Server.Implementations/Dto/DtoService.cs @@ -1655,9 +1655,9 @@ namespace Emby.Server.Implementations.Dto return null; } } - catch + catch (Exception ex) { - //_logger.ErrorException("Failed to determine primary image aspect ratio for {0}", ex, path); + //_logger.ErrorException("Failed to determine primary image aspect ratio for {0}", ex, imageInfo.Path); return null; } } diff --git a/Emby.Server.Implementations/HttpClientManager/HttpClientManager.cs b/Emby.Server.Implementations/HttpClientManager/HttpClientManager.cs index 3fdd051355..ef95b47c38 100644 --- a/Emby.Server.Implementations/HttpClientManager/HttpClientManager.cs +++ b/Emby.Server.Implementations/HttpClientManager/HttpClientManager.cs @@ -320,8 +320,6 @@ namespace Emby.Server.Implementations.HttpClientManager private async Task GetCachedResponse(string responseCachePath, TimeSpan cacheLength, string url) { - _logger.Info("Checking for cache file {0}", responseCachePath); - try { if (_fileSystem.GetLastWriteTimeUtc(responseCachePath).Add(cacheLength) > DateTime.UtcNow) @@ -399,10 +397,19 @@ namespace Emby.Server.Implementations.HttpClientManager { try { - var bytes = options.RequestContentBytes ?? - Encoding.UTF8.GetBytes(options.RequestContent ?? string.Empty); + // TODO: We can always put this in the options object if needed + var requestEncoding = Encoding.UTF8; - httpWebRequest.ContentType = options.RequestContentType ?? "application/x-www-form-urlencoded"; + var bytes = options.RequestContentBytes ?? requestEncoding.GetBytes(options.RequestContent ?? string.Empty); + + var contentType = options.RequestContentType ?? "application/x-www-form-urlencoded"; + + if (options.AppendCharsetToMimeType) + { + contentType = contentType.TrimEnd(';') + "; charset=\"utf-8\""; + } + + httpWebRequest.ContentType = contentType; httpWebRequest.ContentLength = bytes.Length; (await httpWebRequest.GetRequestStreamAsync().ConfigureAwait(false)).Write(bytes, 0, bytes.Length); @@ -430,7 +437,14 @@ namespace Emby.Server.Implementations.HttpClientManager if (options.LogRequest) { - _logger.Info("HttpClientManager {0}: {1}", httpMethod.ToUpper(), options.Url); + if (options.LogRequestAsDebug) + { + _logger.Debug("HttpClientManager {0}: {1}", httpMethod.ToUpper(), options.Url); + } + else + { + _logger.Info("HttpClientManager {0}: {1}", httpMethod.ToUpper(), options.Url); + } } try @@ -597,7 +611,14 @@ namespace Emby.Server.Implementations.HttpClientManager if (options.LogRequest) { - _logger.Info("HttpClientManager.GetTempFileResponse url: {0}", options.Url); + if (options.LogRequestAsDebug) + { + _logger.Debug("HttpClientManager.GetTempFileResponse url: {0}", options.Url); + } + else + { + _logger.Info("HttpClientManager.GetTempFileResponse url: {0}", options.Url); + } } var client = GetHttpClient(GetHostFromUrl(options.Url), options.EnableHttpCompression); diff --git a/Emby.Server.Implementations/Library/Resolvers/PhotoAlbumResolver.cs b/Emby.Server.Implementations/Library/Resolvers/PhotoAlbumResolver.cs index a9cfea34db..311abf14e3 100644 --- a/Emby.Server.Implementations/Library/Resolvers/PhotoAlbumResolver.cs +++ b/Emby.Server.Implementations/Library/Resolvers/PhotoAlbumResolver.cs @@ -30,8 +30,11 @@ namespace Emby.Server.Implementations.Library.Resolvers // Must be an image file within a photo collection if (args.IsDirectory) { - if (string.Equals(args.GetCollectionType(), CollectionType.HomeVideos, StringComparison.OrdinalIgnoreCase) || - string.Equals(args.GetCollectionType(), CollectionType.Photos, StringComparison.OrdinalIgnoreCase)) + // Must be an image file within a photo collection + var collectionType = args.GetCollectionType(); + + if (string.Equals(collectionType, CollectionType.Photos, StringComparison.OrdinalIgnoreCase) || + (string.Equals(collectionType, CollectionType.HomeVideos, StringComparison.OrdinalIgnoreCase) && args.GetLibraryOptions().EnablePhotos)) { if (HasPhotos(args)) { diff --git a/MediaBrowser.Common/Net/HttpRequestOptions.cs b/MediaBrowser.Common/Net/HttpRequestOptions.cs index 4a894e6624..51859ecdb5 100644 --- a/MediaBrowser.Common/Net/HttpRequestOptions.cs +++ b/MediaBrowser.Common/Net/HttpRequestOptions.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Net; using System.Threading; +using System.Text; namespace MediaBrowser.Common.Net { @@ -90,6 +91,7 @@ namespace MediaBrowser.Common.Net public bool BufferContent { get; set; } public bool LogRequest { get; set; } + public bool LogRequestAsDebug { get; set; } public bool LogErrors { get; set; } public bool LogErrorResponseBody { get; set; } @@ -102,6 +104,8 @@ namespace MediaBrowser.Common.Net public bool PreferIpv4 { get; set; } public bool EnableDefaultUserAgent { get; set; } + public bool AppendCharsetToMimeType { get; set; } + private string GetHeaderValue(string name) { string value; diff --git a/Mono.Nat/Upnp/Messages/GetServicesMessage.cs b/Mono.Nat/Upnp/Messages/GetServicesMessage.cs index 9d29f98fdf..3395b7596f 100644 --- a/Mono.Nat/Upnp/Messages/GetServicesMessage.cs +++ b/Mono.Nat/Upnp/Messages/GetServicesMessage.cs @@ -64,6 +64,10 @@ namespace Mono.Nat.Upnp { var req = new HttpRequestOptions(); + // The periodic request logging may keep some devices awake + req.LogRequestAsDebug = true; + req.LogErrors = false; + req.Url = "http://" + this.hostAddress.ToString() + this.servicesDescriptionUrl; req.RequestHeaders.Add("ACCEPT-LANGUAGE", "en"); diff --git a/Mono.Nat/Upnp/Messages/UpnpMessage.cs b/Mono.Nat/Upnp/Messages/UpnpMessage.cs index d15e48b2f5..b0264fc4ac 100644 --- a/Mono.Nat/Upnp/Messages/UpnpMessage.cs +++ b/Mono.Nat/Upnp/Messages/UpnpMessage.cs @@ -52,9 +52,14 @@ namespace Mono.Nat.Upnp var req = new HttpRequestOptions(); req.LogErrors = false; + + // The periodic request logging may keep some devices awake + req.LogRequestAsDebug = true; + req.Url = ss; req.EnableKeepAlive = false; - req.RequestContentType = "text/xml; charset=\"utf-8\""; + req.RequestContentType = "text/xml"; + req.AppendCharsetToMimeType = true; req.RequestHeaders.Add("SOAPACTION", "\"" + device.ServiceType + "#" + upnpMethod + "\""); string bodyString = "