|  | @@ -1,8 +1,6 @@
 | 
	
		
			
				|  |  |  using MediaBrowser.Common.Events;
 | 
	
		
			
				|  |  |  using MediaBrowser.Common.Net;
 | 
	
		
			
				|  |  |  using MediaBrowser.Controller.Configuration;
 | 
	
		
			
				|  |  | -using MediaBrowser.Dlna.PlayTo;
 | 
	
		
			
				|  |  | -using MediaBrowser.Model.Events;
 | 
	
		
			
				|  |  |  using MediaBrowser.Model.Logging;
 | 
	
		
			
				|  |  |  using System;
 | 
	
		
			
				|  |  |  using System.Collections.Generic;
 | 
	
	
		
			
				|  | @@ -10,7 +8,6 @@ using System.Linq;
 | 
	
		
			
				|  |  |  using System.Net;
 | 
	
		
			
				|  |  |  using System.Net.NetworkInformation;
 | 
	
		
			
				|  |  |  using System.Net.Sockets;
 | 
	
		
			
				|  |  | -using System.Text;
 | 
	
		
			
				|  |  |  using System.Threading;
 | 
	
		
			
				|  |  |  using System.Threading.Tasks;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -75,7 +72,7 @@ namespace MediaBrowser.Dlna.Ssdp
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -         void _ssdpHandler_MessageReceived(object sender, SsdpMessageEventArgs e)
 | 
	
		
			
				|  |  | +        void _ssdpHandler_MessageReceived(object sender, SsdpMessageEventArgs e)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              string nts;
 | 
	
		
			
				|  |  |              e.Headers.TryGetValue("NTS", out nts);
 | 
	
	
		
			
				|  | @@ -87,10 +84,16 @@ namespace MediaBrowser.Dlna.Ssdp
 | 
	
		
			
				|  |  |                  EventHelper.FireEventIfNotNull(DeviceLeft, this, e, _logger);
 | 
	
		
			
				|  |  |                  return;
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            
 | 
	
		
			
				|  |  | -             try
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            try
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  | -                //TryCreateDevice(e, IPAddress.Parse(_networkManager.GetLocalIpAddresses().First()));
 | 
	
		
			
				|  |  | +                //var ip = _networkManager.GetLocalIpAddresses().FirstOrDefault();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                //if (ip != null)
 | 
	
		
			
				|  |  | +                //{
 | 
	
		
			
				|  |  | +                //    e.LocalIp = IPAddress.Parse(ip);
 | 
	
		
			
				|  |  | +                //    TryCreateDevice(e);
 | 
	
		
			
				|  |  | +                //}
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              catch (OperationCanceledException)
 | 
	
		
			
				|  |  |              {
 | 
	
	
		
			
				|  | @@ -184,36 +187,6 @@ namespace MediaBrowser.Dlna.Ssdp
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        private void CreateNotifier(Socket socket)
 | 
	
		
			
				|  |  | -        {
 | 
	
		
			
				|  |  | -            Task.Factory.StartNew(async (o) =>
 | 
	
		
			
				|  |  | -            {
 | 
	
		
			
				|  |  | -                try
 | 
	
		
			
				|  |  | -                {
 | 
	
		
			
				|  |  | -                    var msg = new SsdpMessageBuilder().BuildRendererDiscoveryMessage();
 | 
	
		
			
				|  |  | -                    var request = Encoding.UTF8.GetBytes(msg);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                    while (true)
 | 
	
		
			
				|  |  | -                    {
 | 
	
		
			
				|  |  | -                        socket.SendTo(request, new IPEndPoint(IPAddress.Parse("239.255.255.250"), 1900));
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                        var delay = _config.GetDlnaConfiguration().ClientDiscoveryIntervalSeconds * 1000;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                        await Task.Delay(delay).ConfigureAwait(false);
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -                catch (OperationCanceledException)
 | 
	
		
			
				|  |  | -                {
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -                catch (Exception ex)
 | 
	
		
			
				|  |  | -                {
 | 
	
		
			
				|  |  | -                    _logger.ErrorException("Error in notifier", ex);
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            }, _tokenSource.Token, TaskCreationOptions.LongRunning);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |          private Socket GetMulticastSocket(int networkInterfaceIndex)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              var socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
 | 
	
	
		
			
				|  | @@ -223,7 +196,7 @@ namespace MediaBrowser.Dlna.Ssdp
 | 
	
		
			
				|  |  |              return socket;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        private  void TryCreateDevice(SsdpMessageEventArgs args)
 | 
	
		
			
				|  |  | +        private void TryCreateDevice(SsdpMessageEventArgs args)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              string nts;
 | 
	
		
			
				|  |  |              args.Headers.TryGetValue("NTS", out nts);
 | 
	
	
		
			
				|  | @@ -262,7 +235,7 @@ namespace MediaBrowser.Dlna.Ssdp
 | 
	
		
			
				|  |  |          public void Dispose()
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              _ssdpHandler.MessageReceived -= _ssdpHandler_MessageReceived;
 | 
	
		
			
				|  |  | -            
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |              if (!_disposed)
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  |                  _disposed = true;
 |