From 1774e5b1ac9f809fd97c1d95666fc563afa87914 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 20 May 2014 20:56:24 -0400 Subject: added upnp ConnectionManager.cs --- MediaBrowser.Dlna/Service/ControlErrorHandler.cs | 41 ++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 MediaBrowser.Dlna/Service/ControlErrorHandler.cs (limited to 'MediaBrowser.Dlna/Service/ControlErrorHandler.cs') diff --git a/MediaBrowser.Dlna/Service/ControlErrorHandler.cs b/MediaBrowser.Dlna/Service/ControlErrorHandler.cs new file mode 100644 index 0000000000..42b1fcbc99 --- /dev/null +++ b/MediaBrowser.Dlna/Service/ControlErrorHandler.cs @@ -0,0 +1,41 @@ +using MediaBrowser.Controller.Dlna; +using System; +using System.Xml; + +namespace MediaBrowser.Dlna.Service +{ + public class ControlErrorHandler + { + private const string NS_SOAPENV = "http://schemas.xmlsoap.org/soap/envelope/"; + + public ControlResponse GetResponse(Exception ex) + { + var env = new XmlDocument(); + env.AppendChild(env.CreateXmlDeclaration("1.0", "utf-8", "yes")); + var envelope = env.CreateElement("SOAP-ENV", "Envelope", NS_SOAPENV); + env.AppendChild(envelope); + envelope.SetAttribute("encodingStyle", NS_SOAPENV, "http://schemas.xmlsoap.org/soap/encoding/"); + + var rbody = env.CreateElement("SOAP-ENV:Body", NS_SOAPENV); + env.DocumentElement.AppendChild(rbody); + + var fault = env.CreateElement("SOAP-ENV", "Fault", NS_SOAPENV); + var faultCode = env.CreateElement("faultcode"); + faultCode.InnerText = "500"; + fault.AppendChild(faultCode); + var faultString = env.CreateElement("faultstring"); + faultString.InnerText = ex.ToString(); + fault.AppendChild(faultString); + var detail = env.CreateDocumentFragment(); + detail.InnerXml = "401Invalid Action"; + fault.AppendChild(detail); + rbody.AppendChild(fault); + + return new ControlResponse + { + Xml = env.OuterXml, + IsSuccessful = false + }; + } + } +} -- cgit v1.2.3