Browse Source

Merge pull request #13448 from Shadowghost/fix-interface-selection-again

Fix interface ordering again
Bond-009 4 months ago
parent
commit
731874429c
1 changed files with 4 additions and 2 deletions
  1. 4 2
      src/Jellyfin.Networking/Manager/NetworkManager.cs

+ 4 - 2
src/Jellyfin.Networking/Manager/NetworkManager.cs

@@ -1065,7 +1065,8 @@ public class NetworkManager : INetworkManager, IDisposable
                 // Check to see if any of the external bind interfaces are in the same subnet as the source.
                 // If none exists, this will select the first external interface if there is one.
                 bindAddress = externalInterfaces
-                    .OrderBy(x => x.Subnet.Contains(source))
+                    .OrderByDescending(x => x.Subnet.Contains(source))
+                    .ThenByDescending(x => x.Subnet.PrefixLength)
                     .ThenBy(x => x.Index)
                     .Select(x => x.Address)
                     .First();
@@ -1082,7 +1083,8 @@ public class NetworkManager : INetworkManager, IDisposable
             // Check to see if any of the internal bind interfaces are in the same subnet as the source.
             // If none exists, this will select the first internal interface if there is one.
             bindAddress = _interfaces.Where(x => IsInLocalNetwork(x.Address))
-                .OrderBy(x => x.Subnet.Contains(source))
+                .OrderByDescending(x => x.Subnet.Contains(source))
+                .ThenByDescending(x => x.Subnet.PrefixLength)
                 .ThenBy(x => x.Index)
                 .Select(x => x.Address)
                 .FirstOrDefault();