aboutsummaryrefslogtreecommitdiff
path: root/Emby.Dlna
diff options
context:
space:
mode:
authorShadowghost <Ghost_of_Stone@web.de>2023-06-15 17:53:52 +0200
committerShadowghost <Ghost_of_Stone@web.de>2023-06-15 17:53:52 +0200
commit32499f0e98a870872c184b23cd6d514f7a9fa09b (patch)
treea46776045d8e29366803dded6ecd717f757cbccd /Emby.Dlna
parent006b04dc0b2fcbdcad50cbaf213cb1e7e47ea52a (diff)
parentd874262bf9826b348e146efb4958af447d75f7c8 (diff)
Merge branch 'master' into network-rewrite
Diffstat (limited to 'Emby.Dlna')
-rw-r--r--Emby.Dlna/PlayTo/DlnaHttpClient.cs14
1 files changed, 9 insertions, 5 deletions
diff --git a/Emby.Dlna/PlayTo/DlnaHttpClient.cs b/Emby.Dlna/PlayTo/DlnaHttpClient.cs
index 4e9903f26..8b983e9e3 100644
--- a/Emby.Dlna/PlayTo/DlnaHttpClient.cs
+++ b/Emby.Dlna/PlayTo/DlnaHttpClient.cs
@@ -49,20 +49,24 @@ namespace Emby.Dlna.PlayTo
private async Task<XDocument?> SendRequestAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
- using var response = await _httpClientFactory.CreateClient(NamedClient.Dlna).SendAsync(request, HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false);
+ var client = _httpClientFactory.CreateClient(NamedClient.Dlna);
+ using var response = await client.SendAsync(request, cancellationToken).ConfigureAwait(false);
response.EnsureSuccessStatusCode();
- await using var stream = await response.Content.ReadAsStreamAsync(cancellationToken).ConfigureAwait(false);
+ await using MemoryStream ms = new MemoryStream();
+ await response.Content.CopyToAsync(ms, cancellationToken).ConfigureAwait(false);
try
{
return await XDocument.LoadAsync(
- stream,
+ ms,
LoadOptions.None,
cancellationToken).ConfigureAwait(false);
}
catch (XmlException)
{
// try correcting the Xml response with common errors
- var xmlString = await response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false);
+ ms.Position = 0;
+ using StreamReader sr = new StreamReader(ms);
+ var xmlString = await sr.ReadToEndAsync(cancellationToken).ConfigureAwait(false);
// find and replace unescaped ampersands (&)
xmlString = EscapeAmpersandRegex().Replace(xmlString, "&amp;");
@@ -70,7 +74,7 @@ namespace Emby.Dlna.PlayTo
try
{
// retry reading Xml
- var xmlReader = new StringReader(xmlString);
+ using var xmlReader = new StringReader(xmlString);
return await XDocument.LoadAsync(
xmlReader,
LoadOptions.None,