aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Dlna/Ssdp/DeviceDiscovery.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Dlna/Ssdp/DeviceDiscovery.cs')
-rw-r--r--MediaBrowser.Dlna/Ssdp/DeviceDiscovery.cs25
1 files changed, 17 insertions, 8 deletions
diff --git a/MediaBrowser.Dlna/Ssdp/DeviceDiscovery.cs b/MediaBrowser.Dlna/Ssdp/DeviceDiscovery.cs
index 3dd482e647..94342bf31e 100644
--- a/MediaBrowser.Dlna/Ssdp/DeviceDiscovery.cs
+++ b/MediaBrowser.Dlna/Ssdp/DeviceDiscovery.cs
@@ -1,5 +1,4 @@
using MediaBrowser.Common.Events;
-using MediaBrowser.Common.Net;
using MediaBrowser.Controller;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Dlna;
@@ -143,7 +142,10 @@ namespace MediaBrowser.Dlna.Ssdp
args.EndPoint = endPoint;
args.LocalIp = localIp;
- TryCreateDevice(args);
+ if (!_ssdpHandler.IsSelfNotification(args))
+ {
+ TryCreateDevice(args);
+ }
}
}
@@ -203,18 +205,25 @@ namespace MediaBrowser.Dlna.Ssdp
string nts;
args.Headers.TryGetValue("NTS", out nts);
+ if (String.Equals(nts, "ssdp:byebye", StringComparison.OrdinalIgnoreCase))
+ {
+ if (String.Equals(args.Method, "NOTIFY", StringComparison.OrdinalIgnoreCase))
+ {
+ if (!_disposed)
+ {
+ EventHelper.FireEventIfNotNull(DeviceLeft, this, args, _logger);
+ }
+ }
+
+ return;
+ }
+
string usn;
if (!args.Headers.TryGetValue("USN", out usn)) usn = string.Empty;
string nt;
if (!args.Headers.TryGetValue("NT", out nt)) nt = string.Empty;
- // Ignore when a device is indicating it's shutting down
- if (string.Equals(nts, "ssdp:byebye", StringComparison.OrdinalIgnoreCase))
- {
- return;
- }
-
// Need to be able to download device description
string location;
if (!args.Headers.TryGetValue("Location", out location) ||