浏览代码

Merge pull request #10591 from Bond-009/dotnet82

Use new .NET 8 features
Claus Vium 1 年之前
父节点
当前提交
2d2d553bbc

+ 2 - 3
Directory.Packages.props

@@ -48,7 +48,6 @@
     <PackageVersion Include="Microsoft.Extensions.Logging" Version="8.0.0" />
     <PackageVersion Include="Microsoft.Extensions.Options" Version="8.0.0" />
     <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
-    <PackageVersion Include="Microsoft.SourceLink.GitHub" Version="1.1.1" />
     <PackageVersion Include="MimeTypes" Version="2.4.0" />
     <PackageVersion Include="Mono.Nat" Version="3.0.4" />
     <PackageVersion Include="Moq" Version="4.18.4" />
@@ -58,9 +57,9 @@
     <PackageVersion Include="prometheus-net.AspNetCore" Version="8.1.0" />
     <PackageVersion Include="prometheus-net.DotNetRuntime" Version="4.4.0" />
     <PackageVersion Include="prometheus-net" Version="8.1.0" />
-    <PackageVersion Include="Serilog.AspNetCore" Version="7.0.0" />
+    <PackageVersion Include="Serilog.AspNetCore" Version="8.0.0" />
     <PackageVersion Include="Serilog.Enrichers.Thread" Version="3.1.0" />
-    <PackageVersion Include="Serilog.Settings.Configuration" Version="7.0.1" />
+    <PackageVersion Include="Serilog.Settings.Configuration" Version="8.0.0" />
     <PackageVersion Include="Serilog.Sinks.Async" Version="1.5.0" />
     <PackageVersion Include="Serilog.Sinks.Console" Version="5.0.0" />
     <PackageVersion Include="Serilog.Sinks.File" Version="5.0.0" />

+ 0 - 4
Emby.Naming/Emby.Naming.csproj

@@ -41,10 +41,6 @@
     <PackageLicenseExpression>GPL-3.0-only</PackageLicenseExpression>
   </PropertyGroup>
 
-  <ItemGroup>
-    <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
-  </ItemGroup>
-
   <!-- Code Analyzers -->
   <ItemGroup Condition=" '$(Configuration)' == 'Debug' ">
     <PackageReference Include="IDisposableAnalyzers">

+ 1 - 2
Emby.Server.Implementations/Updates/InstallationManager.cs

@@ -551,8 +551,7 @@ namespace Emby.Server.Implementations.Updates
             }
 
             stream.Position = 0;
-            using var reader = new ZipArchive(stream);
-            reader.ExtractToDirectory(targetDir, true);
+            ZipFile.ExtractToDirectory(stream, targetDir, true);
 
             // Ensure we create one or populate existing ones with missing data.
             await _pluginManager.PopulateManifest(package.PackageInfo, package.Version, targetDir, status).ConfigureAwait(false);

+ 0 - 4
Jellyfin.Data/Jellyfin.Data.csproj

@@ -23,10 +23,6 @@
     <PackageLicenseExpression>GPL-3.0-only</PackageLicenseExpression>
   </PropertyGroup>
 
-  <ItemGroup>
-    <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
-  </ItemGroup>
-
   <!-- Code Analyzers -->
   <ItemGroup Condition=" '$(Configuration)' == 'Debug' ">
     <PackageReference Include="IDisposableAnalyzers">

+ 0 - 1
MediaBrowser.Common/MediaBrowser.Common.csproj

@@ -21,7 +21,6 @@
   <ItemGroup>
     <PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" />
     <PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
-    <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
   </ItemGroup>
 
   <ItemGroup>

+ 17 - 34
MediaBrowser.Common/Net/NetworkUtils.cs

@@ -197,46 +197,29 @@ public static partial class NetworkUtils
     /// <returns><c>True</c> if parsing was successful.</returns>
     public static bool TryParseToSubnet(ReadOnlySpan<char> value, [NotNullWhen(true)] out IPNetwork? result, bool negated = false)
     {
-        var splitString = value.Trim().Split('/');
-        if (splitString.MoveNext())
+        value = value.Trim();
+        if (value.Contains('/'))
         {
-            var ipBlock = splitString.Current;
-            var address = IPAddress.None;
-            if (negated && ipBlock.StartsWith("!") && IPAddress.TryParse(ipBlock[1..], out var tmpAddress))
+            if (negated && value.StartsWith("!") && IPNetwork.TryParse(value[1..], out result))
             {
-                address = tmpAddress;
+                return true;
             }
-            else if (!negated && IPAddress.TryParse(ipBlock, out tmpAddress))
+            else if (!negated && IPNetwork.TryParse(value, out result))
             {
-                address = tmpAddress;
+                return true;
             }
-
-            if (address != IPAddress.None)
+        }
+        else if (IPAddress.TryParse(value, out var address))
+        {
+            if (address.AddressFamily == AddressFamily.InterNetwork)
             {
-                if (splitString.MoveNext())
-                {
-                    var subnetBlock = splitString.Current;
-                    if (int.TryParse(subnetBlock, out var netmask))
-                    {
-                        result = new IPNetwork(address, netmask);
-                        return true;
-                    }
-                    else if (IPAddress.TryParse(subnetBlock, out var netmaskAddress))
-                    {
-                        result = new IPNetwork(address, NetworkUtils.MaskToCidr(netmaskAddress));
-                        return true;
-                    }
-                }
-                else if (address.AddressFamily == AddressFamily.InterNetwork)
-                {
-                    result = address.Equals(IPAddress.Any) ? NetworkConstants.IPv4Any : new IPNetwork(address, NetworkConstants.MinimumIPv4PrefixSize);
-                    return true;
-                }
-                else if (address.AddressFamily == AddressFamily.InterNetworkV6)
-                {
-                    result = address.Equals(IPAddress.IPv6Any) ? NetworkConstants.IPv6Any : new IPNetwork(address, NetworkConstants.MinimumIPv6PrefixSize);
-                    return true;
-                }
+                result = address.Equals(IPAddress.Any) ? NetworkConstants.IPv4Any : new IPNetwork(address, NetworkConstants.MinimumIPv4PrefixSize);
+                return true;
+            }
+            else if (address.AddressFamily == AddressFamily.InterNetworkV6)
+            {
+                result = address.Equals(IPAddress.IPv6Any) ? NetworkConstants.IPv6Any : new IPNetwork(address, NetworkConstants.MinimumIPv6PrefixSize);
+                return true;
             }
         }
 

+ 0 - 1
MediaBrowser.Controller/MediaBrowser.Controller.csproj

@@ -20,7 +20,6 @@
   <ItemGroup>
     <PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" />
     <PackageReference Include="Microsoft.Extensions.Configuration.Binder" />
-    <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
     <PackageReference Include="System.Threading.Tasks.Dataflow" />
   </ItemGroup>
 

+ 0 - 1
MediaBrowser.Model/MediaBrowser.Model.csproj

@@ -34,7 +34,6 @@
 
   <ItemGroup>
     <PackageReference Include="Microsoft.AspNetCore.HttpOverrides" />
-    <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
     <PackageReference Include="Microsoft.Extensions.Logging.Abstractions" />
     <PackageReference Include="MimeTypes">
       <PrivateAssets>all</PrivateAssets>

+ 0 - 5
tests/Jellyfin.Networking.Tests/NetworkParseTests.cs

@@ -71,7 +71,6 @@ namespace Jellyfin.Networking.Tests
         [InlineData("127.0.0.1/8")]
         [InlineData("192.168.1.2")]
         [InlineData("192.168.1.2/24")]
-        [InlineData("192.168.1.2/255.255.255.0")]
         [InlineData("fd23:184f:2029:0:3139:7386:67d7:d517")]
         [InlineData("[fd23:184f:2029:0:3139:7386:67d7:d517]")]
         [InlineData("fe80::7add:12ff:febb:c67b%16")]
@@ -103,12 +102,10 @@ namespace Jellyfin.Networking.Tests
         [Theory]
         [InlineData("192.168.5.85/24", "192.168.5.1")]
         [InlineData("192.168.5.85/24", "192.168.5.254")]
-        [InlineData("192.168.5.85/255.255.255.0", "192.168.5.254")]
         [InlineData("10.128.240.50/30", "10.128.240.48")]
         [InlineData("10.128.240.50/30", "10.128.240.49")]
         [InlineData("10.128.240.50/30", "10.128.240.50")]
         [InlineData("10.128.240.50/30", "10.128.240.51")]
-        [InlineData("10.128.240.50/255.255.255.252", "10.128.240.51")]
         [InlineData("127.0.0.1/8", "127.0.0.1")]
         public void IPv4SubnetMaskMatchesValidIPAddress(string netMask, string ipAddress)
         {
@@ -124,12 +121,10 @@ namespace Jellyfin.Networking.Tests
         [Theory]
         [InlineData("192.168.5.85/24", "192.168.4.254")]
         [InlineData("192.168.5.85/24", "191.168.5.254")]
-        [InlineData("192.168.5.85/255.255.255.252", "192.168.4.254")]
         [InlineData("10.128.240.50/30", "10.128.240.47")]
         [InlineData("10.128.240.50/30", "10.128.240.52")]
         [InlineData("10.128.240.50/30", "10.128.239.50")]
         [InlineData("10.128.240.50/30", "10.127.240.51")]
-        [InlineData("10.128.240.50/255.255.255.252", "10.127.240.51")]
         public void IPv4SubnetMaskDoesNotMatchInvalidIPAddress(string netMask, string ipAddress)
         {
             var ipa = IPAddress.Parse(ipAddress);