From 35a30c9d098e7ac5fcaf7d86a4cc616deb8a2cfa Mon Sep 17 00:00:00 2001 From: BaronGreenback Date: Fri, 8 Jan 2021 00:05:15 +0000 Subject: Impliments KnownNetworks and KnownProxies --- tests/Jellyfin.Api.Tests/ParseNetworkTests.cs | 95 +++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 tests/Jellyfin.Api.Tests/ParseNetworkTests.cs (limited to 'tests') diff --git a/tests/Jellyfin.Api.Tests/ParseNetworkTests.cs b/tests/Jellyfin.Api.Tests/ParseNetworkTests.cs new file mode 100644 index 0000000000..3a9f0a0790 --- /dev/null +++ b/tests/Jellyfin.Api.Tests/ParseNetworkTests.cs @@ -0,0 +1,95 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Net; +using System.Text; +using System.Threading.Tasks; +using Jellyfin.Networking.Configuration; +using Jellyfin.Networking.Manager; +using Jellyfin.Server.Extensions; +using MediaBrowser.Common.Configuration; +using MediaBrowser.Common.Net; +using Microsoft.AspNetCore.Builder; +using Microsoft.Extensions.Logging.Abstractions; +using Moq; +using Xunit; + +namespace Jellyfin.Api.Tests +{ + public class ParseNetworkTests + { + private static IConfigurationManager GetMockConfig(NetworkConfiguration conf) + { + var configManager = new Mock + { + CallBase = true + }; + configManager.Setup(x => x.GetConfiguration(It.IsAny())).Returns(conf); + return (IConfigurationManager)configManager.Object; + } + + private static NetworkManager CreateNetworkManager() + { + var conf = new NetworkConfiguration() + { + EnableIPV6 = true, + EnableIPV4 = true, + }; + + return new NetworkManager(GetMockConfig(conf), new NullLogger()); + } + + /// + /// Order of the result has always got to be hosts, then networks. + /// + /// IP4 enabled. + /// IP6 enabled. + /// List to parse. + /// What it should match. + [Theory] + [InlineData(true, true, "192.168.0.0/16,www.yahoo.co.uk", "::ffff:212.82.100.150,::ffff:192.168.0.0/16")] + [InlineData(true, false, "192.168.0.0/16,www.yahoo.co.uk", "212.82.100.150,192.168.0.0/16")] + [InlineData(true, true, "192.168.t,127.0.0.1,1234.1232.12.1234", "::ffff:127.0.0.1")] + [InlineData(true, false, "192.168.x,127.0.0.1,1234.1232.12.1234", "127.0.0.1")] + [InlineData(true, true, "::1", "::1/128")] + public void TestNetworks(bool ip4, bool ip6, string hostList, string match) + { + using var nm = CreateNetworkManager(); + nm.SystemIP6Enabled = ip6; + + var settings = new NetworkConfiguration(); + settings.EnableIPV4 = ip4; + settings.EnableIPV6 = ip6; + + var result = match + ','; + ForwardedHeadersOptions options = new ForwardedHeadersOptions(); + + // Need this here as ::1 and 127.0.0.1 are in them by default. + options.KnownProxies.Clear(); + options.KnownNetworks.Clear(); + + ApiServiceCollectionExtensions.ParseList(nm, settings, hostList.Split(","), options); + + var sb = new StringBuilder(); + foreach (var item in options.KnownProxies) + { + sb.Append(item.ToString()); + sb.Append(','); + } + + foreach (var item in options.KnownNetworks) + { + sb.Append(item.Prefix.ToString()); + sb.Append('/'); + sb.Append(item.PrefixLength.ToString(CultureInfo.InvariantCulture)); + sb.Append(','); + } + + if (!string.Equals(sb.ToString(), result, StringComparison.OrdinalIgnoreCase)) + { + throw new Exception("Not matched: " + sb.ToString() + " does not match " + result); + } + } + } +} -- cgit v1.2.3 From 2979c8dd377bf0948be00082b97416b38c21de56 Mon Sep 17 00:00:00 2001 From: BaronGreenback Date: Tue, 12 Jan 2021 13:23:10 +0000 Subject: Fixed test on Mac --- Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs | 2 +- tests/Jellyfin.Api.Tests/ParseNetworkTests.cs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'tests') diff --git a/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs b/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs index 4f6329f824..2d03c129e2 100644 --- a/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs +++ b/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs @@ -274,8 +274,8 @@ namespace Jellyfin.Server.Extensions options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto; if (config.KnownProxies.Length == 0) { - options.KnownProxies.Clear(); options.KnownNetworks.Clear(); + options.KnownProxies.Clear(); } else { diff --git a/tests/Jellyfin.Api.Tests/ParseNetworkTests.cs b/tests/Jellyfin.Api.Tests/ParseNetworkTests.cs index 3a9f0a0790..f4ea45cc2b 100644 --- a/tests/Jellyfin.Api.Tests/ParseNetworkTests.cs +++ b/tests/Jellyfin.Api.Tests/ParseNetworkTests.cs @@ -48,8 +48,8 @@ namespace Jellyfin.Api.Tests /// List to parse. /// What it should match. [Theory] - [InlineData(true, true, "192.168.0.0/16,www.yahoo.co.uk", "::ffff:212.82.100.150,::ffff:192.168.0.0/16")] - [InlineData(true, false, "192.168.0.0/16,www.yahoo.co.uk", "212.82.100.150,192.168.0.0/16")] + // [InlineData(true, true, "192.168.0.0/16,www.yahoo.co.uk", "::ffff:212.82.100.150,::ffff:192.168.0.0/16")] <- fails on Max. www.yahoo.co.uk resolves to a different ip address. + // [InlineData(true, false, "192.168.0.0/16,www.yahoo.co.uk", "212.82.100.150,192.168.0.0/16")] [InlineData(true, true, "192.168.t,127.0.0.1,1234.1232.12.1234", "::ffff:127.0.0.1")] [InlineData(true, false, "192.168.x,127.0.0.1,1234.1232.12.1234", "127.0.0.1")] [InlineData(true, true, "::1", "::1/128")] -- cgit v1.2.3 From bced1eab54180c1dd60d884dd03adb5207a4a20b Mon Sep 17 00:00:00 2001 From: BaronGreenback Date: Wed, 13 Jan 2021 21:16:04 +0000 Subject: Assert.True --- tests/Jellyfin.Api.Tests/ParseNetworkTests.cs | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) (limited to 'tests') diff --git a/tests/Jellyfin.Api.Tests/ParseNetworkTests.cs b/tests/Jellyfin.Api.Tests/ParseNetworkTests.cs index f4ea45cc2b..ca7b8a965b 100644 --- a/tests/Jellyfin.Api.Tests/ParseNetworkTests.cs +++ b/tests/Jellyfin.Api.Tests/ParseNetworkTests.cs @@ -1,15 +1,10 @@ using System; -using System.Collections.Generic; using System.Globalization; -using System.Linq; -using System.Net; using System.Text; -using System.Threading.Tasks; using Jellyfin.Networking.Configuration; using Jellyfin.Networking.Manager; using Jellyfin.Server.Extensions; using MediaBrowser.Common.Configuration; -using MediaBrowser.Common.Net; using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.Logging.Abstractions; using Moq; @@ -86,10 +81,7 @@ namespace Jellyfin.Api.Tests sb.Append(','); } - if (!string.Equals(sb.ToString(), result, StringComparison.OrdinalIgnoreCase)) - { - throw new Exception("Not matched: " + sb.ToString() + " does not match " + result); - } + Assert.True(string.Equals(sb.ToString(), result, StringComparison.OrdinalIgnoreCase), "Not matched: " + sb.ToString() + " does not match " + result); } } } -- cgit v1.2.3 From b9f0f4f53bdacc6abb7f449cdf7149525cd6119c Mon Sep 17 00:00:00 2001 From: BaronGreenback Date: Sun, 17 Jan 2021 13:35:30 +0000 Subject: reverted --- .../Extensions/ApiServiceCollectionExtensions.cs | 2 + Jellyfin.Server/Jellyfin.Server.csproj | 12 +++--- tests/Jellyfin.Api.Tests/ParseNetworkTests.cs | 50 +++++++++++----------- 3 files changed, 34 insertions(+), 30 deletions(-) (limited to 'tests') diff --git a/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs b/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs index 73a2265dec..bd72b1e27d 100644 --- a/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs +++ b/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs @@ -43,6 +43,8 @@ using Microsoft.OpenApi.Models; using Swashbuckle.AspNetCore.SwaggerGen; using AuthenticationSchemes = Jellyfin.Api.Constants.AuthenticationSchemes; +[assembly: InternalsVisibleTo("Jellyfin.Api.Tests")] + namespace Jellyfin.Server.Extensions { /// diff --git a/Jellyfin.Server/Jellyfin.Server.csproj b/Jellyfin.Server/Jellyfin.Server.csproj index cfec2d82fe..f91f2db02b 100644 --- a/Jellyfin.Server/Jellyfin.Server.csproj +++ b/Jellyfin.Server/Jellyfin.Server.csproj @@ -36,12 +36,6 @@ ../jellyfin.ruleset - - - <_Parameter1>Jellyfin.Api.Tests - - - @@ -79,4 +73,10 @@ + + + <_Parameter1>Jellyfin.Api.Tests + + + diff --git a/tests/Jellyfin.Api.Tests/ParseNetworkTests.cs b/tests/Jellyfin.Api.Tests/ParseNetworkTests.cs index ca7b8a965b..6ee66d2a8f 100644 --- a/tests/Jellyfin.Api.Tests/ParseNetworkTests.cs +++ b/tests/Jellyfin.Api.Tests/ParseNetworkTests.cs @@ -14,27 +14,6 @@ namespace Jellyfin.Api.Tests { public class ParseNetworkTests { - private static IConfigurationManager GetMockConfig(NetworkConfiguration conf) - { - var configManager = new Mock - { - CallBase = true - }; - configManager.Setup(x => x.GetConfiguration(It.IsAny())).Returns(conf); - return (IConfigurationManager)configManager.Object; - } - - private static NetworkManager CreateNetworkManager() - { - var conf = new NetworkConfiguration() - { - EnableIPV6 = true, - EnableIPV4 = true, - }; - - return new NetworkManager(GetMockConfig(conf), new NullLogger()); - } - /// /// Order of the result has always got to be hosts, then networks. /// @@ -53,9 +32,11 @@ namespace Jellyfin.Api.Tests using var nm = CreateNetworkManager(); nm.SystemIP6Enabled = ip6; - var settings = new NetworkConfiguration(); - settings.EnableIPV4 = ip4; - settings.EnableIPV6 = ip6; + var settings = new NetworkConfiguration + { + EnableIPV4 = ip4, + EnableIPV6 = ip6 + }; var result = match + ','; ForwardedHeadersOptions options = new ForwardedHeadersOptions(); @@ -83,5 +64,26 @@ namespace Jellyfin.Api.Tests Assert.True(string.Equals(sb.ToString(), result, StringComparison.OrdinalIgnoreCase), "Not matched: " + sb.ToString() + " does not match " + result); } + + private static IConfigurationManager GetMockConfig(NetworkConfiguration conf) + { + var configManager = new Mock + { + CallBase = true + }; + configManager.Setup(x => x.GetConfiguration(It.IsAny())).Returns(conf); + return (IConfigurationManager)configManager.Object; + } + + private static NetworkManager CreateNetworkManager() + { + var conf = new NetworkConfiguration() + { + EnableIPV6 = true, + EnableIPV4 = true, + }; + + return new NetworkManager(GetMockConfig(conf), new NullLogger()); + } } } -- cgit v1.2.3 From 6a7623da02045bb8600bc2aad3047a4debda03f1 Mon Sep 17 00:00:00 2001 From: BaronGreenback Date: Tue, 19 Jan 2021 10:36:37 +0000 Subject: Simplified Code --- Jellyfin.Networking/Manager/NetworkManager.cs | 16 ++-- .../Extensions/ApiServiceCollectionExtensions.cs | 103 ++++++++++----------- Jellyfin.Server/Startup.cs | 8 +- MediaBrowser.Common/Net/INetworkManager.cs | 10 -- tests/Jellyfin.Api.Tests/ParseNetworkTests.cs | 4 +- 5 files changed, 63 insertions(+), 78 deletions(-) (limited to 'tests') diff --git a/Jellyfin.Networking/Manager/NetworkManager.cs b/Jellyfin.Networking/Manager/NetworkManager.cs index c9f900660b..34b1f0daaf 100644 --- a/Jellyfin.Networking/Manager/NetworkManager.cs +++ b/Jellyfin.Networking/Manager/NetworkManager.cs @@ -130,24 +130,24 @@ namespace Jellyfin.Networking.Manager public static string MockNetworkSettings { get; set; } = string.Empty; /// - /// Gets or sets a value indicating whether IP6 is enabled. + /// Gets or sets a value indicating whether the system has IP4 is enabled. /// - public bool IsIP6Enabled { get; set; } + public static bool SystemIP4Enabled { get; set; } /// - /// Gets or sets a value indicating whether IP4 is enabled. + /// Gets or sets a value indicating whether the system has IP6 is enabled. /// - public bool IsIP4Enabled { get; set; } + public static bool SystemIP6Enabled { get; set; } /// - /// Gets or sets a value indicating whether the system has IP4 is enabled. + /// Gets or sets a value indicating whether IP6 is enabled. /// - public bool SystemIP4Enabled { get; set; } + public bool IsIP6Enabled { get; set; } /// - /// Gets or sets a value indicating whether the system has IP6 is enabled. + /// Gets or sets a value indicating whether IP4 is enabled. /// - public bool SystemIP6Enabled { get; set; } + public bool IsIP4Enabled { get; set; } /// public Collection RemoteAddressFilter { get; private set; } diff --git a/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs b/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs index 9b4e53fc09..0a7ae9a410 100644 --- a/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs +++ b/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs @@ -25,6 +25,7 @@ using Jellyfin.Api.Controllers; using Jellyfin.Api.ModelBinders; using Jellyfin.Data.Enums; using Jellyfin.Networking.Configuration; +using Jellyfin.Networking.Manager; using Jellyfin.Server.Configuration; using Jellyfin.Server.Filters; using Jellyfin.Server.Formatters; @@ -174,64 +175,14 @@ namespace Jellyfin.Server.Extensions .AddScheme(AuthenticationSchemes.CustomAuthentication, null); } - private static void AddIpAddress(NetworkConfiguration config, ForwardedHeadersOptions options, IPAddress addr, int prefixLength, bool systemIP6Enabled) - { - if ((!config.EnableIPV4 && addr.AddressFamily == AddressFamily.InterNetwork) || (!config.EnableIPV6 && addr.AddressFamily == AddressFamily.InterNetworkV6)) - { - return; - } - - if (systemIP6Enabled && addr.AddressFamily == AddressFamily.InterNetwork) - { - // If the server is using dual-mode sockets, IPv4 addresses are supplied in an IPv6 format. - // https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/proxy-load-balancer?view=aspnetcore-5.0 . - addr = addr.MapToIPv6(); - } - - if (prefixLength == 32) - { - options.KnownProxies.Add(addr); - } - else - { - options.KnownNetworks.Add(new IPNetwork(addr, prefixLength)); - } - } - - /// - /// Sets up the proxy configuration based on the addresses in . - /// - /// The instance. - /// The containing the config settings. - /// The string array to parse. - /// The instance. - internal static void ParseList(INetworkManager networkManager, NetworkConfiguration config, string[] userList, ForwardedHeadersOptions options) - { - for (var i = 0; i < userList.Length; i++) - { - if (IPNetAddress.TryParse(userList[i], out var addr)) - { - AddIpAddress(config, options, addr.Address, addr.PrefixLength, networkManager.SystemIP6Enabled); - } - else if (IPHost.TryParse(userList[i], out var host)) - { - foreach (var address in host.GetAddresses()) - { - AddIpAddress(config, options, addr.Address, addr.PrefixLength, networkManager.SystemIP6Enabled); - } - } - } - } - /// /// Extension method for adding the jellyfin API to the service collection. /// /// The service collection. /// An IEnumerable containing all plugin assemblies with API controllers. /// The . - /// The instance. /// The MVC builder. - public static IMvcBuilder AddJellyfinApi(this IServiceCollection serviceCollection, IEnumerable pluginAssemblies, NetworkConfiguration config, INetworkManager networkManager) + public static IMvcBuilder AddJellyfinApi(this IServiceCollection serviceCollection, IEnumerable pluginAssemblies, NetworkConfiguration config) { IMvcBuilder mvcBuilder = serviceCollection .AddCors() @@ -249,7 +200,7 @@ namespace Jellyfin.Server.Extensions } else { - ParseList(networkManager, config, config.KnownProxies, options); + ParseList(config, config.KnownProxies, options); } // Only set forward limit if we have some known proxies or some known networks. @@ -370,6 +321,54 @@ namespace Jellyfin.Server.Extensions }); } + /// + /// Sets up the proxy configuration based on the addresses in . + /// + /// The containing the config settings. + /// The string array to parse. + /// The instance. + internal static void ParseList(NetworkConfiguration config, string[] userList, ForwardedHeadersOptions options) + { + for (var i = 0; i < userList.Length; i++) + { + if (IPNetAddress.TryParse(userList[i], out var addr)) + { + AddIpAddress(config, options, addr.Address, addr.PrefixLength); + } + else if (IPHost.TryParse(userList[i], out var host)) + { + foreach (var address in host.GetAddresses()) + { + AddIpAddress(config, options, addr.Address, addr.PrefixLength); + } + } + } + } + + private static void AddIpAddress(NetworkConfiguration config, ForwardedHeadersOptions options, IPAddress addr, int prefixLength) + { + if ((!config.EnableIPV4 && addr.AddressFamily == AddressFamily.InterNetwork) || (!config.EnableIPV6 && addr.AddressFamily == AddressFamily.InterNetworkV6)) + { + return; + } + + if (NetworkManager.SystemIP6Enabled && addr.AddressFamily == AddressFamily.InterNetwork) + { + // If the server is using dual-mode sockets, IPv4 addresses are supplied in an IPv6 format. + // https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/proxy-load-balancer?view=aspnetcore-5.0 . + addr = addr.MapToIPv6(); + } + + if (prefixLength == 32) + { + options.KnownProxies.Add(addr); + } + else + { + options.KnownNetworks.Add(new IPNetwork(addr, prefixLength)); + } + } + private static void AddSwaggerTypeMappings(this SwaggerGenOptions options) { /* diff --git a/Jellyfin.Server/Startup.cs b/Jellyfin.Server/Startup.cs index 05228ccaab..e56e61092b 100644 --- a/Jellyfin.Server/Startup.cs +++ b/Jellyfin.Server/Startup.cs @@ -26,22 +26,18 @@ namespace Jellyfin.Server { private readonly IServerConfigurationManager _serverConfigurationManager; private readonly IServerApplicationHost _serverApplicationHost; - private readonly INetworkManager _networkManager; /// /// Initializes a new instance of the class. /// /// The server configuration manager. /// The server application host. - /// The network manager. public Startup( IServerConfigurationManager serverConfigurationManager, - IServerApplicationHost serverApplicationHost, - INetworkManager networkManager) + IServerApplicationHost serverApplicationHost) { _serverConfigurationManager = serverConfigurationManager; _serverApplicationHost = serverApplicationHost; - _networkManager = networkManager; } /// @@ -56,7 +52,7 @@ namespace Jellyfin.Server { options.HttpsPort = _serverApplicationHost.HttpsPort; }); - services.AddJellyfinApi(_serverApplicationHost.GetApiPluginAssemblies(), _serverConfigurationManager.GetNetworkConfiguration(), _networkManager); + services.AddJellyfinApi(_serverApplicationHost.GetApiPluginAssemblies(), _serverConfigurationManager.GetNetworkConfiguration()); services.AddJellyfinApiSwagger(); diff --git a/MediaBrowser.Common/Net/INetworkManager.cs b/MediaBrowser.Common/Net/INetworkManager.cs index 7ee76107bc..b6c390d239 100644 --- a/MediaBrowser.Common/Net/INetworkManager.cs +++ b/MediaBrowser.Common/Net/INetworkManager.cs @@ -44,16 +44,6 @@ namespace MediaBrowser.Common.Net /// bool IsIP4Enabled { get; set; } - /// - /// Gets or sets a value indicating whether the system has IP4 is enabled. - /// - bool SystemIP4Enabled { get; set; } - - /// - /// Gets or sets a value indicating whether the system has IP6 is enabled. - /// - bool SystemIP6Enabled { get; set; } - /// /// Calculates the list of interfaces to use for Kestrel. /// diff --git a/tests/Jellyfin.Api.Tests/ParseNetworkTests.cs b/tests/Jellyfin.Api.Tests/ParseNetworkTests.cs index 6ee66d2a8f..a76b8b2439 100644 --- a/tests/Jellyfin.Api.Tests/ParseNetworkTests.cs +++ b/tests/Jellyfin.Api.Tests/ParseNetworkTests.cs @@ -30,7 +30,7 @@ namespace Jellyfin.Api.Tests public void TestNetworks(bool ip4, bool ip6, string hostList, string match) { using var nm = CreateNetworkManager(); - nm.SystemIP6Enabled = ip6; + NetworkManager.SystemIP6Enabled = ip6; var settings = new NetworkConfiguration { @@ -45,7 +45,7 @@ namespace Jellyfin.Api.Tests options.KnownProxies.Clear(); options.KnownNetworks.Clear(); - ApiServiceCollectionExtensions.ParseList(nm, settings, hostList.Split(","), options); + ApiServiceCollectionExtensions.ParseList(settings, hostList.Split(","), options); var sb = new StringBuilder(); foreach (var item in options.KnownProxies) -- cgit v1.2.3 From dd089fd27ab20755b7cac1e71fa328dddbfe2c68 Mon Sep 17 00:00:00 2001 From: BaronGreenback Date: Tue, 19 Jan 2021 10:50:17 +0000 Subject: Changed test --- tests/Jellyfin.Api.Tests/ParseNetworkTests.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'tests') diff --git a/tests/Jellyfin.Api.Tests/ParseNetworkTests.cs b/tests/Jellyfin.Api.Tests/ParseNetworkTests.cs index a76b8b2439..6717137d9d 100644 --- a/tests/Jellyfin.Api.Tests/ParseNetworkTests.cs +++ b/tests/Jellyfin.Api.Tests/ParseNetworkTests.cs @@ -50,19 +50,19 @@ namespace Jellyfin.Api.Tests var sb = new StringBuilder(); foreach (var item in options.KnownProxies) { - sb.Append(item.ToString()); + sb.Append(item); sb.Append(','); } foreach (var item in options.KnownNetworks) { - sb.Append(item.Prefix.ToString()); + sb.Append(item.Prefix); sb.Append('/'); sb.Append(item.PrefixLength.ToString(CultureInfo.InvariantCulture)); sb.Append(','); } - Assert.True(string.Equals(sb.ToString(), result, StringComparison.OrdinalIgnoreCase), "Not matched: " + sb.ToString() + " does not match " + result); + Assert.Equal(sb.ToString(), result); } private static IConfigurationManager GetMockConfig(NetworkConfiguration conf) @@ -72,7 +72,7 @@ namespace Jellyfin.Api.Tests CallBase = true }; configManager.Setup(x => x.GetConfiguration(It.IsAny())).Returns(conf); - return (IConfigurationManager)configManager.Object; + return configManager.Object; } private static NetworkManager CreateNetworkManager() -- cgit v1.2.3 From 82d365045a0c7bf9acfa8c62433b5ec68d7b34a5 Mon Sep 17 00:00:00 2001 From: BaronGreenback Date: Tue, 19 Jan 2021 12:50:11 +0000 Subject: Removed systemIp6 functionality. --- Jellyfin.Networking/Manager/NetworkManager.cs | 12 ------------ Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs | 2 +- tests/Jellyfin.Api.Tests/ParseNetworkTests.cs | 1 - 3 files changed, 1 insertion(+), 14 deletions(-) (limited to 'tests') diff --git a/Jellyfin.Networking/Manager/NetworkManager.cs b/Jellyfin.Networking/Manager/NetworkManager.cs index 34b1f0daaf..349a30ed3e 100644 --- a/Jellyfin.Networking/Manager/NetworkManager.cs +++ b/Jellyfin.Networking/Manager/NetworkManager.cs @@ -129,16 +129,6 @@ namespace Jellyfin.Networking.Manager /// public static string MockNetworkSettings { get; set; } = string.Empty; - /// - /// Gets or sets a value indicating whether the system has IP4 is enabled. - /// - public static bool SystemIP4Enabled { get; set; } - - /// - /// Gets or sets a value indicating whether the system has IP6 is enabled. - /// - public static bool SystemIP6Enabled { get; set; } - /// /// Gets or sets a value indicating whether IP6 is enabled. /// @@ -1059,7 +1049,6 @@ namespace Jellyfin.Networking.Manager { if (info.Address.AddressFamily == AddressFamily.InterNetwork) { - SystemIP4Enabled = true; if (IsIP4Enabled) { IPNetAddress nw = new IPNetAddress(info.Address, IPObject.MaskToCidr(info.IPv4Mask)) @@ -1084,7 +1073,6 @@ namespace Jellyfin.Networking.Manager } else if (info.Address.AddressFamily == AddressFamily.InterNetworkV6) { - SystemIP6Enabled = true; if (IsIP6Enabled) { IPNetAddress nw = new IPNetAddress(info.Address, (byte)info.PrefixLength) diff --git a/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs b/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs index 0e68c523fc..f8626b6e0e 100644 --- a/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs +++ b/Jellyfin.Server/Extensions/ApiServiceCollectionExtensions.cs @@ -353,7 +353,7 @@ namespace Jellyfin.Server.Extensions } // In order for dual-mode sockets to be used, IP6 has to be enabled in JF and an interface has to have an IP6 address. - if (NetworkManager.SystemIP6Enabled && addr.AddressFamily == AddressFamily.InterNetwork && config.EnableIPV6) + if (addr.AddressFamily == AddressFamily.InterNetwork && config.EnableIPV6) { // If the server is using dual-mode sockets, IPv4 addresses are supplied in an IPv6 format. // https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/proxy-load-balancer?view=aspnetcore-5.0 . diff --git a/tests/Jellyfin.Api.Tests/ParseNetworkTests.cs b/tests/Jellyfin.Api.Tests/ParseNetworkTests.cs index 6717137d9d..039c393770 100644 --- a/tests/Jellyfin.Api.Tests/ParseNetworkTests.cs +++ b/tests/Jellyfin.Api.Tests/ParseNetworkTests.cs @@ -30,7 +30,6 @@ namespace Jellyfin.Api.Tests public void TestNetworks(bool ip4, bool ip6, string hostList, string match) { using var nm = CreateNetworkManager(); - NetworkManager.SystemIP6Enabled = ip6; var settings = new NetworkConfiguration { -- cgit v1.2.3 From 25eaf21a8f79ca49bfc0b29f521c5429093e7e50 Mon Sep 17 00:00:00 2001 From: BaronGreenback Date: Tue, 19 Jan 2021 19:32:46 +0000 Subject: renamed func in test --- tests/Jellyfin.Api.Tests/ParseNetworkTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/Jellyfin.Api.Tests/ParseNetworkTests.cs b/tests/Jellyfin.Api.Tests/ParseNetworkTests.cs index 039c393770..6c3fd0ee10 100644 --- a/tests/Jellyfin.Api.Tests/ParseNetworkTests.cs +++ b/tests/Jellyfin.Api.Tests/ParseNetworkTests.cs @@ -44,7 +44,7 @@ namespace Jellyfin.Api.Tests options.KnownProxies.Clear(); options.KnownNetworks.Clear(); - ApiServiceCollectionExtensions.ParseList(settings, hostList.Split(","), options); + ApiServiceCollectionExtensions.AddProxyAddresses(settings, hostList.Split(","), options); var sb = new StringBuilder(); foreach (var item in options.KnownProxies) -- cgit v1.2.3