aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2016-01-06 22:54:26 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2016-01-06 22:54:26 -0500
commit0911bebf2289d3014d4798de9917ddbc9a297268 (patch)
tree300e37c66fb49820872be2b902a773e86957e5e7
parent2f40910c9042437bdc10f16ed3f84f47c6605130 (diff)
filter ip addresses
-rw-r--r--MediaBrowser.Common.Implementations/Networking/BaseNetworkManager.cs1
-rw-r--r--MediaBrowser.Dlna/Ssdp/DeviceDiscovery.cs40
-rw-r--r--MediaBrowser.Server.Startup.Common/ApplicationHost.cs2
3 files changed, 7 insertions, 36 deletions
diff --git a/MediaBrowser.Common.Implementations/Networking/BaseNetworkManager.cs b/MediaBrowser.Common.Implementations/Networking/BaseNetworkManager.cs
index 9b278b889..bc3dc360f 100644
--- a/MediaBrowser.Common.Implementations/Networking/BaseNetworkManager.cs
+++ b/MediaBrowser.Common.Implementations/Networking/BaseNetworkManager.cs
@@ -231,6 +231,7 @@ namespace MediaBrowser.Common.Implementations.Networking
var properties = network.GetIPProperties();
return properties.UnicastAddresses
+ .Where(i => i.IsDnsEligible)
.Select(i => i.Address)
.Where(i => i.AddressFamily == AddressFamily.InterNetwork)
.ToList();
diff --git a/MediaBrowser.Dlna/Ssdp/DeviceDiscovery.cs b/MediaBrowser.Dlna/Ssdp/DeviceDiscovery.cs
index 279979550..ed3698e43 100644
--- a/MediaBrowser.Dlna/Ssdp/DeviceDiscovery.cs
+++ b/MediaBrowser.Dlna/Ssdp/DeviceDiscovery.cs
@@ -11,6 +11,7 @@ using System.Net.NetworkInformation;
using System.Net.Sockets;
using System.Threading;
using System.Threading.Tasks;
+using MediaBrowser.Common.Net;
using MoreLinq;
namespace MediaBrowser.Dlna.Ssdp
@@ -27,52 +28,21 @@ namespace MediaBrowser.Dlna.Ssdp
public event EventHandler<SsdpMessageEventArgs> DeviceDiscovered;
public event EventHandler<SsdpMessageEventArgs> DeviceLeft;
+ private readonly INetworkManager _networkManager;
- public DeviceDiscovery(ILogger logger, IServerConfigurationManager config, IServerApplicationHost appHost)
+ public DeviceDiscovery(ILogger logger, IServerConfigurationManager config, IServerApplicationHost appHost, INetworkManager networkManager)
{
_tokenSource = new CancellationTokenSource();
_logger = logger;
_config = config;
_appHost = appHost;
+ _networkManager = networkManager;
}
private List<IPAddress> GetLocalIpAddresses()
{
- NetworkInterface[] interfaces;
-
- try
- {
- interfaces = NetworkInterface.GetAllNetworkInterfaces();
- }
- catch (Exception ex)
- {
- _logger.ErrorException("Error in GetAllNetworkInterfaces", ex);
- return new List<IPAddress>();
- }
-
- return interfaces.SelectMany(network => {
-
- try
- {
- _logger.Debug("Querying interface: {0}. Type: {1}. Status: {2}", network.Name, network.NetworkInterfaceType, network.OperationalStatus);
-
- var properties = network.GetIPProperties();
-
- return properties.UnicastAddresses
- .Select(i => i.Address)
- .Where(i => i.AddressFamily == AddressFamily.InterNetwork)
- .ToList();
- }
- catch (Exception ex)
- {
- _logger.ErrorException("Error querying network interface", ex);
- return new List<IPAddress>();
- }
-
- })
- .DistinctBy(i => i.ToString())
- .ToList();
+ return _networkManager.GetLocalIpAddresses().ToList();
}
public void Start(SsdpHandler ssdpHandler)
diff --git a/MediaBrowser.Server.Startup.Common/ApplicationHost.cs b/MediaBrowser.Server.Startup.Common/ApplicationHost.cs
index 4fee83d31..29da81e9a 100644
--- a/MediaBrowser.Server.Startup.Common/ApplicationHost.cs
+++ b/MediaBrowser.Server.Startup.Common/ApplicationHost.cs
@@ -522,7 +522,7 @@ namespace MediaBrowser.Server.Startup.Common
SubtitleManager = new SubtitleManager(LogManager.GetLogger("SubtitleManager"), FileSystemManager, LibraryMonitor, LibraryManager, MediaSourceManager);
RegisterSingleInstance(SubtitleManager);
- RegisterSingleInstance<IDeviceDiscovery>(new DeviceDiscovery(LogManager.GetLogger("IDeviceDiscovery"), ServerConfigurationManager, this));
+ RegisterSingleInstance<IDeviceDiscovery>(new DeviceDiscovery(LogManager.GetLogger("IDeviceDiscovery"), ServerConfigurationManager, this, NetworkManager));
ChapterManager = new ChapterManager(LibraryManager, LogManager.GetLogger("ChapterManager"), ServerConfigurationManager, ItemRepository);
RegisterSingleInstance(ChapterManager);