Luke Pulverenti hace 7 años
padre
commit
711f588084

+ 2 - 1
Emby.Server.Implementations/ApplicationHost.cs

@@ -799,7 +799,7 @@ namespace Emby.Server.Implementations
 
         protected abstract IConnectManager CreateConnectManager();
         protected abstract ISyncManager CreateSyncManager();
-        
+
         protected virtual IHttpClient CreateHttpClient()
         {
             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);
             deviceRepo.Initialize();
             DeviceManager = new DeviceManager(deviceRepo, UserManager, FileSystemManager, LibraryMonitor, ServerConfigurationManager, LogManager.GetLogger("DeviceManager"), NetworkManager);
+            RegisterSingleInstance<IDeviceRepository>(deviceRepo);
             RegisterSingleInstance(DeviceManager);
 
             var newsService = new Emby.Server.Implementations.News.NewsService(ApplicationPaths, JsonSerializer);

+ 6 - 0
Emby.Server.Implementations/Library/LibraryManager.cs

@@ -709,6 +709,9 @@ namespace Emby.Server.Implementations.Library
 
             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
             foreach (var child in PluginFolderCreators)
             {
@@ -771,6 +774,9 @@ namespace Emby.Server.Implementations.Library
                             tmpItem = (UserRootFolder)ResolvePath(_fileSystem.GetDirectoryInfo(userRootPath));
                         }
 
+                        // In case program data folder was moved
+                        tmpItem.Path = userRootPath;
+
                         _userRootFolder = tmpItem;
                     }
                 }

+ 11 - 1
Emby.Server.Implementations/Net/SocketFactory.cs

@@ -196,8 +196,18 @@ namespace Emby.Server.Implementations.Net
 
             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);
+            }
+            catch (SocketException)
+            {
+
+            }
+
+            try
+            {
+                //retVal.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, true);
                 retVal.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastTimeToLive, multicastTimeToLive);
 
                 var localIp = IPAddress.Any;

+ 12 - 6
Emby.Server.Implementations/Networking/NetworkManager.cs

@@ -59,7 +59,13 @@ namespace Emby.Server.Implementations.Networking
                 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)
@@ -112,10 +118,10 @@ namespace Emby.Server.Implementations.Networking
 
         public bool IsInPrivateAddressSpaceAndLocalSubnet(string endpoint)
         {
-            var endpointFirstPart = endpoint.Split('.')[0];
-
             if (endpoint.StartsWith("10.", StringComparison.OrdinalIgnoreCase))
             {
+                var endpointFirstPart = endpoint.Split('.')[0];
+
                 var subnets = GetSubnets(endpointFirstPart);
 
                 foreach (var subnet_Match in subnets)
@@ -217,7 +223,7 @@ namespace Emby.Server.Implementations.Networking
                 }
                 else if (address.AddressFamily == AddressFamily.InterNetworkV6)
                 {
-                    lengthMatch = 10;
+                    lengthMatch = 9;
                     if (IsInPrivateAddressSpace(endpoint))
                     {
                         return true;
@@ -317,7 +323,7 @@ namespace Emby.Server.Implementations.Networking
                     return ipProperties.UnicastAddresses
                         //.Where(i => i.IsDnsEligible)
                         .Select(i => i.Address)
-                        .Where(i => i.AddressFamily == AddressFamily.InterNetwork)
+                        .Where(i => i.AddressFamily == AddressFamily.InterNetwork || i.AddressFamily == AddressFamily.InterNetworkV6)
                         .ToList();
                 }
                 catch (Exception ex)
@@ -337,7 +343,7 @@ namespace Emby.Server.Implementations.Networking
             // 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
             return host.AddressList
-                .Where(i => i.AddressFamily == AddressFamily.InterNetwork)
+                .Where(i => i.AddressFamily == AddressFamily.InterNetwork || i.AddressFamily == AddressFamily.InterNetworkV6)
                 .Reverse();
         }
 

+ 0 - 1
MediaBrowser.Model/Configuration/XbmcMetadataOptions.cs

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

+ 1 - 1
SharedVersion.cs

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