mirror of
				https://github.com/jellyfin/jellyfin.git
				synced 2025-11-04 03:27:21 -05:00 
			
		
		
		
	
						commit
						6121e67a07
					
				@ -1931,13 +1931,13 @@ namespace Emby.Server.Implementations
 | 
				
			|||||||
        {
 | 
					        {
 | 
				
			||||||
            get
 | 
					            get
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                return SupportsHttps && ServerConfigurationManager.Configuration.EnableHttps;
 | 
					                return SupportsHttps && (ServerConfigurationManager.Configuration.EnableHttps || ServerConfigurationManager.Configuration.RequireHttps);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public bool SupportsHttps
 | 
					        public bool SupportsHttps
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            get { return Certificate != null; }
 | 
					            get { return Certificate != null || ServerConfigurationManager.Configuration.IsBehindProxy; }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public async Task<string> GetLocalApiUrl()
 | 
					        public async Task<string> GetLocalApiUrl()
 | 
				
			||||||
 | 
				
			|||||||
@ -48,7 +48,7 @@ namespace Emby.Server.Implementations.EntryPoints
 | 
				
			|||||||
            values.Add(config.PublicPort.ToString(CultureInfo.InvariantCulture));
 | 
					            values.Add(config.PublicPort.ToString(CultureInfo.InvariantCulture));
 | 
				
			||||||
            values.Add(_appHost.HttpPort.ToString(CultureInfo.InvariantCulture));
 | 
					            values.Add(_appHost.HttpPort.ToString(CultureInfo.InvariantCulture));
 | 
				
			||||||
            values.Add(_appHost.HttpsPort.ToString(CultureInfo.InvariantCulture));
 | 
					            values.Add(_appHost.HttpsPort.ToString(CultureInfo.InvariantCulture));
 | 
				
			||||||
            values.Add(config.EnableHttps.ToString());
 | 
					            values.Add((config.EnableHttps || config.RequireHttps).ToString());
 | 
				
			||||||
            values.Add(_appHost.EnableHttps.ToString());
 | 
					            values.Add(_appHost.EnableHttps.ToString());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return string.Join("|", values.ToArray(values.Count));
 | 
					            return string.Join("|", values.ToArray(values.Count));
 | 
				
			||||||
 | 
				
			|||||||
@ -423,6 +423,19 @@ namespace Emby.Server.Implementations.HttpServer
 | 
				
			|||||||
            return true;
 | 
					            return true;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        private bool ValidateSsl(string remoteIp)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if (_config.Configuration.RequireHttps && _appHost.EnableHttps)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                if (!_networkManager.IsInLocalNetwork(remoteIp))
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    return false;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            return true;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
        /// Overridable method that can be used to implement a custom hnandler
 | 
					        /// Overridable method that can be used to implement a custom hnandler
 | 
				
			||||||
        /// </summary>
 | 
					        /// </summary>
 | 
				
			||||||
@ -453,6 +466,12 @@ namespace Emby.Server.Implementations.HttpServer
 | 
				
			|||||||
                    return;
 | 
					                    return;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (!ValidateSsl(httpReq.RemoteIp))
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    RedirectToUrl(httpRes, urlString.Replace("http://", "https://", StringComparison.OrdinalIgnoreCase));
 | 
				
			||||||
 | 
					                    return;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (string.Equals(httpReq.Verb, "OPTIONS", StringComparison.OrdinalIgnoreCase))
 | 
					                if (string.Equals(httpReq.Verb, "OPTIONS", StringComparison.OrdinalIgnoreCase))
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    httpRes.StatusCode = 200;
 | 
					                    httpRes.StatusCode = 200;
 | 
				
			||||||
 | 
				
			|||||||
@ -346,7 +346,8 @@ namespace MediaBrowser.Controller.MediaEncoding
 | 
				
			|||||||
                "Constrained High"
 | 
					                "Constrained High"
 | 
				
			||||||
            };
 | 
					            };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return Array.FindIndex(list.ToArray(), t => string.Equals(t, profile, StringComparison.OrdinalIgnoreCase));
 | 
					            // strip spaces because they may be stripped out on the query string
 | 
				
			||||||
 | 
					            return Array.FindIndex(list.ToArray(), t => string.Equals(t.Replace(" ", ""), profile.Replace(" ", ""), StringComparison.OrdinalIgnoreCase));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public string GetInputPathArgument(EncodingJobInfo state)
 | 
					        public string GetInputPathArgument(EncodingJobInfo state)
 | 
				
			||||||
@ -831,7 +832,7 @@ namespace MediaBrowser.Controller.MediaEncoding
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // Source and target codecs must match
 | 
					            // Source and target codecs must match
 | 
				
			||||||
            if (string.IsNullOrEmpty(videoStream.Codec) || !state.SupportedVideoCodecs.Contains(videoStream.Codec, StringComparer.OrdinalIgnoreCase))
 | 
					            if (string.IsNullOrWhiteSpace(videoStream.Codec) || !state.SupportedVideoCodecs.Contains(videoStream.Codec, StringComparer.OrdinalIgnoreCase))
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                return false;
 | 
					                return false;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@ -841,13 +842,14 @@ namespace MediaBrowser.Controller.MediaEncoding
 | 
				
			|||||||
            // If client is requesting a specific video profile, it must match the source
 | 
					            // If client is requesting a specific video profile, it must match the source
 | 
				
			||||||
            if (requestedProfiles.Length > 0)
 | 
					            if (requestedProfiles.Length > 0)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                if (string.IsNullOrEmpty(videoStream.Profile))
 | 
					                if (string.IsNullOrWhiteSpace(videoStream.Profile))
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    //return false;
 | 
					                    //return false;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                var requestedProfile = requestedProfiles[0];
 | 
					                var requestedProfile = requestedProfiles[0];
 | 
				
			||||||
                if (!string.IsNullOrEmpty(videoStream.Profile) && !string.Equals(requestedProfile, videoStream.Profile, StringComparison.OrdinalIgnoreCase))
 | 
					                // strip spaces because they may be stripped out on the query string as well
 | 
				
			||||||
 | 
					                if (!string.IsNullOrWhiteSpace(videoStream.Profile) && !requestedProfiles.Contains(videoStream.Profile.Replace(" ", ""), StringComparer.OrdinalIgnoreCase))
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    var currentScore = GetVideoProfileScore(videoStream.Profile);
 | 
					                    var currentScore = GetVideoProfileScore(videoStream.Profile);
 | 
				
			||||||
                    var requestedScore = GetVideoProfileScore(requestedProfile);
 | 
					                    var requestedScore = GetVideoProfileScore(requestedProfile);
 | 
				
			||||||
 | 
				
			|||||||
@ -181,6 +181,8 @@ namespace MediaBrowser.Model.Configuration
 | 
				
			|||||||
        public string[] CodecsUsed { get; set; }
 | 
					        public string[] CodecsUsed { get; set; }
 | 
				
			||||||
        public bool EnableChannelView { get; set; }
 | 
					        public bool EnableChannelView { get; set; }
 | 
				
			||||||
        public bool EnableExternalContentInSuggestions { get; set; }
 | 
					        public bool EnableExternalContentInSuggestions { get; set; }
 | 
				
			||||||
 | 
					        public bool RequireHttps { get; set; }
 | 
				
			||||||
 | 
					        public bool IsBehindProxy { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public int ImageExtractionTimeoutMs { get; set; }
 | 
					        public int ImageExtractionTimeoutMs { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1615,7 +1615,12 @@ namespace MediaBrowser.Model.Dlna
 | 
				
			|||||||
                            if (!string.IsNullOrWhiteSpace(value))
 | 
					                            if (!string.IsNullOrWhiteSpace(value))
 | 
				
			||||||
                            {
 | 
					                            {
 | 
				
			||||||
                                // change from split by | to comma
 | 
					                                // change from split by | to comma
 | 
				
			||||||
                                item.SetOption(qualifier, "profile", string.Join(",", value.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries)));
 | 
					
 | 
				
			||||||
 | 
					                                // strip spaces to avoid having to encode
 | 
				
			||||||
 | 
					                                var values = value
 | 
				
			||||||
 | 
					                                    .Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                                item.SetOption(qualifier, "profile", string.Join(",", values));
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
                            break;
 | 
					                            break;
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
 | 
				
			|||||||
@ -297,7 +297,10 @@ namespace MediaBrowser.Model.Dlna
 | 
				
			|||||||
                // dlna needs to be update to support the qualified params
 | 
					                // dlna needs to be update to support the qualified params
 | 
				
			||||||
                var profile = item.GetOption("h264", "profile");
 | 
					                var profile = item.GetOption("h264", "profile");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                list.Add(new NameValuePair("Profile", profile ?? string.Empty));
 | 
					                // Avoid having to encode
 | 
				
			||||||
 | 
					                profile = (profile ?? string.Empty).Replace(" ", "");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                list.Add(new NameValuePair("Profile", profile));
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // no longer used
 | 
					            // no longer used
 | 
				
			||||||
@ -372,7 +375,8 @@ namespace MediaBrowser.Model.Dlna
 | 
				
			|||||||
                        continue;
 | 
					                        continue;
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    list.Add(new NameValuePair(pair.Key, pair.Value));
 | 
					                    // strip spaces to avoid having to encode h264 profile names
 | 
				
			||||||
 | 
					                    list.Add(new NameValuePair(pair.Key, pair.Value.Replace(" ", "")));
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,3 +1,3 @@
 | 
				
			|||||||
using System.Reflection;
 | 
					using System.Reflection;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[assembly: AssemblyVersion("3.2.32.11")]
 | 
					[assembly: AssemblyVersion("3.2.32.12")]
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user