aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Networking/Manager/NetworkManager.cs
diff options
context:
space:
mode:
authorCody Robibero <cody@robibe.ro>2022-04-03 16:38:04 -0600
committercrobibero <cody@robibe.ro>2022-04-07 12:54:58 -0400
commit94a69c8a8bfbb9c99f93bc6057a23b74f9c41ac8 (patch)
tree28ced432e458518c82460b95cff9ed73fff6f075 /Jellyfin.Networking/Manager/NetworkManager.cs
parent04cac23a11cacb750a73c65d1dc54c01504626b0 (diff)
Merge pull request #7549 from cvium/fix_isinlocalnetwork
(cherry picked from commit bdb85aeecf10feae62ec615c8d80f1b517b8a5d6) Signed-off-by: crobibero <cody@robibe.ro>
Diffstat (limited to 'Jellyfin.Networking/Manager/NetworkManager.cs')
-rw-r--r--Jellyfin.Networking/Manager/NetworkManager.cs33
1 files changed, 8 insertions, 25 deletions
diff --git a/Jellyfin.Networking/Manager/NetworkManager.cs b/Jellyfin.Networking/Manager/NetworkManager.cs
index b16dc5390..4b7b87814 100644
--- a/Jellyfin.Networking/Manager/NetworkManager.cs
+++ b/Jellyfin.Networking/Manager/NetworkManager.cs
@@ -464,35 +464,13 @@ namespace Jellyfin.Networking.Manager
/// <inheritdoc/>
public bool IsInLocalNetwork(IPObject address)
{
- if (address == null)
- {
- throw new ArgumentNullException(nameof(address));
- }
-
- if (address.Equals(IPAddress.None))
- {
- return false;
- }
-
- // See conversation at https://github.com/jellyfin/jellyfin/pull/3515.
- if (TrustAllIP6Interfaces && address.AddressFamily == AddressFamily.InterNetworkV6)
- {
- return true;
- }
-
- // As private addresses can be redefined by Configuration.LocalNetworkAddresses
- return address.IsLoopback() || (_lanSubnets.ContainsAddress(address) && !_excludedSubnets.ContainsAddress(address));
+ return IsInLocalNetwork(address.Address);
}
/// <inheritdoc/>
public bool IsInLocalNetwork(string address)
{
- if (IPHost.TryParse(address, out IPHost ep))
- {
- return _lanSubnets.ContainsAddress(ep) && !_excludedSubnets.ContainsAddress(ep);
- }
-
- return false;
+ return IPHost.TryParse(address, out IPHost ipHost) && IsInLocalNetwork(ipHost);
}
/// <inheritdoc/>
@@ -503,6 +481,11 @@ namespace Jellyfin.Networking.Manager
throw new ArgumentNullException(nameof(address));
}
+ if (address.Equals(IPAddress.None))
+ {
+ return false;
+ }
+
// See conversation at https://github.com/jellyfin/jellyfin/pull/3515.
if (TrustAllIP6Interfaces && address.AddressFamily == AddressFamily.InterNetworkV6)
{
@@ -510,7 +493,7 @@ namespace Jellyfin.Networking.Manager
}
// As private addresses can be redefined by Configuration.LocalNetworkAddresses
- return _lanSubnets.ContainsAddress(address) && !_excludedSubnets.ContainsAddress(address);
+ return IPAddress.IsLoopback(address) || (_lanSubnets.ContainsAddress(address) && !_excludedSubnets.ContainsAddress(address));
}
/// <inheritdoc/>