aboutsummaryrefslogtreecommitdiff
path: root/Emby.Dlna/Service/BaseControlHandler.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2016-12-03 18:57:34 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2016-12-03 18:57:34 -0500
commit7ed6c67db0f28c5776d972668a438369c3b96aef (patch)
tree234d4878911b9fa9f18aed5a3166e301e572ec3d /Emby.Dlna/Service/BaseControlHandler.cs
parent83ad945015541aefbe2a0cd2a00ed6e0c151f72c (diff)
update xml parsing
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 8f91626d48..4ce047172e 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