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.cs19
1 files changed, 11 insertions, 8 deletions
diff --git a/MediaBrowser.Dlna/Ssdp/DeviceDiscovery.cs b/MediaBrowser.Dlna/Ssdp/DeviceDiscovery.cs
index 3befa221b..c9b983bae 100644
--- a/MediaBrowser.Dlna/Ssdp/DeviceDiscovery.cs
+++ b/MediaBrowser.Dlna/Ssdp/DeviceDiscovery.cs
@@ -14,31 +14,31 @@ using System.Threading.Tasks;
namespace MediaBrowser.Dlna.Ssdp
{
- public class DeviceDiscovery : IDisposable
+ public class DeviceDiscovery : IDeviceDiscovery, IDisposable
{
private bool _disposed;
private readonly ILogger _logger;
private readonly IServerConfigurationManager _config;
- private readonly SsdpHandler _ssdpHandler;
+ private SsdpHandler _ssdpHandler;
private readonly CancellationTokenSource _tokenSource;
private readonly IServerApplicationHost _appHost;
public event EventHandler<SsdpMessageEventArgs> DeviceDiscovered;
public event EventHandler<SsdpMessageEventArgs> DeviceLeft;
- public DeviceDiscovery(ILogger logger, IServerConfigurationManager config, SsdpHandler ssdpHandler, IServerApplicationHost appHost)
+ public DeviceDiscovery(ILogger logger, IServerConfigurationManager config, IServerApplicationHost appHost)
{
_tokenSource = new CancellationTokenSource();
_logger = logger;
_config = config;
- _ssdpHandler = ssdpHandler;
_appHost = appHost;
}
- public void Start()
+ public void Start(SsdpHandler ssdpHandler)
{
+ _ssdpHandler = ssdpHandler;
_ssdpHandler.MessageReceived += _ssdpHandler_MessageReceived;
foreach (var network in GetNetworkInterfaces())
@@ -71,7 +71,7 @@ namespace MediaBrowser.Dlna.Ssdp
}
}
}
-
+
void _ssdpHandler_MessageReceived(object sender, SsdpMessageEventArgs e)
{
string nts;
@@ -199,7 +199,7 @@ namespace MediaBrowser.Dlna.Ssdp
socket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastTimeToLive, 4);
socket.Bind(localEndpoint);
-
+
return socket;
}
@@ -248,7 +248,10 @@ namespace MediaBrowser.Dlna.Ssdp
public void Dispose()
{
- _ssdpHandler.MessageReceived -= _ssdpHandler_MessageReceived;
+ if (_ssdpHandler != null)
+ {
+ _ssdpHandler.MessageReceived -= _ssdpHandler_MessageReceived;
+ }
if (!_disposed)
{