Parcourir la source

Use File.SetUnixFileMode

Bond_009 il y a 2 ans
Parent
commit
93fd462b58
1 fichiers modifiés avec 5 ajouts et 16 suppressions
  1. 5 16
      Jellyfin.Server/Program.cs

+ 5 - 16
Jellyfin.Server/Program.cs

@@ -7,6 +7,7 @@ using System.Linq;
 using System.Net;
 using System.Reflection;
 using System.Runtime.InteropServices;
+using System.Runtime.Versioning;
 using System.Text;
 using System.Threading;
 using System.Threading.Tasks;
@@ -201,7 +202,7 @@ namespace Jellyfin.Server
                 {
                     await webHost.StartAsync(_tokenSource.Token).ConfigureAwait(false);
 
-                    if (startupConfig.UseUnixSocket() && Environment.OSVersion.Platform == PlatformID.Unix)
+                    if (!OperatingSystem.IsWindows() && startupConfig.UseUnixSocket())
                     {
                         var socketPath = GetUnixSocketPath(startupConfig, appPaths);
 
@@ -691,27 +692,15 @@ namespace Jellyfin.Server
             return socketPath;
         }
 
+        [UnsupportedOSPlatform("windows")]
         private static void SetUnixSocketPermissions(IConfiguration startupConfig, string socketPath)
         {
             var socketPerms = startupConfig.GetUnixSocketPermissions();
 
             if (!string.IsNullOrEmpty(socketPerms))
             {
-                #pragma warning disable SA1300 // Entrypoint is case sensitive.
-                [DllImport("libc")]
-                static extern int chmod(string pathname, int mode);
-                #pragma warning restore SA1300
-
-                var exitCode = chmod(socketPath, Convert.ToInt32(socketPerms, 8));
-
-                if (exitCode < 0)
-                {
-                    _logger.LogError("Failed to set Kestrel unix socket permissions to {SocketPerms}, return code: {ExitCode}", socketPerms, exitCode);
-                }
-                else
-                {
-                    _logger.LogInformation("Kestrel unix socket permissions set to {SocketPerms}", socketPerms);
-                }
+                File.SetUnixFileMode(socketPath, (UnixFileMode)Convert.ToInt32(socketPerms, 8));
+                _logger.LogInformation("Kestrel unix socket permissions set to {SocketPerms}", socketPerms);
             }
         }
     }