From 1e7acec01799e3cfe6fd2a8630dbd8f6e3338251 Mon Sep 17 00:00:00 2001 From: JPVenson Date: Sat, 26 Oct 2024 10:31:01 +0000 Subject: Added Setup overlay app to communicate status of startup --- src/Jellyfin.Networking/Manager/NetworkManager.cs | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/Jellyfin.Networking/Manager/NetworkManager.cs b/src/Jellyfin.Networking/Manager/NetworkManager.cs index 5a13cc4173..7a22dd8526 100644 --- a/src/Jellyfin.Networking/Manager/NetworkManager.cs +++ b/src/Jellyfin.Networking/Manager/NetworkManager.cs @@ -921,6 +921,19 @@ public class NetworkManager : INetworkManager, IDisposable /// public bool IsInLocalNetwork(IPAddress address) + { + return NetworkManager.IsInLocalNetwork(address, TrustAllIPv6Interfaces, _lanSubnets, _excludedSubnets); + } + + /// + /// Checks a ip address to match any lansubnet given but not to be in any excluded subnet. + /// + /// The IP address to checl. + /// Whenever all IPV6 subnet address shall be permitted. + /// The list of subnets to permit. + /// The list of subnets to never permit. + /// The check if the given IP address is in any provided subnet. + public static bool IsInLocalNetwork(IPAddress address, bool trustAllIpv6, IReadOnlyList lanSubnets, IReadOnlyList excludedSubnets) { ArgumentNullException.ThrowIfNull(address); @@ -930,23 +943,23 @@ public class NetworkManager : INetworkManager, IDisposable address = address.MapToIPv4(); } - if ((TrustAllIPv6Interfaces && address.AddressFamily == AddressFamily.InterNetworkV6) + if ((trustAllIpv6 && address.AddressFamily == AddressFamily.InterNetworkV6) || IPAddress.IsLoopback(address)) { return true; } // As private addresses can be redefined by Configuration.LocalNetworkAddresses - return CheckIfLanAndNotExcluded(address); + return CheckIfLanAndNotExcluded(address, lanSubnets, excludedSubnets); } - private bool CheckIfLanAndNotExcluded(IPAddress address) + private static bool CheckIfLanAndNotExcluded(IPAddress address, IReadOnlyList lanSubnets, IReadOnlyList excludedSubnets) { - foreach (var lanSubnet in _lanSubnets) + foreach (var lanSubnet in lanSubnets) { if (lanSubnet.Contains(address)) { - foreach (var excludedSubnet in _excludedSubnets) + foreach (var excludedSubnet in excludedSubnets) { if (excludedSubnet.Contains(address)) { -- cgit v1.2.3