@ -359,12 +359,11 @@ namespace Jellyfin.Networking.Manager
{
// Remove potentially exisiting * and split config string into prefixes
var virtualInterfacePrefixes = config . VirtualInterfaceNames
. Replace ( "*" , string . Empty , StringComparison . OrdinalIgnoreCase )
. ToLowerInvariant ( )
. Split ( ',' ) ;
. Select ( i = > i . ToLowerInvariant ( )
. Replace ( "*" , string . Empty , StringComparison . OrdinalIgnoreCase ) ) ;
// Check all interfaces for matches against the prefixes and remove them
if ( _interfaces . Count > 0 & & virtualInterfacePrefixes . Length > 0 )
if ( _interfaces . Count > 0 & & virtualInterfacePrefixes . Any( ) )
{
foreach ( var virtualInterfacePrefix in virtualInterfacePrefixes )
{
@ -725,8 +724,16 @@ namespace Jellyfin.Networking.Manager
_logger . LogDebug ( "GetBindInterface with source. External: {IsExternal}:" , isExternal ) ;
if ( MatchesPublishedServerUrl ( source , isExternal , out string res , out port ) )
{
if ( port ! = null )
{
_logger . LogInformation ( "{Source}: Using BindAddress {Address}:{Port}" , source , res , port ) ;
}
else
{
_logger . LogInformation ( "{Source}: Using BindAddress {Address}" , source , res ) ;
}
return res ;
}
@ -756,7 +763,7 @@ namespace Jellyfin.Networking.Manager
if ( intf . Address . Equals ( source ) )
{
result = NetworkExtensions . FormatIpString ( intf . Address ) ;
_logger . LogDebug ( "{Source}: GetBindInterface: Has found matching interface . {Result}", source , result ) ;
_logger . LogDebug ( "{Source}: GetBindInterface: Has found matching interface : {Result}", source , result ) ;
return result ;
}
}
@ -768,14 +775,14 @@ namespace Jellyfin.Networking.Manager
if ( intf . Subnet . Contains ( source ) )
{
result = NetworkExtensions . FormatIpString ( intf . Address ) ;
_logger . LogDebug ( "{Source}: GetBindInterface: Has source, matched best internal interface on range . {Result}", source , result ) ;
_logger . LogDebug ( "{Source}: GetBindInterface: Has source, matched best internal interface on range : {Result}", source , result ) ;
return result ;
}
}
}
result = NetworkExtensions . FormatIpString ( availableInterfaces . First ( ) . Address ) ;
_logger . LogDebug ( "{Source}: GetBindInterface: Matched first internal interface . {Result}", source , result ) ;
_logger . LogDebug ( "{Source}: GetBindInterface: Matched first internal interface : {Result}", source , result ) ;
return result ;
}
@ -956,7 +963,7 @@ namespace Jellyfin.Networking.Manager
if ( bindAddress ! = null )
{
result = NetworkExtensions . FormatIpString ( bindAddress ) ;
_logger . LogDebug ( "{Source}: GetBindInterface: Has source, found a matching external bind interface . {Result}", source , result ) ;
_logger . LogDebug ( "{Source}: GetBindInterface: Has source, found a matching external bind interface : {Result}", source , result ) ;
return true ;
}
}
@ -976,7 +983,7 @@ namespace Jellyfin.Networking.Manager
if ( bindAddress ! = null )
{
result = NetworkExtensions . FormatIpString ( bindAddress ) ;
_logger . LogWarning ( "{Source}: Request received, matching internal interface bind found . {Result}", source , result ) ;
_logger . LogWarning ( "{Source}: Request received, matching internal interface bind found : {Result}", source , result ) ;
return true ;
}
}
@ -1006,7 +1013,7 @@ namespace Jellyfin.Networking.Manager
if ( ! IsInLocalNetwork ( intf . Address ) & & intf . Subnet . Contains ( source ) )
{
result = NetworkExtensions . FormatIpString ( intf . Address ) ;
_logger . LogDebug ( "{Source}: GetBindInterface: Selected best external on interface on range . {Result}", source , result ) ;
_logger . LogDebug ( "{Source}: GetBindInterface: Selected best external on interface on range : {Result}", source , result ) ;
return true ;
}
}
@ -1014,7 +1021,7 @@ namespace Jellyfin.Networking.Manager
if ( hasResult ! = null )
{
result = NetworkExtensions . FormatIpString ( hasResult ) ;
_logger . LogDebug ( "{Source}: GetBindInterface: Selected first external interface . {Result}", source , result ) ;
_logger . LogDebug ( "{Source}: GetBindInterface: Selected first external interface : {Result}", source , result ) ;
return true ;
}