Explorar o código

Map IPv6 mapped IPv4 addresses back to IPv4 before running checks

Shadowghost hai 11 meses
pai
achega
56104d3042
Modificáronse 1 ficheiros con 7 adicións e 3 borrados
  1. 7 3
      src/Jellyfin.Networking/Manager/NetworkManager.cs

+ 7 - 3
src/Jellyfin.Networking/Manager/NetworkManager.cs

@@ -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;
         }