Merge pull request #12094 from Shadowghost/fix-dual-socket-address-handling

Map IPv6 mapped IPv4 addresses back to IPv4 before running checks
This commit is contained in:
Bond-009 2024-06-20 11:20:06 +02:00 committed by GitHub
commit f097aad01e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -919,10 +919,14 @@ public class NetworkManager : INetworkManager, IDisposable
{
ArgumentNullException.ThrowIfNull(address);
// See conversation at https://github.com/jellyfin/jellyfin/pull/3515.
// Map IPv6 mapped IPv4 back to IPv4 (happens if Kestrel runs in dual-socket mode)
if (address.IsIPv4MappedToIPv6)
{
address = address.MapToIPv4();
}
if ((TrustAllIPv6Interfaces && address.AddressFamily == AddressFamily.InterNetworkV6)
|| address.Equals(IPAddress.Loopback)
|| address.Equals(IPAddress.IPv6Loopback))
|| IPAddress.IsLoopback(address))
{
return true;
}