Sfoglia il codice sorgente

update dlna interface binding

Luke Pulverenti 9 anni fa
parent
commit
40c46ca649

+ 4 - 0
MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj

@@ -51,6 +51,9 @@
       <SpecificVersion>False</SpecificVersion>
       <HintPath>..\packages\CommonIO.1.0.0.5\lib\net45\CommonIO.dll</HintPath>
     </Reference>
+    <Reference Include="MoreLinq">
+      <HintPath>..\packages\morelinq.1.4.0\lib\net35\MoreLinq.dll</HintPath>
+    </Reference>
     <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
       <HintPath>..\packages\NLog.4.2.2\lib\net45\NLog.dll</HintPath>
@@ -69,6 +72,7 @@
     <Reference Include="System" />
     <Reference Include="System.Core" />
     <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
     <Reference Include="System.Net" />
     <Reference Include="System.Xml" />
     <Reference Include="ServiceStack.Text">

+ 3 - 6
MediaBrowser.Common.Implementations/Networking/BaseNetworkManager.cs

@@ -226,16 +226,13 @@ namespace MediaBrowser.Common.Implementations.Networking
 
 				try
 				{
-					Logger.Debug("Found interface: {0}. Type: {1}. Status: {2}", network.Name, network.NetworkInterfaceType, network.OperationalStatus);
+                    Logger.Debug("Querying interface: {0}. Type: {1}. Status: {2}", network.Name, network.NetworkInterfaceType, network.OperationalStatus);
 
 					var properties = network.GetIPProperties();
-					var ipV4 = properties.GetIPv4Properties();
-					if (null == ipV4)
-						return new List<IPAddress>();
 
 					return properties.UnicastAddresses
-						.Where(i => i.Address.AddressFamily == AddressFamily.InterNetwork && !IPAddress.IsLoopback(i.Address))
-						.Select(i => i.Address)
+                        .Select(i => i.Address)
+                        .Where(i => i.AddressFamily == AddressFamily.InterNetwork && !IPAddress.IsLoopback(i))
 						.ToList();
 				}
 				catch (Exception ex)

+ 1 - 0
MediaBrowser.Common.Implementations/packages.config

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <packages>
   <package id="CommonIO" version="1.0.0.5" targetFramework="net45" />
+  <package id="morelinq" version="1.4.0" targetFramework="net45" />
   <package id="NLog" version="4.2.2" targetFramework="net45" />
   <package id="Patterns.Logging" version="1.0.0.2" targetFramework="net45" />
   <package id="SimpleInjector" version="3.1.1" targetFramework="net45" />

+ 4 - 0
MediaBrowser.Dlna/MediaBrowser.Dlna.csproj

@@ -44,6 +44,10 @@
       <SpecificVersion>False</SpecificVersion>
       <HintPath>..\packages\CommonIO.1.0.0.5\lib\net45\CommonIO.dll</HintPath>
     </Reference>
+    <Reference Include="MoreLinq, Version=1.4.18916.0, Culture=neutral, PublicKeyToken=384d532d7e88985d, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\packages\morelinq.1.4.0\lib\net35\MoreLinq.dll</HintPath>
+    </Reference>
     <Reference Include="Patterns.Logging">
       <HintPath>..\packages\Patterns.Logging.1.0.0.2\lib\portable-net45+sl4+wp71+win8+wpa81\Patterns.Logging.dll</HintPath>
     </Reference>

+ 5 - 7
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 MoreLinq;
 
 namespace MediaBrowser.Dlna.Ssdp
 {
@@ -54,16 +55,13 @@ namespace MediaBrowser.Dlna.Ssdp
 
 				try
 				{
-					_logger.Debug("Found interface: {0}. Type: {1}. Status: {2}", network.Name, network.NetworkInterfaceType, network.OperationalStatus);
+					_logger.Debug("Querying interface: {0}. Type: {1}. Status: {2}", network.Name, network.NetworkInterfaceType, network.OperationalStatus);
 
 					var properties = network.GetIPProperties();
-					var ipV4 = properties.GetIPv4Properties();
-					if (null == ipV4)
-						return new List<IPAddress>();
 
 					return properties.UnicastAddresses
-						.Where(i => i.Address.AddressFamily == AddressFamily.InterNetwork && !IPAddress.IsLoopback(i.Address))
-						.Select(i => i.Address)
+                        .Select(i => i.Address)
+						.Where(i => i.AddressFamily == AddressFamily.InterNetwork)
 						.ToList();
 				}
 				catch (Exception ex)
@@ -73,7 +71,7 @@ namespace MediaBrowser.Dlna.Ssdp
 				}
 
 			})
-				.Distinct()
+                .DistinctBy(i => i.ToString())
 				.ToList();
 		}
 

+ 1 - 0
MediaBrowser.Dlna/packages.config

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <packages>
   <package id="CommonIO" version="1.0.0.5" targetFramework="net45" />
+  <package id="morelinq" version="1.4.0" targetFramework="net45" />
   <package id="Patterns.Logging" version="1.0.0.2" targetFramework="net45" />
 </packages>