diff --git a/MediaBrowser.Dlna/DlnaManager.cs b/MediaBrowser.Dlna/DlnaManager.cs index 2a688fa54d..63a36744f1 100644 --- a/MediaBrowser.Dlna/DlnaManager.cs +++ b/MediaBrowser.Dlna/DlnaManager.cs @@ -210,6 +210,10 @@ namespace MediaBrowser.Dlna throw new ArgumentNullException("headers"); } + //_logger.Debug("GetProfile. Headers: " + _jsonSerializer.SerializeToString(headers)); + // Convert to case insensitive + headers = new Dictionary(headers, StringComparer.OrdinalIgnoreCase); + var profile = GetProfiles().FirstOrDefault(i => i.Identification != null && IsMatch(headers, i.Identification)); if (profile != null) @@ -221,7 +225,7 @@ namespace MediaBrowser.Dlna string userAgent = null; headers.TryGetValue("User-Agent", out userAgent); - var msg = "No matching device profile found. The default will be used. "; + var msg = "No matching device profile via headers found. The default will be used. "; if (!string.IsNullOrEmpty(userAgent)) { msg += "User-agent: " + userAgent + ". "; @@ -249,7 +253,9 @@ namespace MediaBrowser.Dlna case HeaderMatchType.Equals: return string.Equals(value, header.Value, StringComparison.OrdinalIgnoreCase); case HeaderMatchType.Substring: - return value.IndexOf(header.Value, StringComparison.OrdinalIgnoreCase) != -1; + var isMatch = value.IndexOf(header.Value, StringComparison.OrdinalIgnoreCase) != -1; + //_logger.Debug("IsMatch-Substring value: {0} testValue: {1} isMatch: {2}", value, header.Value, isMatch); + return isMatch; case HeaderMatchType.Regex: // Reports of IgnoreCase not working on linux so try it a couple different ways. return Regex.IsMatch(value, header.Value, RegexOptions.IgnoreCase) || Regex.IsMatch(value.ToUpper(), header.Value.ToUpper(), RegexOptions.IgnoreCase); diff --git a/MediaBrowser.Dlna/Ssdp/SsdpHandler.cs b/MediaBrowser.Dlna/Ssdp/SsdpHandler.cs index 6c3fe82b72..82fc5e4665 100644 --- a/MediaBrowser.Dlna/Ssdp/SsdpHandler.cs +++ b/MediaBrowser.Dlna/Ssdp/SsdpHandler.cs @@ -177,7 +177,7 @@ namespace MediaBrowser.Dlna.Ssdp { if (i > 0) { - await Task.Delay(500).ConfigureAwait(false); + await Task.Delay(200).ConfigureAwait(false); } var dgram = new Datagram(endpoint, localAddress, _logger, msg, isBroadcast, enableDebugLogging);