aboutsummaryrefslogtreecommitdiff
path: root/Emby.Dlna/Service/BaseControlHandler.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Emby.Dlna/Service/BaseControlHandler.cs')
-rw-r--r--Emby.Dlna/Service/BaseControlHandler.cs33
1 files changed, 24 insertions, 9 deletions
diff --git a/Emby.Dlna/Service/BaseControlHandler.cs b/Emby.Dlna/Service/BaseControlHandler.cs
index 8f91626d4..4ce047172 100644
--- a/Emby.Dlna/Service/BaseControlHandler.cs
+++ b/Emby.Dlna/Service/BaseControlHandler.cs
@@ -16,7 +16,7 @@ namespace Emby.Dlna.Service
public abstract class BaseControlHandler
{
private const string NS_SOAPENV = "http://schemas.xmlsoap.org/soap/envelope/";
-
+
protected readonly IServerConfigurationManager Config;
protected readonly ILogger Logger;
protected readonly IXmlReaderSettingsFactory XmlReaderSettingsFactory;
@@ -109,7 +109,7 @@ namespace Emby.Dlna.Service
}
var xml = builder.ToString().Replace("xmlns:m=", "xmlns:u=");
-
+
var controlResponse = new ControlResponse
{
Xml = xml,
@@ -136,12 +136,20 @@ namespace Emby.Dlna.Service
switch (reader.LocalName)
{
case "Body":
- {
- using (var subReader = reader.ReadSubtree())
{
- return ParseBodyTag(subReader);
+ if (!reader.IsEmptyElement)
+ {
+ using (var subReader = reader.ReadSubtree())
+ {
+ return ParseBodyTag(subReader);
+ }
+ }
+ else
+ {
+ reader.Read();
+ }
+ break;
}
- }
default:
{
reader.Skip();
@@ -173,11 +181,18 @@ namespace Emby.Dlna.Service
result.LocalName = reader.LocalName;
result.NamespaceURI = reader.NamespaceURI;
- using (var subReader = reader.ReadSubtree())
+ if (!reader.IsEmptyElement)
{
- result.Headers = ParseFirstBodyChild(subReader);
+ using (var subReader = reader.ReadSubtree())
+ {
+ result.Headers = ParseFirstBodyChild(subReader);
- return result;
+ return result;
+ }
+ }
+ else
+ {
+ reader.Read();
}
}
else