From c77b3fa25810f3824ad3ad4568fff390326b2a51 Mon Sep 17 00:00:00 2001 From: Shadowghost Date: Mon, 3 Feb 2025 17:07:13 -0500 Subject: [PATCH] Backport pull request #13448 from jellyfin/release-10.10.z Fix interface ordering again Original-merge: 731874429c4c9bf5e2374f4160893f0f59d771e7 Merged-by: Bond-009 Backported-by: Bond_009 --- src/Jellyfin.Networking/Manager/NetworkManager.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Jellyfin.Networking/Manager/NetworkManager.cs b/src/Jellyfin.Networking/Manager/NetworkManager.cs index 7de9197355..dd01e9533b 100644 --- a/src/Jellyfin.Networking/Manager/NetworkManager.cs +++ b/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();