aboutsummaryrefslogtreecommitdiff
path: root/Emby.Dlna
diff options
context:
space:
mode:
authorBond-009 <bond.009@outlook.com>2019-03-07 21:08:57 +0100
committerGitHub <noreply@github.com>2019-03-07 21:08:57 +0100
commit10a0d6bdba821449abfb1d48e9708ba6f3fc6a62 (patch)
tree602be322daedca127ba66de07837ac8e792730a7 /Emby.Dlna
parentae0ecc1b10982d9240ecdcc82cb7299fc708aafb (diff)
parent0abe57e930e44eab9566991f33b089d1e61cfb83 (diff)
Merge pull request #1010 from cvium/kestrel_poc
Remove System.Net and port to Kestrel
Diffstat (limited to 'Emby.Dlna')
-rw-r--r--Emby.Dlna/Api/DlnaServerService.cs10
-rw-r--r--Emby.Dlna/ConnectionManager/ConnectionManager.cs3
-rw-r--r--Emby.Dlna/ContentDirectory/ContentDirectory.cs2
-rw-r--r--Emby.Dlna/ControlRequest.cs6
-rw-r--r--Emby.Dlna/DlnaManager.cs17
-rw-r--r--Emby.Dlna/Emby.Dlna.csproj5
-rw-r--r--Emby.Dlna/IUpnpService.cs5
-rw-r--r--Emby.Dlna/MediaReceiverRegistrar/MediaReceiverRegistrar.cs3
-rw-r--r--Emby.Dlna/PlayTo/PlayToController.cs23
9 files changed, 37 insertions, 37 deletions
diff --git a/Emby.Dlna/Api/DlnaServerService.cs b/Emby.Dlna/Api/DlnaServerService.cs
index 68bf801637..8bf3797f85 100644
--- a/Emby.Dlna/Api/DlnaServerService.cs
+++ b/Emby.Dlna/Api/DlnaServerService.cs
@@ -136,7 +136,7 @@ namespace Emby.Dlna.Api
{
var url = Request.AbsoluteUri;
var serverAddress = url.Substring(0, url.IndexOf("/dlna/", StringComparison.OrdinalIgnoreCase));
- var xml = _dlnaManager.GetServerDescriptionXml(Request.Headers.ToDictionary(), request.UuId, serverAddress);
+ var xml = _dlnaManager.GetServerDescriptionXml(Request.Headers, request.UuId, serverAddress);
var cacheLength = TimeSpan.FromDays(1);
var cacheKey = Request.RawUrl.GetMD5();
@@ -147,21 +147,21 @@ namespace Emby.Dlna.Api
public object Get(GetContentDirectory request)
{
- var xml = ContentDirectory.GetServiceXml(Request.Headers.ToDictionary());
+ var xml = ContentDirectory.GetServiceXml();
return _resultFactory.GetResult(Request, xml, XMLContentType);
}
public object Get(GetMediaReceiverRegistrar request)
{
- var xml = MediaReceiverRegistrar.GetServiceXml(Request.Headers.ToDictionary());
+ var xml = MediaReceiverRegistrar.GetServiceXml();
return _resultFactory.GetResult(Request, xml, XMLContentType);
}
public object Get(GetConnnectionManager request)
{
- var xml = ConnectionManager.GetServiceXml(Request.Headers.ToDictionary());
+ var xml = ConnectionManager.GetServiceXml();
return _resultFactory.GetResult(Request, xml, XMLContentType);
}
@@ -193,7 +193,7 @@ namespace Emby.Dlna.Api
return service.ProcessControlRequest(new ControlRequest
{
- Headers = Request.Headers.ToDictionary(),
+ Headers = Request.Headers,
InputXml = requestStream,
TargetServerUuId = id,
RequestedUrl = Request.AbsoluteUri
diff --git a/Emby.Dlna/ConnectionManager/ConnectionManager.cs b/Emby.Dlna/ConnectionManager/ConnectionManager.cs
index cc427f2a15..e138b91d6a 100644
--- a/Emby.Dlna/ConnectionManager/ConnectionManager.cs
+++ b/Emby.Dlna/ConnectionManager/ConnectionManager.cs
@@ -1,4 +1,3 @@
-using System.Collections.Generic;
using Emby.Dlna.Service;
using MediaBrowser.Common.Net;
using MediaBrowser.Controller.Configuration;
@@ -24,7 +23,7 @@ namespace Emby.Dlna.ConnectionManager
XmlReaderSettingsFactory = xmlReaderSettingsFactory;
}
- public string GetServiceXml(IDictionary<string, string> headers)
+ public string GetServiceXml()
{
return new ConnectionManagerXmlBuilder().GetXml();
}
diff --git a/Emby.Dlna/ContentDirectory/ContentDirectory.cs b/Emby.Dlna/ContentDirectory/ContentDirectory.cs
index b0fec90e69..867e6112fd 100644
--- a/Emby.Dlna/ContentDirectory/ContentDirectory.cs
+++ b/Emby.Dlna/ContentDirectory/ContentDirectory.cs
@@ -65,7 +65,7 @@ namespace Emby.Dlna.ContentDirectory
}
}
- public string GetServiceXml(IDictionary<string, string> headers)
+ public string GetServiceXml()
{
return new ContentDirectoryXmlBuilder().GetXml();
}
diff --git a/Emby.Dlna/ControlRequest.cs b/Emby.Dlna/ControlRequest.cs
index afd9a0b874..8c227159c4 100644
--- a/Emby.Dlna/ControlRequest.cs
+++ b/Emby.Dlna/ControlRequest.cs
@@ -1,11 +1,11 @@
-using System.Collections.Generic;
using System.IO;
+using Microsoft.AspNetCore.Http;
namespace Emby.Dlna
{
public class ControlRequest
{
- public IDictionary<string, string> Headers { get; set; }
+ public IHeaderDictionary Headers { get; set; }
public Stream InputXml { get; set; }
@@ -15,7 +15,7 @@ namespace Emby.Dlna
public ControlRequest()
{
- Headers = new Dictionary<string, string>();
+ Headers = new HeaderDictionary();
}
}
}
diff --git a/Emby.Dlna/DlnaManager.cs b/Emby.Dlna/DlnaManager.cs
index d6ee5d13ac..2b76d27025 100644
--- a/Emby.Dlna/DlnaManager.cs
+++ b/Emby.Dlna/DlnaManager.cs
@@ -17,7 +17,9 @@ using MediaBrowser.Model.Dlna;
using MediaBrowser.Model.Drawing;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Serialization;
+using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
+using Microsoft.Extensions.Primitives;
namespace Emby.Dlna
{
@@ -203,16 +205,13 @@ namespace Emby.Dlna
}
}
- public DeviceProfile GetProfile(IDictionary<string, string> headers)
+ public DeviceProfile GetProfile(IHeaderDictionary headers)
{
if (headers == null)
{
throw new ArgumentNullException(nameof(headers));
}
- // Convert to case insensitive
- headers = new Dictionary<string, string>(headers, StringComparer.OrdinalIgnoreCase);
-
var profile = GetProfiles().FirstOrDefault(i => i.Identification != null && IsMatch(headers, i.Identification));
if (profile != null)
@@ -228,12 +227,12 @@ namespace Emby.Dlna
return profile;
}
- private bool IsMatch(IDictionary<string, string> headers, DeviceIdentification profileInfo)
+ private bool IsMatch(IHeaderDictionary headers, DeviceIdentification profileInfo)
{
return profileInfo.Headers.Any(i => IsMatch(headers, i));
}
- private bool IsMatch(IDictionary<string, string> headers, HttpHeaderInfo header)
+ private bool IsMatch(IHeaderDictionary headers, HttpHeaderInfo header)
{
// Handle invalid user setup
if (string.IsNullOrEmpty(header.Name))
@@ -241,14 +240,14 @@ namespace Emby.Dlna
return false;
}
- if (headers.TryGetValue(header.Name, out string value))
+ if (headers.TryGetValue(header.Name, out StringValues value))
{
switch (header.Match)
{
case HeaderMatchType.Equals:
return string.Equals(value, header.Value, StringComparison.OrdinalIgnoreCase);
case HeaderMatchType.Substring:
- var isMatch = value.IndexOf(header.Value, StringComparison.OrdinalIgnoreCase) != -1;
+ var isMatch = value.ToString().IndexOf(header.Value, StringComparison.OrdinalIgnoreCase) != -1;
//_logger.LogDebug("IsMatch-Substring value: {0} testValue: {1} isMatch: {2}", value, header.Value, isMatch);
return isMatch;
case HeaderMatchType.Regex:
@@ -494,7 +493,7 @@ namespace Emby.Dlna
internal string Path { get; set; }
}
- public string GetServerDescriptionXml(IDictionary<string, string> headers, string serverUuId, string serverAddress)
+ public string GetServerDescriptionXml(IHeaderDictionary headers, string serverUuId, string serverAddress)
{
var profile = GetProfile(headers) ??
GetDefaultProfile();
diff --git a/Emby.Dlna/Emby.Dlna.csproj b/Emby.Dlna/Emby.Dlna.csproj
index 71ded23373..4c07087c53 100644
--- a/Emby.Dlna/Emby.Dlna.csproj
+++ b/Emby.Dlna/Emby.Dlna.csproj
@@ -58,4 +58,9 @@
<EmbeddedResource Include="Profiles\Xml\Xbox One.xml" />
</ItemGroup>
+ <ItemGroup>
+ <PackageReference Include="Microsoft.AspNetCore.Http" Version="2.2.2" />
+ <PackageReference Include="Microsoft.AspNetCore.WebUtilities" Version="2.2.0" />
+ </ItemGroup>
+
</Project>
diff --git a/Emby.Dlna/IUpnpService.cs b/Emby.Dlna/IUpnpService.cs
index ab8aa46192..ae90e95c79 100644
--- a/Emby.Dlna/IUpnpService.cs
+++ b/Emby.Dlna/IUpnpService.cs
@@ -1,5 +1,3 @@
-using System.Collections.Generic;
-
namespace Emby.Dlna
{
public interface IUpnpService
@@ -7,9 +5,8 @@ namespace Emby.Dlna
/// <summary>
/// Gets the content directory XML.
/// </summary>
- /// <param name="headers">The headers.</param>
/// <returns>System.String.</returns>
- string GetServiceXml(IDictionary<string, string> headers);
+ string GetServiceXml();
/// <summary>
/// Processes the control request.
diff --git a/Emby.Dlna/MediaReceiverRegistrar/MediaReceiverRegistrar.cs b/Emby.Dlna/MediaReceiverRegistrar/MediaReceiverRegistrar.cs
index 2b84528eab..e47143c16a 100644
--- a/Emby.Dlna/MediaReceiverRegistrar/MediaReceiverRegistrar.cs
+++ b/Emby.Dlna/MediaReceiverRegistrar/MediaReceiverRegistrar.cs
@@ -1,4 +1,3 @@
-using System.Collections.Generic;
using Emby.Dlna.Service;
using MediaBrowser.Common.Net;
using MediaBrowser.Controller.Configuration;
@@ -19,7 +18,7 @@ namespace Emby.Dlna.MediaReceiverRegistrar
XmlReaderSettingsFactory = xmlReaderSettingsFactory;
}
- public string GetServiceXml(IDictionary<string, string> headers)
+ public string GetServiceXml()
{
return new MediaReceiverRegistrarXmlBuilder().GetXml();
}
diff --git a/Emby.Dlna/PlayTo/PlayToController.cs b/Emby.Dlna/PlayTo/PlayToController.cs
index be86dde16a..67d5cfef42 100644
--- a/Emby.Dlna/PlayTo/PlayToController.cs
+++ b/Emby.Dlna/PlayTo/PlayToController.cs
@@ -6,6 +6,7 @@ using System.Threading;
using System.Threading.Tasks;
using Emby.Dlna.Didl;
using MediaBrowser.Common.Configuration;
+using MediaBrowser.Common.Extensions;
using MediaBrowser.Controller.Dlna;
using MediaBrowser.Controller.Drawing;
using MediaBrowser.Controller.Entities;
@@ -17,8 +18,8 @@ using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Events;
using MediaBrowser.Model.Globalization;
-using MediaBrowser.Model.Services;
using MediaBrowser.Model.Session;
+using Microsoft.AspNetCore.WebUtilities;
using Microsoft.Extensions.Logging;
namespace Emby.Dlna.PlayTo
@@ -847,13 +848,13 @@ namespace Emby.Dlna.PlayTo
if (index == -1) return request;
var query = url.Substring(index + 1);
- QueryParamCollection values = MyHttpUtility.ParseQueryString(query);
+ Dictionary<string, string> values = QueryHelpers.ParseQuery(query).ToDictionary(kv => kv.Key, kv => kv.Value.ToString());
- request.DeviceProfileId = values.Get("DeviceProfileId");
- request.DeviceId = values.Get("DeviceId");
- request.MediaSourceId = values.Get("MediaSourceId");
- request.LiveStreamId = values.Get("LiveStreamId");
- request.IsDirectStream = string.Equals("true", values.Get("Static"), StringComparison.OrdinalIgnoreCase);
+ request.DeviceProfileId = values.GetValueOrDefault("DeviceProfileId");
+ request.DeviceId = values.GetValueOrDefault("DeviceId");
+ request.MediaSourceId = values.GetValueOrDefault("MediaSourceId");
+ request.LiveStreamId = values.GetValueOrDefault("LiveStreamId");
+ request.IsDirectStream = string.Equals("true", values.GetValueOrDefault("Static"), StringComparison.OrdinalIgnoreCase);
request.AudioStreamIndex = GetIntValue(values, "AudioStreamIndex");
request.SubtitleStreamIndex = GetIntValue(values, "SubtitleStreamIndex");
@@ -867,9 +868,9 @@ namespace Emby.Dlna.PlayTo
}
}
- private static int? GetIntValue(QueryParamCollection values, string name)
+ private static int? GetIntValue(IReadOnlyDictionary<string, string> values, string name)
{
- var value = values.Get(name);
+ var value = values.GetValueOrDefault(name);
if (int.TryParse(value, NumberStyles.Integer, CultureInfo.InvariantCulture, out var result))
{
@@ -879,9 +880,9 @@ namespace Emby.Dlna.PlayTo
return null;
}
- private static long GetLongValue(QueryParamCollection values, string name)
+ private static long GetLongValue(IReadOnlyDictionary<string, string> values, string name)
{
- var value = values.Get(name);
+ var value = values.GetValueOrDefault(name);
if (long.TryParse(value, NumberStyles.Integer, CultureInfo.InvariantCulture, out var result))
{