Przeglądaj źródła

Backport pull request #12094 from jellyfin/release-10.9.z

Map IPv6 mapped IPv4 addresses back to IPv4 before running checks

Original-merge: f097aad01e6992d9f65d1cfe32e569a785e2918c

Merged-by: Bond-009 <bond.009@outlook.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
Shadowghost 1 rok temu
rodzic
commit
9c96ce5f6e

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

@@ -919,10 +919,14 @@ public class NetworkManager : INetworkManager, IDisposable
     {
     {
         ArgumentNullException.ThrowIfNull(address);
         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)
         if ((TrustAllIPv6Interfaces && address.AddressFamily == AddressFamily.InterNetworkV6)
-            || address.Equals(IPAddress.Loopback)
-            || address.Equals(IPAddress.IPv6Loopback))
+            || IPAddress.IsLoopback(address))
         {
         {
             return true;
             return true;
         }
         }