aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Networking/Extensions/NetworkExtensions.cs
diff options
context:
space:
mode:
authorTim Eisele <Shadowghost@users.noreply.github.com>2023-10-11 00:02:37 +0200
committerGitHub <noreply@github.com>2023-10-11 00:02:37 +0200
commitdc27d8f9cd3b6cf280ba8e5e2520db387f651fb4 (patch)
treef3f4fb7d2f4b2696cba80178bc5e8045167a244c /Jellyfin.Networking/Extensions/NetworkExtensions.cs
parenta88e13a677623d479cc32a6e436e0a193a64b78e (diff)
Refactor URI overrides (#10051)
Diffstat (limited to 'Jellyfin.Networking/Extensions/NetworkExtensions.cs')
-rw-r--r--Jellyfin.Networking/Extensions/NetworkExtensions.cs13
1 files changed, 8 insertions, 5 deletions
diff --git a/Jellyfin.Networking/Extensions/NetworkExtensions.cs b/Jellyfin.Networking/Extensions/NetworkExtensions.cs
index e45fa3bcb..2d921a482 100644
--- a/Jellyfin.Networking/Extensions/NetworkExtensions.cs
+++ b/Jellyfin.Networking/Extensions/NetworkExtensions.cs
@@ -231,12 +231,12 @@ public static partial class NetworkExtensions
}
else if (address.AddressFamily == AddressFamily.InterNetwork)
{
- result = new IPNetwork(address, Network.MinimumIPv4PrefixSize);
+ result = address.Equals(IPAddress.Any) ? Network.IPv4Any : new IPNetwork(address, Network.MinimumIPv4PrefixSize);
return true;
}
else if (address.AddressFamily == AddressFamily.InterNetworkV6)
{
- result = new IPNetwork(address, Network.MinimumIPv6PrefixSize);
+ result = address.Equals(IPAddress.IPv6Any) ? Network.IPv6Any : new IPNetwork(address, Network.MinimumIPv6PrefixSize);
return true;
}
}
@@ -284,12 +284,15 @@ public static partial class NetworkExtensions
if (hosts.Count <= 2)
{
+ var firstPart = hosts[0];
+
// Is hostname or hostname:port
- if (FqdnGeneratedRegex().IsMatch(hosts[0]))
+ if (FqdnGeneratedRegex().IsMatch(firstPart))
{
try
{
- addresses = Dns.GetHostAddresses(hosts[0]);
+ // .NET automatically filters only supported returned addresses based on OS support.
+ addresses = Dns.GetHostAddresses(firstPart);
return true;
}
catch (SocketException)
@@ -299,7 +302,7 @@ public static partial class NetworkExtensions
}
// Is an IPv4 or IPv4:port
- if (IPAddress.TryParse(hosts[0].AsSpan().LeftPart('/'), out var address))
+ if (IPAddress.TryParse(firstPart.AsSpan().LeftPart('/'), out var address))
{
if (((address.AddressFamily == AddressFamily.InterNetwork) && (!isIPv4Enabled && isIPv6Enabled))
|| ((address.AddressFamily == AddressFamily.InterNetworkV6) && (isIPv4Enabled && !isIPv6Enabled)))