aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2016-02-16 12:09:32 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2016-02-16 12:09:32 -0500
commitcc98b04c5d773ba7df480136ab53f0fef67e09c7 (patch)
treebfa398cb2a00140f1214d1ef5b06e3275cda6ca8
parent5bf7e6d80c8b3c48f1dfec780a6e44d3623f4f32 (diff)
fix xbox one, ps4 not seeing dlna server
-rw-r--r--MediaBrowser.Dlna/DlnaManager.cs4
-rw-r--r--MediaBrowser.Dlna/Main/DlnaEntryPoint.cs12
-rw-r--r--MediaBrowser.Dlna/Server/DescriptionXmlBuilder.cs2
-rw-r--r--MediaBrowser.Dlna/Server/UpnpDevice.cs6
-rw-r--r--MediaBrowser.Dlna/Ssdp/SsdpHandler.cs6
-rw-r--r--MediaBrowser.Server.Implementations/HttpServer/ResponseFilter.cs1
6 files changed, 17 insertions, 14 deletions
diff --git a/MediaBrowser.Dlna/DlnaManager.cs b/MediaBrowser.Dlna/DlnaManager.cs
index 63a36744f..dd5c4b77e 100644
--- a/MediaBrowser.Dlna/DlnaManager.cs
+++ b/MediaBrowser.Dlna/DlnaManager.cs
@@ -488,7 +488,9 @@ namespace MediaBrowser.Dlna
var profile = GetProfile(headers) ??
GetDefaultProfile();
- return new DescriptionXmlBuilder(profile, serverUuId, serverAddress, _appHost.FriendlyName, serverUuId.GetMD5().ToString("N")).GetXml();
+ var serverId = _appHost.SystemId;
+
+ return new DescriptionXmlBuilder(profile, serverUuId, serverAddress, _appHost.FriendlyName, serverId).GetXml();
}
public ImageStream GetIcon(string filename)
diff --git a/MediaBrowser.Dlna/Main/DlnaEntryPoint.cs b/MediaBrowser.Dlna/Main/DlnaEntryPoint.cs
index d79ef9eaf..2133888b6 100644
--- a/MediaBrowser.Dlna/Main/DlnaEntryPoint.cs
+++ b/MediaBrowser.Dlna/Main/DlnaEntryPoint.cs
@@ -157,9 +157,9 @@ namespace MediaBrowser.Dlna.Main
//}
var addressString = address.ToString();
- var guid = addressString.GetMD5();
+ var udn = addressString.GetMD5().ToString("N");
- var descriptorURI = "/dlna/" + guid.ToString("N") + "/description.xml";
+ var descriptorURI = "/dlna/" + udn + "/description.xml";
var uri = new Uri(_appHost.GetLocalApiUrl(addressString) + descriptorURI);
@@ -170,12 +170,12 @@ namespace MediaBrowser.Dlna.Main
"urn:schemas-upnp-org:service:ContentDirectory:1",
"urn:schemas-upnp-org:service:ConnectionManager:1",
"urn:microsoft.com:service:X_MS_MediaReceiverRegistrar:1",
- "uuid:" + guid.ToString("N")
+ "uuid:" + udn
};
- _ssdpHandler.RegisterNotification(guid, uri, address, services);
+ _ssdpHandler.RegisterNotification(udn, uri, address, services);
- _registeredServerIds.Add(guid.ToString("N"));
+ _registeredServerIds.Add(udn);
}
}
@@ -240,7 +240,7 @@ namespace MediaBrowser.Dlna.Main
{
try
{
- _ssdpHandler.UnregisterNotification(new Guid(id));
+ _ssdpHandler.UnregisterNotification(id);
}
catch (Exception ex)
{
diff --git a/MediaBrowser.Dlna/Server/DescriptionXmlBuilder.cs b/MediaBrowser.Dlna/Server/DescriptionXmlBuilder.cs
index 281dee3e0..386370596 100644
--- a/MediaBrowser.Dlna/Server/DescriptionXmlBuilder.cs
+++ b/MediaBrowser.Dlna/Server/DescriptionXmlBuilder.cs
@@ -122,7 +122,7 @@ namespace MediaBrowser.Dlna.Server
builder.Append("<serialNumber>" + SecurityElement.Escape(_profile.SerialNumber) + "</serialNumber>");
}
- builder.Append("<UDN>uuid:" + SecurityElement.Escape(_serverId) + "</UDN>");
+ builder.Append("<UDN>uuid:" + SecurityElement.Escape(_serverUdn) + "</UDN>");
builder.Append("<presentationURL>" + SecurityElement.Escape(_serverAddress) + "</presentationURL>");
if (!EnableAbsoluteUrls)
diff --git a/MediaBrowser.Dlna/Server/UpnpDevice.cs b/MediaBrowser.Dlna/Server/UpnpDevice.cs
index 870e3c24f..10eaeb053 100644
--- a/MediaBrowser.Dlna/Server/UpnpDevice.cs
+++ b/MediaBrowser.Dlna/Server/UpnpDevice.cs
@@ -8,10 +8,10 @@ namespace MediaBrowser.Dlna.Server
public readonly Uri Descriptor;
public readonly string Type;
public readonly string USN;
- public readonly Guid Uuid;
+ public readonly string Uuid;
public readonly IPAddress Address;
- public UpnpDevice(Guid aUuid, string aType, Uri aDescriptor, IPAddress address)
+ public UpnpDevice(string aUuid, string aType, Uri aDescriptor, IPAddress address)
{
Uuid = aUuid;
Type = aType;
@@ -25,7 +25,7 @@ namespace MediaBrowser.Dlna.Server
}
else
{
- USN = String.Format("uuid:{0}::{1}", Uuid.ToString("N"), Type);
+ USN = String.Format("uuid:{0}::{1}", Uuid, Type);
}
}
}
diff --git a/MediaBrowser.Dlna/Ssdp/SsdpHandler.cs b/MediaBrowser.Dlna/Ssdp/SsdpHandler.cs
index 82fc5e466..881f70165 100644
--- a/MediaBrowser.Dlna/Ssdp/SsdpHandler.cs
+++ b/MediaBrowser.Dlna/Ssdp/SsdpHandler.cs
@@ -36,7 +36,7 @@ namespace MediaBrowser.Dlna.Ssdp
private Timer _notificationTimer;
private bool _isDisposed;
- private readonly ConcurrentDictionary<Guid, List<UpnpDevice>> _devices = new ConcurrentDictionary<Guid, List<UpnpDevice>>();
+ private readonly ConcurrentDictionary<string, List<UpnpDevice>> _devices = new ConcurrentDictionary<string, List<UpnpDevice>>();
private readonly IApplicationHost _appHost;
@@ -451,7 +451,7 @@ namespace MediaBrowser.Dlna.Ssdp
SendDatagram(msg, _ssdpEndp, new IPEndPoint(dev.Address, 0), true);
}
- public void RegisterNotification(Guid uuid, Uri descriptionUri, IPAddress address, IEnumerable<string> services)
+ public void RegisterNotification(string uuid, Uri descriptionUri, IPAddress address, IEnumerable<string> services)
{
var list = _devices.GetOrAdd(uuid, new List<UpnpDevice>());
@@ -461,7 +461,7 @@ namespace MediaBrowser.Dlna.Ssdp
_logger.Debug("Registered mount {0} at {1}", uuid, descriptionUri);
}
- public void UnregisterNotification(Guid uuid)
+ public void UnregisterNotification(string uuid)
{
List<UpnpDevice> dl;
if (_devices.TryRemove(uuid, out dl))
diff --git a/MediaBrowser.Server.Implementations/HttpServer/ResponseFilter.cs b/MediaBrowser.Server.Implementations/HttpServer/ResponseFilter.cs
index 4ef9d5277..f993d4437 100644
--- a/MediaBrowser.Server.Implementations/HttpServer/ResponseFilter.cs
+++ b/MediaBrowser.Server.Implementations/HttpServer/ResponseFilter.cs
@@ -61,6 +61,7 @@ namespace MediaBrowser.Server.Implementations.HttpServer
if (!hasOptions.Options.ContainsKey("Server"))
{
hasOptions.Options["Server"] = "Mono-HTTPAPI/1.1, UPnP/1.0 DLNADOC/1.50";
+ //hasOptions.Options["Server"] = "Mono-HTTPAPI/1.1";
}
// Content length has to be explicitly set on on HttpListenerResponse or it won't be happy