Updatig netcollection & re-inserting BOM
This commit is contained in:
parent
3b64171cde
commit
53af1e3455
|
@ -271,33 +271,33 @@ namespace Emby.Dlna.Main
|
||||||
bindAddresses = _networkManager.GetLoopbacks();
|
bindAddresses = _networkManager.GetLoopbacks();
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var addr in bindAddresses)
|
foreach (IPNetAddress address in bindAddresses)
|
||||||
{
|
{
|
||||||
if (addr.AddressFamily == AddressFamily.InterNetworkV6)
|
if (address.AddressFamily == AddressFamily.InterNetworkV6)
|
||||||
{
|
{
|
||||||
// Not supporting IPv6 right now
|
// Not supporting IPv6 right now
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Limit to LAN addresses only
|
// Limit to LAN addresses only
|
||||||
if (!_networkManager.IsInLocalNetwork(addr))
|
if (!_networkManager.IsInLocalNetwork(address))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
var fullService = "urn:schemas-upnp-org:device:MediaServer:1";
|
var fullService = "urn:schemas-upnp-org:device:MediaServer:1";
|
||||||
|
|
||||||
_logger.LogInformation("Registering publisher for {0} on {1}", fullService, addr);
|
_logger.LogInformation("Registering publisher for {0} on {1}", fullService, address);
|
||||||
|
|
||||||
var descriptorUri = "/dlna/" + udn + "/description.xml";
|
var descriptorUri = "/dlna/" + udn + "/description.xml";
|
||||||
var uri = new Uri(_appHost.GetSmartApiUrl(addr.Address) + descriptorUri);
|
var uri = new Uri(_appHost.GetSmartApiUrl(address.Address) + descriptorUri);
|
||||||
|
|
||||||
var device = new SsdpRootDevice
|
var device = new SsdpRootDevice
|
||||||
{
|
{
|
||||||
CacheLifetime = TimeSpan.FromSeconds(1800), // How long SSDP clients can cache this info.
|
CacheLifetime = TimeSpan.FromSeconds(1800), // How long SSDP clients can cache this info.
|
||||||
Location = uri, // Must point to the URL that serves your devices UPnP description document.
|
Location = uri, // Must point to the URL that serves your devices UPnP description document.
|
||||||
Address = addr.Address,
|
Address = address.Address,
|
||||||
SubnetMask = ((IPNetAddress)addr).Mask, // MIGRATION: This fields is going.
|
SubnetMask = address.Mask,
|
||||||
FriendlyName = "Jellyfin",
|
FriendlyName = "Jellyfin",
|
||||||
Manufacturer = "Jellyfin",
|
Manufacturer = "Jellyfin",
|
||||||
ModelName = "Jellyfin Server",
|
ModelName = "Jellyfin Server",
|
||||||
|
|
|
@ -262,8 +262,8 @@ namespace Emby.Server.Implementations
|
||||||
IServiceCollection serviceCollection)
|
IServiceCollection serviceCollection)
|
||||||
{
|
{
|
||||||
_xmlSerializer = new MyXmlSerializer();
|
_xmlSerializer = new MyXmlSerializer();
|
||||||
_jsonSerializer = new JsonSerializer();
|
_jsonSerializer = new JsonSerializer();
|
||||||
|
|
||||||
ServiceCollection = serviceCollection;
|
ServiceCollection = serviceCollection;
|
||||||
|
|
||||||
ApplicationPaths = applicationPaths;
|
ApplicationPaths = applicationPaths;
|
||||||
|
@ -1079,7 +1079,7 @@ namespace Emby.Server.Implementations
|
||||||
{
|
{
|
||||||
// No metafile, so lets see if the folder is versioned.
|
// No metafile, so lets see if the folder is versioned.
|
||||||
metafile = dir.Split(new[] { Path.DirectorySeparatorChar }, StringSplitOptions.RemoveEmptyEntries)[^1];
|
metafile = dir.Split(new[] { Path.DirectorySeparatorChar }, StringSplitOptions.RemoveEmptyEntries)[^1];
|
||||||
|
|
||||||
int versionIndex = dir.LastIndexOf('_');
|
int versionIndex = dir.LastIndexOf('_');
|
||||||
if (versionIndex != -1 && Version.TryParse(dir.Substring(versionIndex + 1), out Version ver))
|
if (versionIndex != -1 && Version.TryParse(dir.Substring(versionIndex + 1), out Version ver))
|
||||||
{
|
{
|
||||||
|
@ -1248,7 +1248,7 @@ namespace Emby.Server.Implementations
|
||||||
OperatingSystem = OperatingSystem.Id.ToString(),
|
OperatingSystem = OperatingSystem.Id.ToString(),
|
||||||
ServerName = FriendlyName,
|
ServerName = FriendlyName,
|
||||||
LocalAddress = GetSmartApiUrl(source),
|
LocalAddress = GetSmartApiUrl(source),
|
||||||
StartupWizardCompleted = ConfigurationManager.CommonConfiguration.IsStartupWizardCompleted
|
StartupWizardCompleted = ConfigurationManager.CommonConfiguration.IsStartupWizardCompleted
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -76,7 +76,6 @@ namespace Emby.Server.Implementations.LiveTv
|
||||||
}
|
}
|
||||||
|
|
||||||
var list = sources.ToList();
|
var list = sources.ToList();
|
||||||
var serverUrl = _appHost.GetSmartApiUrl(string.Empty);
|
|
||||||
|
|
||||||
foreach (var source in list)
|
foreach (var source in list)
|
||||||
{
|
{
|
||||||
|
@ -103,7 +102,7 @@ namespace Emby.Server.Implementations.LiveTv
|
||||||
// Dummy this up so that direct play checks can still run
|
// Dummy this up so that direct play checks can still run
|
||||||
if (string.IsNullOrEmpty(source.Path) && source.Protocol == MediaProtocol.Http)
|
if (string.IsNullOrEmpty(source.Path) && source.Protocol == MediaProtocol.Http)
|
||||||
{
|
{
|
||||||
source.Path = serverUrl;
|
source.Path = _appHost.GetSmartApiUrl(string.Empty);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@ using MediaBrowser.Model.IO;
|
||||||
using MediaBrowser.Model.LiveTv;
|
using MediaBrowser.Model.LiveTv;
|
||||||
using MediaBrowser.Model.MediaInfo;
|
using MediaBrowser.Model.MediaInfo;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using NetworkCollection.Udp;
|
||||||
|
|
||||||
namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
|
namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
|
||||||
{
|
{
|
||||||
|
@ -57,7 +58,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
|
||||||
var mediaSource = OriginalMediaSource;
|
var mediaSource = OriginalMediaSource;
|
||||||
|
|
||||||
var uri = new Uri(mediaSource.Path);
|
var uri = new Uri(mediaSource.Path);
|
||||||
var localPort = 50000; // Will return to random after next PR.
|
var localPort = UdpHelper.GetRandomUnusedUdpPort();
|
||||||
|
|
||||||
Directory.CreateDirectory(Path.GetDirectoryName(TempFilePath));
|
Directory.CreateDirectory(Path.GetDirectoryName(TempFilePath));
|
||||||
|
|
||||||
|
|
|
@ -49,7 +49,7 @@ namespace Emby.Server.Implementations.Udp
|
||||||
{
|
{
|
||||||
string localUrl = !string.IsNullOrEmpty(_config[AddressOverrideConfigKey])
|
string localUrl = !string.IsNullOrEmpty(_config[AddressOverrideConfigKey])
|
||||||
? _config[AddressOverrideConfigKey]
|
? _config[AddressOverrideConfigKey]
|
||||||
: _appHost.GetSmartApiUrl(string.Empty); // MIGRATION: Temp value.
|
: _appHost.GetSmartApiUrl(((IPEndPoint)endpoint).Address);
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(localUrl))
|
if (!string.IsNullOrEmpty(localUrl))
|
||||||
{
|
{
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="3.1.7" />
|
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="3.1.7" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.1.7" />
|
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.1.7" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="3.1.7" />
|
<PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="3.1.7" />
|
||||||
<PackageReference Include="NetworkCollection" Version="1.0.3" />
|
<PackageReference Include="NetworkCollection" Version="1.0.4" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -352,7 +352,7 @@ namespace Rssdp.Infrastructure
|
||||||
|
|
||||||
if (_enableMultiSocketBinding)
|
if (_enableMultiSocketBinding)
|
||||||
{
|
{
|
||||||
foreach (var address in _networkManager.GetAllBindInterfaces())
|
foreach (var address in _networkManager.GetInternalBindAddresses())
|
||||||
{
|
{
|
||||||
if (address.AddressFamily == AddressFamily.InterNetworkV6)
|
if (address.AddressFamily == AddressFamily.InterNetworkV6)
|
||||||
{
|
{
|
||||||
|
|
|
@ -301,9 +301,10 @@ namespace Rssdp.Infrastructure
|
||||||
|
|
||||||
foreach (var device in deviceList)
|
foreach (var device in deviceList)
|
||||||
{
|
{
|
||||||
var ip1 = new IPNetAddress(device.ToRootDevice().Address, device.ToRootDevice().SubnetMask);
|
var root = device.ToRootDevice();
|
||||||
var ip2 = new IPNetAddress(remoteEndPoint.Address, device.ToRootDevice().SubnetMask);
|
var source = new IPNetAddress(root.Address, root.SubnetMask);
|
||||||
if (!_sendOnlyMatchedHost || ip1.NetworkAddress.Equals(ip2.NetworkAddress))
|
var destination = new IPNetAddress(remoteEndPoint.Address, root.SubnetMask);
|
||||||
|
if (!_sendOnlyMatchedHost || source.NetworkAddress.Equals(destination.NetworkAddress))
|
||||||
{
|
{
|
||||||
SendDeviceSearchResponses(device, remoteEndPoint, receivedOnlocalIpAddress, cancellationToken);
|
SendDeviceSearchResponses(device, remoteEndPoint, receivedOnlocalIpAddress, cancellationToken);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user