Merge pull request #3011 from MediaBrowser/dev

3.2.36.7
This commit is contained in:
Luke 2017-11-10 16:23:03 -05:00 committed by GitHub
commit b51ed9621f
6 changed files with 32 additions and 10 deletions

View File

@ -799,7 +799,7 @@ namespace Emby.Server.Implementations
protected abstract IConnectManager CreateConnectManager(); protected abstract IConnectManager CreateConnectManager();
protected abstract ISyncManager CreateSyncManager(); protected abstract ISyncManager CreateSyncManager();
protected virtual IHttpClient CreateHttpClient() protected virtual IHttpClient CreateHttpClient()
{ {
return new HttpClientManager.HttpClientManager(ApplicationPaths, LogManager.GetLogger("HttpClient"), FileSystemManager, MemoryStreamFactory, GetDefaultUserAgent); return new HttpClientManager.HttpClientManager(ApplicationPaths, LogManager.GetLogger("HttpClient"), FileSystemManager, MemoryStreamFactory, GetDefaultUserAgent);
@ -953,6 +953,7 @@ namespace Emby.Server.Implementations
var deviceRepo = new SqliteDeviceRepository(LogManager.GetLogger("DeviceManager"), ServerConfigurationManager, FileSystemManager, JsonSerializer); var deviceRepo = new SqliteDeviceRepository(LogManager.GetLogger("DeviceManager"), ServerConfigurationManager, FileSystemManager, JsonSerializer);
deviceRepo.Initialize(); deviceRepo.Initialize();
DeviceManager = new DeviceManager(deviceRepo, UserManager, FileSystemManager, LibraryMonitor, ServerConfigurationManager, LogManager.GetLogger("DeviceManager"), NetworkManager); DeviceManager = new DeviceManager(deviceRepo, UserManager, FileSystemManager, LibraryMonitor, ServerConfigurationManager, LogManager.GetLogger("DeviceManager"), NetworkManager);
RegisterSingleInstance<IDeviceRepository>(deviceRepo);
RegisterSingleInstance(DeviceManager); RegisterSingleInstance(DeviceManager);
var newsService = new Emby.Server.Implementations.News.NewsService(ApplicationPaths, JsonSerializer); var newsService = new Emby.Server.Implementations.News.NewsService(ApplicationPaths, JsonSerializer);

View File

@ -709,6 +709,9 @@ namespace Emby.Server.Implementations.Library
var rootFolder = GetItemById(GetNewItemId(rootFolderPath, typeof(AggregateFolder))) as AggregateFolder ?? (AggregateFolder)ResolvePath(_fileSystem.GetDirectoryInfo(rootFolderPath)); var rootFolder = GetItemById(GetNewItemId(rootFolderPath, typeof(AggregateFolder))) as AggregateFolder ?? (AggregateFolder)ResolvePath(_fileSystem.GetDirectoryInfo(rootFolderPath));
// In case program data folder was moved
rootFolder.Path = rootFolderPath;
// Add in the plug-in folders // Add in the plug-in folders
foreach (var child in PluginFolderCreators) foreach (var child in PluginFolderCreators)
{ {
@ -771,6 +774,9 @@ namespace Emby.Server.Implementations.Library
tmpItem = (UserRootFolder)ResolvePath(_fileSystem.GetDirectoryInfo(userRootPath)); tmpItem = (UserRootFolder)ResolvePath(_fileSystem.GetDirectoryInfo(userRootPath));
} }
// In case program data folder was moved
tmpItem.Path = userRootPath;
_userRootFolder = tmpItem; _userRootFolder = tmpItem;
} }
} }

View File

@ -196,8 +196,18 @@ namespace Emby.Server.Implementations.Net
try try
{ {
//retVal.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, true); // seeing occasional exceptions thrown on qnap
// System.Net.Sockets.SocketException (0x80004005): Protocol not available
retVal.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true); retVal.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
}
catch (SocketException)
{
}
try
{
//retVal.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, true);
retVal.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastTimeToLive, multicastTimeToLive); retVal.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastTimeToLive, multicastTimeToLive);
var localIp = IPAddress.Any; var localIp = IPAddress.Any;

View File

@ -59,7 +59,13 @@ namespace Emby.Server.Implementations.Networking
list.AddRange(GetLocalIpAddressesFallback().Result); list.AddRange(GetLocalIpAddressesFallback().Result);
} }
return list.Where(FilterIpAddress).DistinctBy(i => i.ToString()); var listClone = list.ToList();
return list
.OrderBy(i => i.AddressFamily == AddressFamily.InterNetwork ? 0 : 1)
.ThenBy(i => listClone.IndexOf(i))
.Where(FilterIpAddress)
.DistinctBy(i => i.ToString());
} }
private bool FilterIpAddress(IPAddress address) private bool FilterIpAddress(IPAddress address)
@ -112,10 +118,10 @@ namespace Emby.Server.Implementations.Networking
public bool IsInPrivateAddressSpaceAndLocalSubnet(string endpoint) public bool IsInPrivateAddressSpaceAndLocalSubnet(string endpoint)
{ {
var endpointFirstPart = endpoint.Split('.')[0];
if (endpoint.StartsWith("10.", StringComparison.OrdinalIgnoreCase)) if (endpoint.StartsWith("10.", StringComparison.OrdinalIgnoreCase))
{ {
var endpointFirstPart = endpoint.Split('.')[0];
var subnets = GetSubnets(endpointFirstPart); var subnets = GetSubnets(endpointFirstPart);
foreach (var subnet_Match in subnets) foreach (var subnet_Match in subnets)
@ -217,7 +223,7 @@ namespace Emby.Server.Implementations.Networking
} }
else if (address.AddressFamily == AddressFamily.InterNetworkV6) else if (address.AddressFamily == AddressFamily.InterNetworkV6)
{ {
lengthMatch = 10; lengthMatch = 9;
if (IsInPrivateAddressSpace(endpoint)) if (IsInPrivateAddressSpace(endpoint))
{ {
return true; return true;
@ -317,7 +323,7 @@ namespace Emby.Server.Implementations.Networking
return ipProperties.UnicastAddresses return ipProperties.UnicastAddresses
//.Where(i => i.IsDnsEligible) //.Where(i => i.IsDnsEligible)
.Select(i => i.Address) .Select(i => i.Address)
.Where(i => i.AddressFamily == AddressFamily.InterNetwork) .Where(i => i.AddressFamily == AddressFamily.InterNetwork || i.AddressFamily == AddressFamily.InterNetworkV6)
.ToList(); .ToList();
} }
catch (Exception ex) catch (Exception ex)
@ -337,7 +343,7 @@ namespace Emby.Server.Implementations.Networking
// Reverse them because the last one is usually the correct one // Reverse them because the last one is usually the correct one
// It's not fool-proof so ultimately the consumer will have to examine them and decide // It's not fool-proof so ultimately the consumer will have to examine them and decide
return host.AddressList return host.AddressList
.Where(i => i.AddressFamily == AddressFamily.InterNetwork) .Where(i => i.AddressFamily == AddressFamily.InterNetwork || i.AddressFamily == AddressFamily.InterNetworkV6)
.Reverse(); .Reverse();
} }

View File

@ -18,7 +18,6 @@ namespace MediaBrowser.Model.Configuration
SaveImagePathsInNfo = true; SaveImagePathsInNfo = true;
EnablePathSubstitution = true; EnablePathSubstitution = true;
EnableExtraThumbsDuplication = true;
} }
} }
} }

View File

@ -1,3 +1,3 @@
using System.Reflection; using System.Reflection;
[assembly: AssemblyVersion("3.2.36.6")] [assembly: AssemblyVersion("3.2.36.7")]