Merge pull request #7549 from cvium/fix_isinlocalnetwork
This commit is contained in:
commit
bdb85aeecf
|
@ -463,6 +463,18 @@ namespace Jellyfin.Networking.Manager
|
||||||
|
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public bool IsInLocalNetwork(IPObject address)
|
public bool IsInLocalNetwork(IPObject address)
|
||||||
|
{
|
||||||
|
return IsInLocalNetwork(address.Address);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc/>
|
||||||
|
public bool IsInLocalNetwork(string address)
|
||||||
|
{
|
||||||
|
return IPHost.TryParse(address, out IPHost ipHost) && IsInLocalNetwork(ipHost);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc/>
|
||||||
|
public bool IsInLocalNetwork(IPAddress address)
|
||||||
{
|
{
|
||||||
if (address == null)
|
if (address == null)
|
||||||
{
|
{
|
||||||
|
@ -481,36 +493,7 @@ namespace Jellyfin.Networking.Manager
|
||||||
}
|
}
|
||||||
|
|
||||||
// As private addresses can be redefined by Configuration.LocalNetworkAddresses
|
// As private addresses can be redefined by Configuration.LocalNetworkAddresses
|
||||||
return address.IsLoopback() || (_lanSubnets.ContainsAddress(address) && !_excludedSubnets.ContainsAddress(address));
|
return IPAddress.IsLoopback(address) || (_lanSubnets.ContainsAddress(address) && !_excludedSubnets.ContainsAddress(address));
|
||||||
}
|
|
||||||
|
|
||||||
/// <inheritdoc/>
|
|
||||||
public bool IsInLocalNetwork(string address)
|
|
||||||
{
|
|
||||||
if (IPHost.TryParse(address, out IPHost ep))
|
|
||||||
{
|
|
||||||
return _lanSubnets.ContainsAddress(ep) && !_excludedSubnets.ContainsAddress(ep);
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <inheritdoc/>
|
|
||||||
public bool IsInLocalNetwork(IPAddress address)
|
|
||||||
{
|
|
||||||
if (address == null)
|
|
||||||
{
|
|
||||||
throw new ArgumentNullException(nameof(address));
|
|
||||||
}
|
|
||||||
|
|
||||||
// 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 _lanSubnets.ContainsAddress(address) && !_excludedSubnets.ContainsAddress(address);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
|
|
|
@ -65,7 +65,7 @@ namespace MediaBrowser.Common.Net
|
||||||
address = address.MapToIPv4();
|
address = address.MapToIPv4();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IsLoopback(address))
|
if (IPAddress.IsLoopback(address))
|
||||||
{
|
{
|
||||||
return (address, prefixLength);
|
return (address, prefixLength);
|
||||||
}
|
}
|
||||||
|
@ -102,31 +102,6 @@ namespace MediaBrowser.Common.Net
|
||||||
return (new IPAddress(addressBytes), prefixLength);
|
return (new IPAddress(addressBytes), prefixLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Tests to see if the ip address is a Loopback address.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="address">Value to test.</param>
|
|
||||||
/// <returns>True if it is.</returns>
|
|
||||||
public static bool IsLoopback(IPAddress address)
|
|
||||||
{
|
|
||||||
if (address == null)
|
|
||||||
{
|
|
||||||
throw new ArgumentNullException(nameof(address));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!address.Equals(IPAddress.None))
|
|
||||||
{
|
|
||||||
if (address.IsIPv4MappedToIPv6)
|
|
||||||
{
|
|
||||||
address = address.MapToIPv4();
|
|
||||||
}
|
|
||||||
|
|
||||||
return address.Equals(IPAddress.Loopback) || address.Equals(IPAddress.IPv6Loopback);
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Tests to see if the ip address is an IP6 address.
|
/// Tests to see if the ip address is an IP6 address.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -295,7 +270,7 @@ namespace MediaBrowser.Common.Net
|
||||||
/// <returns>True if it is.</returns>
|
/// <returns>True if it is.</returns>
|
||||||
public virtual bool IsLoopback()
|
public virtual bool IsLoopback()
|
||||||
{
|
{
|
||||||
return IsLoopback(Address);
|
return IPAddress.IsLoopback(Address);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user