diff options
| author | Joshua M. Boniface <joshua@boniface.me> | 2020-11-22 01:11:02 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-11-22 01:11:02 -0500 |
| commit | a57b99bffdf40067465a0dda920fab23ceda1451 (patch) | |
| tree | 003df6bc0da24bdddeefc8366120cb4d20fc6933 /RSSDP | |
| parent | c1db8869f06105b13f93f15d12061ada523dbb78 (diff) | |
| parent | 2c9e355e428e1498d4dc3bce844917a1a0333284 (diff) | |
Merge pull request #4125 from BaronGreenback/NetworkPR2
Networking 2 (Cumulative PR) - Swapping over to new NetworkManager
Diffstat (limited to 'RSSDP')
| -rw-r--r-- | RSSDP/RSSDP.csproj | 1 | ||||
| -rw-r--r-- | RSSDP/SsdpCommunicationsServer.cs | 4 | ||||
| -rw-r--r-- | RSSDP/SsdpDevicePublisher.cs | 10 | ||||
| -rw-r--r-- | RSSDP/SsdpRootDevice.cs | 4 |
4 files changed, 9 insertions, 10 deletions
diff --git a/RSSDP/RSSDP.csproj b/RSSDP/RSSDP.csproj index d0962e82c8..c64ee9389d 100644 --- a/RSSDP/RSSDP.csproj +++ b/RSSDP/RSSDP.csproj @@ -6,6 +6,7 @@ </PropertyGroup> <ItemGroup> + <ProjectReference Include="..\Jellyfin.Networking\Jellyfin.Networking.csproj" /> <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" /> </ItemGroup> diff --git a/RSSDP/SsdpCommunicationsServer.cs b/RSSDP/SsdpCommunicationsServer.cs index a4be32e7d2..8f1f0fa613 100644 --- a/RSSDP/SsdpCommunicationsServer.cs +++ b/RSSDP/SsdpCommunicationsServer.cs @@ -352,7 +352,7 @@ namespace Rssdp.Infrastructure if (_enableMultiSocketBinding) { - foreach (var address in _networkManager.GetLocalIpAddresses()) + foreach (var address in _networkManager.GetInternalBindAddresses()) { if (address.AddressFamily == AddressFamily.InterNetworkV6) { @@ -362,7 +362,7 @@ namespace Rssdp.Infrastructure try { - sockets.Add(_SocketFactory.CreateSsdpUdpSocket(address, _LocalPort)); + sockets.Add(_SocketFactory.CreateSsdpUdpSocket(address.Address, _LocalPort)); } catch (Exception ex) { diff --git a/RSSDP/SsdpDevicePublisher.cs b/RSSDP/SsdpDevicePublisher.cs index 90925b9e0a..c9e795d565 100644 --- a/RSSDP/SsdpDevicePublisher.cs +++ b/RSSDP/SsdpDevicePublisher.cs @@ -300,17 +300,15 @@ namespace Rssdp.Infrastructure foreach (var device in deviceList) { - if (!_sendOnlyMatchedHost || - _networkManager.IsInSameSubnet(device.ToRootDevice().Address, remoteEndPoint.Address, device.ToRootDevice().SubnetMask)) + var root = device.ToRootDevice(); + var source = new IPNetAddress(root.Address, root.PrefixLength); + var destination = new IPNetAddress(remoteEndPoint.Address, root.PrefixLength); + if (!_sendOnlyMatchedHost || source.NetworkAddress.Equals(destination.NetworkAddress)) { SendDeviceSearchResponses(device, remoteEndPoint, receivedOnlocalIpAddress, cancellationToken); } } } - else - { - // WriteTrace(String.Format("Sending 0 search responses.")); - } }); } diff --git a/RSSDP/SsdpRootDevice.cs b/RSSDP/SsdpRootDevice.cs index 4084b31ca6..5ecb1f86f6 100644 --- a/RSSDP/SsdpRootDevice.cs +++ b/RSSDP/SsdpRootDevice.cs @@ -45,9 +45,9 @@ namespace Rssdp public IPAddress Address { get; set; } /// <summary> - /// Gets or sets the SubnetMask used to check if the received message from same interface with this device/tree. Required. + /// Gets or sets the prefix length used to check if the received message from same interface with this device/tree. Required. /// </summary> - public IPAddress SubnetMask { get; set; } + public byte PrefixLength { get; set; } /// <summary> /// The base URL to use for all relative url's provided in other properties (and those of child devices). Optional. |
