aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeaEagle1 <seaeagle1@users.sourceforge.net>2023-05-13 00:07:20 +0200
committerSeaEagle1 <seaeagle1@users.sourceforge.net>2023-05-13 00:28:07 +0200
commit126047bfd6fbb3156c07905b8cf58506cde2c664 (patch)
tree8381073b19ae9e1bc2a6a7901220bb6a6aba107f
parent9352a243744d5d6805f80dc57792919f15ca5b90 (diff)
Use compile-time generated regex and remove loglevel check
-rw-r--r--Emby.Dlna/PlayTo/DlnaHttpClient.cs20
1 files changed, 13 insertions, 7 deletions
diff --git a/Emby.Dlna/PlayTo/DlnaHttpClient.cs b/Emby.Dlna/PlayTo/DlnaHttpClient.cs
index 9930f0ede..4e9903f26 100644
--- a/Emby.Dlna/PlayTo/DlnaHttpClient.cs
+++ b/Emby.Dlna/PlayTo/DlnaHttpClient.cs
@@ -17,7 +17,10 @@ using Microsoft.Extensions.Logging;
namespace Emby.Dlna.PlayTo
{
- public class DlnaHttpClient
+ /// <summary>
+ /// Http client for Dlna PlayTo function.
+ /// </summary>
+ public partial class DlnaHttpClient
{
private readonly ILogger _logger;
private readonly IHttpClientFactory _httpClientFactory;
@@ -62,8 +65,7 @@ namespace Emby.Dlna.PlayTo
var xmlString = await response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false);
// find and replace unescaped ampersands (&)
- Regex regex = new Regex(@"(&(?![a-z]*;))");
- xmlString = regex.Replace(xmlString, @"&amp;");
+ xmlString = EscapeAmpersandRegex().Replace(xmlString, "&amp;");
try
{
@@ -77,10 +79,7 @@ namespace Emby.Dlna.PlayTo
catch (XmlException ex)
{
_logger.LogError(ex, "Failed to parse response");
- if (_logger.IsEnabled(LogLevel.Debug))
- {
- _logger.LogDebug("Malformed response: {Content}\n", xmlString);
- }
+ _logger.LogDebug("Malformed response: {Content}\n", xmlString);
return null;
}
@@ -125,5 +124,12 @@ namespace Emby.Dlna.PlayTo
// Have to await here instead of returning the Task directly, otherwise request would be disposed too soon
return await SendRequestAsync(request, cancellationToken).ConfigureAwait(false);
}
+
+ /// <summary>
+ /// Compile-time generated regular expression for escaping ampersands.
+ /// </summary>
+ /// <returns>Compiled regular expression.</returns>
+ [GeneratedRegex("(&(?![a-z]*;))")]
+ private static partial Regex EscapeAmpersandRegex();
}
}