Selaa lähdekoodia

Start the webhost before RunStartupTasks and fix ContentEncoding

Claus Vium 6 vuotta sitten
vanhempi
sitoutus
1cc433eabc

+ 21 - 4
Emby.Server.Implementations/SocketSharp/WebSocketSharpRequest.cs

@@ -408,11 +408,28 @@ namespace Emby.Server.Implementations.SocketSharp
 
         public string ContentType => request.ContentType;
 
-        private Encoding contentEncoding;
-        public Encoding ContentEncoding
+        private Encoding ContentEncoding
         {
-            get => contentEncoding ?? Encoding.GetEncoding(request.Headers[HeaderNames.ContentEncoding].ToString());
-            set => contentEncoding = value;
+            get
+            {
+                // TODO is this necessary?
+                if (UserAgent != null && CultureInfo.InvariantCulture.CompareInfo.IsPrefix(UserAgent, "UP"))
+                {
+                    string postDataCharset = Headers["x-up-devcap-post-charset"];
+                    if (!string.IsNullOrEmpty(postDataCharset))
+                    {
+                        try
+                        {
+                            return Encoding.GetEncoding(postDataCharset);
+                        }
+                        catch (ArgumentException)
+                        {
+                        }
+                    }
+                }
+
+                return request.GetTypedHeaders().ContentType.Encoding ?? Encoding.UTF8;
+            }
         }
 
         public Uri UrlReferrer => request.GetTypedHeaders().Referer;

+ 0 - 1
Jellyfin.Server/Program.cs

@@ -144,7 +144,6 @@ namespace Jellyfin.Server
                 appHost.ImageProcessor.ImageEncoder = GetImageEncoder(fileSystem, appPaths, appHost.LocalizationManager);
 
                 await appHost.RunStartupTasks().ConfigureAwait(false);
-                appHost.Host.Run();
                 // TODO: read input for a stop command
 
                 try