mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-07-07 18:24:19 -04:00
Merge pull request #5345 from BaronGreenback/IP6Fix
Dual IP4 / IP6 server fails on non-windows platforms (cherry picked from commit 8615847a8aba1f504b184e79907e6885215ffdaa) Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
This commit is contained in:
parent
b99db64f8f
commit
7545b1286b
@ -285,14 +285,25 @@ namespace Jellyfin.Networking.Manager
|
|||||||
// No bind address and no exclusions, so listen on all interfaces.
|
// No bind address and no exclusions, so listen on all interfaces.
|
||||||
Collection<IPObject> result = new Collection<IPObject>();
|
Collection<IPObject> result = new Collection<IPObject>();
|
||||||
|
|
||||||
if (IsIP4Enabled)
|
if (IsIP6Enabled && IsIP4Enabled)
|
||||||
|
{
|
||||||
|
// Kestrel source code shows it uses Sockets.DualMode - so this also covers IPAddress.Any
|
||||||
|
result.AddItem(IPAddress.IPv6Any);
|
||||||
|
}
|
||||||
|
else if (IsIP4Enabled)
|
||||||
{
|
{
|
||||||
result.AddItem(IPAddress.Any);
|
result.AddItem(IPAddress.Any);
|
||||||
}
|
}
|
||||||
|
else if (IsIP6Enabled)
|
||||||
if (IsIP6Enabled)
|
|
||||||
{
|
{
|
||||||
result.AddItem(IPAddress.IPv6Any);
|
// Cannot use IPv6Any as Kestrel will bind to IPv4 addresses.
|
||||||
|
foreach (var iface in _interfaceAddresses)
|
||||||
|
{
|
||||||
|
if (iface.AddressFamily == AddressFamily.InterNetworkV6)
|
||||||
|
{
|
||||||
|
result.AddItem(iface.Address);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
@ -414,7 +425,7 @@ namespace Jellyfin.Networking.Manager
|
|||||||
}
|
}
|
||||||
|
|
||||||
// There isn't any others, so we'll use the loopback.
|
// There isn't any others, so we'll use the loopback.
|
||||||
result = IsIP6Enabled ? "::" : "127.0.0.1";
|
result = IsIP6Enabled ? "::1" : "127.0.0.1";
|
||||||
_logger.LogWarning("{Source}: GetBindInterface: Loopback {Result} returned.", source, result);
|
_logger.LogWarning("{Source}: GetBindInterface: Loopback {Result} returned.", source, result);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -280,7 +280,7 @@ namespace Jellyfin.Server
|
|||||||
bool flagged = false;
|
bool flagged = false;
|
||||||
foreach (IPObject netAdd in addresses)
|
foreach (IPObject netAdd in addresses)
|
||||||
{
|
{
|
||||||
_logger.LogInformation("Kestrel listening on {0}", netAdd);
|
_logger.LogInformation("Kestrel listening on {Address}", netAdd.Address == IPAddress.IPv6Any ? "All Addresses" : netAdd);
|
||||||
options.Listen(netAdd.Address, appHost.HttpPort);
|
options.Listen(netAdd.Address, appHost.HttpPort);
|
||||||
if (appHost.ListenWithHttps)
|
if (appHost.ListenWithHttps)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user