diff options
| author | oledfish <88390729+oledfish@users.noreply.github.com> | 2022-01-16 21:33:18 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-01-16 21:33:18 -0300 |
| commit | 3b075a58027be4a2a3bdf662c70934f6cafafe87 (patch) | |
| tree | b4c226f25f843c3f2685c92e1edc3b3999716d34 /Emby.Dlna/Service/BaseControlHandler.cs | |
| parent | 86a5e72a65df638df2cde349ccd2ad8c5d40f88c (diff) | |
| parent | ef0708d876434a99ec647473c37295fab45a35fb (diff) | |
Merge branch 'jellyfin:master' into additional-episode-orders
Diffstat (limited to 'Emby.Dlna/Service/BaseControlHandler.cs')
| -rw-r--r-- | Emby.Dlna/Service/BaseControlHandler.cs | 51 |
1 files changed, 23 insertions, 28 deletions
diff --git a/Emby.Dlna/Service/BaseControlHandler.cs b/Emby.Dlna/Service/BaseControlHandler.cs index 581e4a2861..7bec2eb728 100644 --- a/Emby.Dlna/Service/BaseControlHandler.cs +++ b/Emby.Dlna/Service/BaseControlHandler.cs @@ -47,7 +47,7 @@ namespace Emby.Dlna.Service private async Task<ControlResponse> ProcessControlRequestInternalAsync(ControlRequest request) { - ControlRequestInfo? requestInfo = null; + ControlRequestInfo requestInfo; using (var streamReader = new StreamReader(request.InputXml, Encoding.UTF8)) { @@ -64,8 +64,13 @@ namespace Emby.Dlna.Service requestInfo = await ParseRequestAsync(reader).ConfigureAwait(false); } - Logger.LogDebug("Received control request {0}", requestInfo.LocalName); + Logger.LogDebug("Received control request {LocalName}, params: {@Headers}", requestInfo.LocalName, requestInfo.Headers); + return CreateControlResponse(requestInfo); + } + + private ControlResponse CreateControlResponse(ControlRequestInfo requestInfo) + { var settings = new XmlWriterSettings { Encoding = Encoding.UTF8, @@ -112,29 +117,19 @@ namespace Emby.Dlna.Service { if (reader.NodeType == XmlNodeType.Element) { - switch (reader.LocalName) + if (string.Equals(reader.LocalName, "Body", StringComparison.Ordinal)) { - case "Body": - { - if (!reader.IsEmptyElement) - { - using var subReader = reader.ReadSubtree(); - return await ParseBodyTagAsync(subReader).ConfigureAwait(false); - } - else - { - await reader.ReadAsync().ConfigureAwait(false); - } - - break; - } - - default: - { - await reader.SkipAsync().ConfigureAwait(false); - break; - } + if (reader.IsEmptyElement) + { + await reader.ReadAsync().ConfigureAwait(false); + continue; + } + + using var subReader = reader.ReadSubtree(); + return await ParseBodyTagAsync(subReader).ConfigureAwait(false); } + + await reader.SkipAsync().ConfigureAwait(false); } else { @@ -160,17 +155,17 @@ namespace Emby.Dlna.Service localName = reader.LocalName; namespaceURI = reader.NamespaceURI; - if (!reader.IsEmptyElement) + if (reader.IsEmptyElement) + { + await reader.ReadAsync().ConfigureAwait(false); + } + else { var result = new ControlRequestInfo(localName, namespaceURI); using var subReader = reader.ReadSubtree(); await ParseFirstBodyChildAsync(subReader, result.Headers).ConfigureAwait(false); return result; } - else - { - await reader.ReadAsync().ConfigureAwait(false); - } } else { |
