diff options
Diffstat (limited to 'MediaBrowser.Dlna/Ssdp/DeviceDiscovery.cs')
| -rw-r--r-- | MediaBrowser.Dlna/Ssdp/DeviceDiscovery.cs | 25 |
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) || |
