mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-04-24 05:57:20 -04:00
Apply review suggestions and fix build
This commit is contained in:
parent
2043a33f81
commit
a492082f4e
4 changed files with 19 additions and 21 deletions
|
@ -372,6 +372,11 @@ namespace Jellyfin.Server.Extensions
|
|||
return;
|
||||
}
|
||||
|
||||
if (addr.IsIPv4MappedToIPv6)
|
||||
{
|
||||
addr = addr.MapToIPv4();
|
||||
}
|
||||
|
||||
if (prefixLength == 32)
|
||||
{
|
||||
options.KnownProxies.Add(addr);
|
||||
|
|
|
@ -14,13 +14,12 @@ namespace MediaBrowser.Common.Net
|
|||
/// </summary>
|
||||
/// <param name="address">An <see cref="IPAddress"/>.</param>
|
||||
/// <param name="subnet">The <see cref="IPNetwork"/>.</param>
|
||||
public IPData(
|
||||
IPAddress address,
|
||||
IPNetwork? subnet)
|
||||
/// <param name="name">The object's name.</param>
|
||||
public IPData(IPAddress address, IPNetwork? subnet, string name)
|
||||
{
|
||||
Address = address;
|
||||
Subnet = subnet ?? (address.AddressFamily == AddressFamily.InterNetwork ? new IPNetwork(address, 32) : new IPNetwork(address, 128));
|
||||
Name = string.Empty;
|
||||
Name = name;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -28,15 +27,9 @@ namespace MediaBrowser.Common.Net
|
|||
/// </summary>
|
||||
/// <param name="address">An <see cref="IPAddress"/>.</param>
|
||||
/// <param name="subnet">The <see cref="IPNetwork"/>.</param>
|
||||
/// <param name="name">The object's name.</param>
|
||||
public IPData(
|
||||
IPAddress address,
|
||||
IPNetwork? subnet,
|
||||
string name)
|
||||
public IPData(IPAddress address, IPNetwork? subnet)
|
||||
: this(address, subnet, string.Empty)
|
||||
{
|
||||
Address = address;
|
||||
Subnet = subnet ?? (address.AddressFamily == AddressFamily.InterNetwork ? new IPNetwork(address, 32) : new IPNetwork(address, 128));
|
||||
Name = name;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
@ -13,6 +13,10 @@ namespace MediaBrowser.Common.Net
|
|||
/// </summary>
|
||||
public static class NetworkExtensions
|
||||
{
|
||||
// Use regular expression as CheckHostName isn't RFC5892 compliant.
|
||||
// Modified from gSkinner's expression at https://stackoverflow.com/questions/11809631/fully-qualified-domain-name-validation
|
||||
private static readonly Regex _fqdnRegex = new Regex(@"(?im)^(?!:\/\/)(?=.{1,255}$)((.{1,63}\.){0,127}(?![0-9]*$)[a-z0-9-]+\.?)(:(\d){1,5}){0,1}$");
|
||||
|
||||
/// <summary>
|
||||
/// Returns true if the IPAddress contains an IP6 Local link address.
|
||||
/// </summary>
|
||||
|
@ -227,12 +231,8 @@ namespace MediaBrowser.Common.Net
|
|||
|
||||
if (hosts.Length <= 2)
|
||||
{
|
||||
// Use regular expression as CheckHostName isn't RFC5892 compliant.
|
||||
// Modified from gSkinner's expression at https://stackoverflow.com/questions/11809631/fully-qualified-domain-name-validation
|
||||
string pattern = @"(?im)^(?!:\/\/)(?=.{1,255}$)((.{1,63}\.){0,127}(?![0-9]*$)[a-z0-9-]+\.?)(:(\d){1,5}){0,1}$";
|
||||
|
||||
// Is hostname or hostname:port
|
||||
if (Regex.IsMatch(hosts[0], pattern))
|
||||
if (_fqdnRegex.IsMatch(hosts[0]))
|
||||
{
|
||||
try
|
||||
{
|
||||
|
|
|
@ -21,9 +21,9 @@ namespace Jellyfin.Server.Tests
|
|||
data.Add(
|
||||
true,
|
||||
true,
|
||||
new string[] { "192.168.t", "127.0.0.1", "1234.1232.12.1234" },
|
||||
new IPAddress[] { IPAddress.Loopback.MapToIPv6() },
|
||||
Array.Empty<IPNetwork>());
|
||||
new string[] { "192.168.t", "127.0.0.1", "::1", "1234.1232.12.1234" },
|
||||
new IPAddress[] { IPAddress.Loopback, },
|
||||
new IPNetwork[] { new IPNetwork(IPAddress.IPv6Loopback, 128) });
|
||||
|
||||
data.Add(
|
||||
true,
|
||||
|
@ -64,7 +64,7 @@ namespace Jellyfin.Server.Tests
|
|||
true,
|
||||
true,
|
||||
new string[] { "localhost" },
|
||||
new IPAddress[] { IPAddress.Loopback.MapToIPv6() },
|
||||
new IPAddress[] { IPAddress.Loopback },
|
||||
new IPNetwork[] { new IPNetwork(IPAddress.IPv6Loopback, 128) });
|
||||
return data;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue