Adds assemblies config, fixes crash bugs. (#134)
This commit is contained in:
parent
0140eb73b4
commit
8ec166bcd0
3223 changed files with 191 additions and 191 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -35,6 +35,9 @@
|
|||
/Distribution/Microsoft.Extensions.Options.dll
|
||||
/Distribution/Microsoft.Extensions.Primitives.dll
|
||||
|
||||
# Configuration Files
|
||||
!/Distribution/Configuration/assemblies.json
|
||||
|
||||
/Projects/*/obj
|
||||
/Projects/*/bin
|
||||
|
||||
|
|
|
|||
36
ModernUO.sln
36
ModernUO.sln
|
|
@ -6,11 +6,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Argon2", "Projects\Argon2\A
|
|||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Server", "Projects\Server\Server.csproj", "{5E93BB35-3661-4822-9A8A-859726BAD87F}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Scripts", "Projects\Scripts\Scripts.csproj", "{83CF2484-BCCB-4B7C-9C5F-7AB43AEA5E8F}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UOContent", "Projects\UOContent\UOContent.csproj", "{83CF2484-BCCB-4B7C-9C5F-7AB43AEA5E8F}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Server.Tests", "Projects\Server.Tests\Server.Tests.csproj", "{D7A5D3AF-D607-46EF-BAAD-0D424190311F}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Scripts.Tests", "Projects\Scripts.Tests\Scripts.Tests.csproj", "{3C4797F9-603E-44EF-8E8C-9275CC9EA74B}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UOContent.Tests", "Projects\UOContent.Tests\UOContent.Tests.csproj", "{3C4797F9-603E-44EF-8E8C-9275CC9EA74B}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Zlib", "Projects\ZLib\ZLib.csproj", "{3B030CD2-DB29-4BC2-9C90-D90804B30757}"
|
||||
EndProject
|
||||
|
|
@ -21,42 +21,42 @@ Global
|
|||
Release|x64 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{5E93BB35-3661-4822-9A8A-859726BAD87F}.Analyze|x64.ActiveCfg = Release|x64
|
||||
{5E93BB35-3661-4822-9A8A-859726BAD87F}.Analyze|x64.Build.0 = Release|x64
|
||||
{5E93BB35-3661-4822-9A8A-859726BAD87F}.Analyze|x64.ActiveCfg = Analyze|x64
|
||||
{5E93BB35-3661-4822-9A8A-859726BAD87F}.Analyze|x64.Build.0 = Analyze|x64
|
||||
{5E93BB35-3661-4822-9A8A-859726BAD87F}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{5E93BB35-3661-4822-9A8A-859726BAD87F}.Debug|x64.Build.0 = Debug|x64
|
||||
{5E93BB35-3661-4822-9A8A-859726BAD87F}.Release|x64.ActiveCfg = Release|x64
|
||||
{5E93BB35-3661-4822-9A8A-859726BAD87F}.Release|x64.Build.0 = Release|x64
|
||||
{83CF2484-BCCB-4B7C-9C5F-7AB43AEA5E8F}.Analyze|x64.ActiveCfg = Release|x64
|
||||
{83CF2484-BCCB-4B7C-9C5F-7AB43AEA5E8F}.Analyze|x64.Build.0 = Release|x64
|
||||
{83CF2484-BCCB-4B7C-9C5F-7AB43AEA5E8F}.Analyze|x64.ActiveCfg = Analyze|x64
|
||||
{83CF2484-BCCB-4B7C-9C5F-7AB43AEA5E8F}.Analyze|x64.Build.0 = Analyze|x64
|
||||
{83CF2484-BCCB-4B7C-9C5F-7AB43AEA5E8F}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{83CF2484-BCCB-4B7C-9C5F-7AB43AEA5E8F}.Debug|x64.Build.0 = Debug|x64
|
||||
{83CF2484-BCCB-4B7C-9C5F-7AB43AEA5E8F}.Release|x64.ActiveCfg = Release|x64
|
||||
{83CF2484-BCCB-4B7C-9C5F-7AB43AEA5E8F}.Release|x64.Build.0 = Release|x64
|
||||
{D7A5D3AF-D607-46EF-BAAD-0D424190311F}.Analyze|x64.ActiveCfg = Debug|x64
|
||||
{D7A5D3AF-D607-46EF-BAAD-0D424190311F}.Analyze|x64.Build.0 = Debug|x64
|
||||
{D7A5D3AF-D607-46EF-BAAD-0D424190311F}.Analyze|x64.ActiveCfg = Analyze|x64
|
||||
{D7A5D3AF-D607-46EF-BAAD-0D424190311F}.Analyze|x64.Build.0 = Analyze|x64
|
||||
{D7A5D3AF-D607-46EF-BAAD-0D424190311F}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{D7A5D3AF-D607-46EF-BAAD-0D424190311F}.Debug|x64.Build.0 = Debug|x64
|
||||
{D7A5D3AF-D607-46EF-BAAD-0D424190311F}.Release|x64.ActiveCfg = Release|x64
|
||||
{D7A5D3AF-D607-46EF-BAAD-0D424190311F}.Release|x64.Build.0 = Release|x64
|
||||
{3C4797F9-603E-44EF-8E8C-9275CC9EA74B}.Analyze|x64.ActiveCfg = Debug|x64
|
||||
{3C4797F9-603E-44EF-8E8C-9275CC9EA74B}.Analyze|x64.Build.0 = Debug|x64
|
||||
{3C4797F9-603E-44EF-8E8C-9275CC9EA74B}.Analyze|x64.ActiveCfg = Analyze|x64
|
||||
{3C4797F9-603E-44EF-8E8C-9275CC9EA74B}.Analyze|x64.Build.0 = Analyze|x64
|
||||
{3C4797F9-603E-44EF-8E8C-9275CC9EA74B}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{3C4797F9-603E-44EF-8E8C-9275CC9EA74B}.Debug|x64.Build.0 = Debug|x64
|
||||
{3C4797F9-603E-44EF-8E8C-9275CC9EA74B}.Release|x64.ActiveCfg = Release|x64
|
||||
{3C4797F9-603E-44EF-8E8C-9275CC9EA74B}.Release|x64.Build.0 = Release|x64
|
||||
{97150E9D-5561-4D3C-9B78-E795544507D0}.Analyze|x64.ActiveCfg = Release|x64
|
||||
{97150E9D-5561-4D3C-9B78-E795544507D0}.Analyze|x64.Build.0 = Release|x64
|
||||
{97150E9D-5561-4D3C-9B78-E795544507D0}.Analyze|x64.ActiveCfg = Analyze|x64
|
||||
{97150E9D-5561-4D3C-9B78-E795544507D0}.Analyze|x64.Build.0 = Analyze|x64
|
||||
{97150E9D-5561-4D3C-9B78-E795544507D0}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{97150E9D-5561-4D3C-9B78-E795544507D0}.Debug|x64.Build.0 = Debug|x64
|
||||
{97150E9D-5561-4D3C-9B78-E795544507D0}.Release|x64.ActiveCfg = Release|x64
|
||||
{97150E9D-5561-4D3C-9B78-E795544507D0}.Release|x64.Build.0 = Release|x64
|
||||
{3B030CD2-DB29-4BC2-9C90-D90804B30757}.Analyze|x64.ActiveCfg = Debug|Any CPU
|
||||
{3B030CD2-DB29-4BC2-9C90-D90804B30757}.Analyze|x64.Build.0 = Debug|Any CPU
|
||||
{3B030CD2-DB29-4BC2-9C90-D90804B30757}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{3B030CD2-DB29-4BC2-9C90-D90804B30757}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{3B030CD2-DB29-4BC2-9C90-D90804B30757}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{3B030CD2-DB29-4BC2-9C90-D90804B30757}.Release|x64.Build.0 = Release|Any CPU
|
||||
{3B030CD2-DB29-4BC2-9C90-D90804B30757}.Analyze|x64.ActiveCfg = Analyze|x64
|
||||
{3B030CD2-DB29-4BC2-9C90-D90804B30757}.Analyze|x64.Build.0 = Analyze|x64
|
||||
{3B030CD2-DB29-4BC2-9C90-D90804B30757}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{3B030CD2-DB29-4BC2-9C90-D90804B30757}.Debug|x64.Build.0 = Debug|x64
|
||||
{3B030CD2-DB29-4BC2-9C90-D90804B30757}.Release|x64.ActiveCfg = Release|x64
|
||||
{3B030CD2-DB29-4BC2-9C90-D90804B30757}.Release|x64.Build.0 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
|
|
|||
|
|
@ -1,98 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="Current">
|
||||
<PropertyGroup>
|
||||
<RootNamespace>Server</RootNamespace>
|
||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||
<AssemblyName>Scripts.CS</AssemblyName>
|
||||
<Authors>Kamron Batman</Authors>
|
||||
<Company>ModernUO</Company>
|
||||
<Product>ModernUO Scripts</Product>
|
||||
<Copyright>2019-2020</Copyright>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<UseNETCoreGenerator>true</UseNETCoreGenerator>
|
||||
<WarningsAsErrors />
|
||||
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<LangVersion>8.0</LangVersion>
|
||||
<!-- <OutDir>$(SolutionDir)\Distribution\Assemblies</OutDir>-->
|
||||
<!-- <OutputPath>$(SolutionDir)\Distribution\Assemblies</OutputPath>-->
|
||||
<PublishDir>$(SolutionDir)\Distribution\Assemblies</PublishDir>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<Configurations>Debug;Release;Analyze</Configurations>
|
||||
<DefineConstants Condition="'$(RuntimeIdentifier)' == 'win-x64'">WINDOWS</DefineConstants>
|
||||
<Platforms>x64</Platforms>
|
||||
</PropertyGroup>
|
||||
<Target Name="CleanPub" AfterTargets="Clean">
|
||||
<Message Text="Removing distribution assemblies..." />
|
||||
<Delete Files="$(SolutionDir)\Distribution\Assemblies\BouncyCastle.Crypto.dll" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\Assemblies\MailKit.dll" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\Assemblies\Microsoft.AspNetCore.Connections.Abstractions.dll" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\Assemblies\Microsoft.AspNetCore.Http.Features.dll" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\Assemblies\Microsoft.Extensions.Configuration.Abstractions.dll" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\Assemblies\Microsoft.Extensions.DependencyInjection.Abstractions.dll" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\Assemblies\Microsoft.Extensions.FileProviders.Abstractions.dll" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\Assemblies\Microsoft.Extensions.Hosting.Abstractions.dll" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\Assemblies\Microsoft.Extensions.Logging.Abstractions.dll" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\Assemblies\Microsoft.Extensions.Primitives.dll" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\Assemblies\MimeKit.dll" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\Assemblies\$(AssemblyName).dll" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\Assemblies\$(AssemblyName).deps.json" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\Assemblies\$(AssemblyName).pdb" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\Assemblies\System.IO.Pipelines.dll" ContinueOnError="true" />
|
||||
</Target>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<DefineConstants>TRACE;DEBUG;$(DefineConstants)</DefineConstants>
|
||||
<Optimize>false</Optimize>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Optimize>true</Optimize>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Analyze|x64'">
|
||||
<Optimize>true</Optimize>
|
||||
<RunCodeAnalysis>true</RunCodeAnalysis>
|
||||
<RunAnalyzersDuringBuild>true</RunAnalyzersDuringBuild>
|
||||
<CodeAnalysisRuleSet>$(SolutionDir)\Rules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="SpecialSystems\README.TXT" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Server\Server.csproj" Private="false" PrivateAssets="All" IncludeAssets="None">
|
||||
<IncludeInPackage>false</IncludeInPackage>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="MailKit" Version="2.6.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="3.1.3" />
|
||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="3.1.3" />
|
||||
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="3.1.3" />
|
||||
<PackageReference Include="Argon2.Bindings" Version="1.1.0" />
|
||||
<PackageReference Include="Zlib.Bindings" Version="1.0.0" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="'$(Configuration)|$(Platform)'=='Analyze|AnyCPU'">
|
||||
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" />
|
||||
<AdditionalFiles Include="$(SolutionDir)\stylecop.json" Link="stylecop.json" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.8">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<AdditionalFiles Include="$(SolutionDir)\Rules.ruleset" Link="Rules.rulest" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="'$(Configuration)|$(Platform)'=='Analyze|x64'">
|
||||
<PackageReference Include="StyleCop.Analyzers">
|
||||
<Version>1.1.118</Version>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
<AdditionalFiles Include="$(SolutionDir)\stylecop.json">
|
||||
<Link>stylecop.json</Link>
|
||||
</AdditionalFiles>
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers">
|
||||
<Version>2.9.8</Version>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<AdditionalFiles Include="$(SolutionDir)\Rules.ruleset">
|
||||
<Link>Rules.rulest</Link>
|
||||
</AdditionalFiles>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
@ -11,7 +11,7 @@
|
|||
<PackageReference Include="coverlet.collector" Version="1.2.1" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Scripts\Scripts.csproj" />
|
||||
<ProjectReference Include="..\Server\Server.csproj" />
|
||||
<ProjectReference Include="..\UOContent\UOContent.csproj" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
* ModernUO *
|
||||
* Copyright (C) 2019-2020 - ModernUO Development Team *
|
||||
* Email: hi@modernuo.com *
|
||||
* File: AssemblyHandler.cs - Created: 2019/08/02 - Updated: 2020/01/19 *
|
||||
* File: AssemblyHandler.cs - Created: 2019/08/02 - Updated: 2020/05/09 *
|
||||
* *
|
||||
* This program is free software: you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
|
|
@ -33,21 +33,14 @@ namespace Server
|
|||
private static TypeCache m_NullCache;
|
||||
public static Assembly[] Assemblies { get; set; }
|
||||
|
||||
public static readonly string AssembliesPath = EnsureDirectory("Assemblies");
|
||||
public static void LoadScripts(string[] files)
|
||||
{
|
||||
var assemblies = new Assembly[files.Length];
|
||||
|
||||
public static void LoadScripts(string path = null) =>
|
||||
Assemblies = Directory.GetFiles(path ?? AssembliesPath, "*.dll")
|
||||
.Select(t =>
|
||||
{
|
||||
try
|
||||
{
|
||||
return AssemblyLoadContext.Default.LoadFromAssemblyPath(t);
|
||||
} catch (BadImageFormatException)
|
||||
{
|
||||
// ignored
|
||||
return null;
|
||||
}
|
||||
}).Where(t => t != null).ToArray();
|
||||
for (int i = 0; i < files.Length; i++) assemblies[i] = AssemblyLoadContext.Default.LoadFromAssemblyPath(files[i]);
|
||||
|
||||
Assemblies = assemblies;
|
||||
}
|
||||
|
||||
public static void Invoke(string method)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
* Copyright (C) 2019-2020 - ModernUO Development Team *
|
||||
* Email: hi@modernuo.com *
|
||||
* File: ServerConfiguration.cs *
|
||||
* Created: 2019/10/04 - Updated: 2020/05/02 *
|
||||
* Created: 2019/10/04 - Updated: 2020/05/09 *
|
||||
* *
|
||||
* This program is free software: you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ using System.Threading.Tasks;
|
|||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
using Server.Json;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server
|
||||
|
|
@ -117,8 +118,6 @@ namespace Server
|
|||
|
||||
public static Thread Thread { get; private set; }
|
||||
|
||||
public static MultiTextWriter MultiConsoleOut { get; private set; }
|
||||
|
||||
public static bool UsingHighResolutionTiming => m_HighRes && !Unix;
|
||||
|
||||
public static long TickCount => (long)Ticks;
|
||||
|
|
@ -309,6 +308,8 @@ namespace Server
|
|||
m_Signal.Set();
|
||||
}
|
||||
|
||||
private static string assembliesConfiguration = "Configuration/assemblies.json";
|
||||
|
||||
public static void Main(string[] args)
|
||||
{
|
||||
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
|
||||
|
|
@ -382,8 +383,13 @@ namespace Server
|
|||
|
||||
ServerConfiguration.Load();
|
||||
|
||||
// Load Assembly Scripts.CS.dll
|
||||
AssemblyHandler.LoadScripts();
|
||||
// Load UOContent.dll
|
||||
string[] assemblyFiles = JsonConfig.Deserialize<List<string>>(
|
||||
Path.Join(BaseDirectory, assembliesConfiguration)
|
||||
).Select(t => Path.Join(BaseDirectory, "Assemblies", t)).ToArray();
|
||||
AssemblyHandler.LoadScripts(assemblyFiles);
|
||||
|
||||
VerifySerialization();
|
||||
|
||||
AssemblyHandler.Invoke("Configure");
|
||||
|
||||
|
|
|
|||
|
|
@ -16,66 +16,70 @@
|
|||
<UseNETCoreGenerator>true</UseNETCoreGenerator>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<LangVersion>8.0</LangVersion>
|
||||
<PublishDir>$(SolutionDir)\Distribution</PublishDir>
|
||||
<!-- <OutDir>$(SolutionDir)\Distribution</OutDir>-->
|
||||
<!-- <OutputPath>$(SolutionDir)\Distribution</OutputPath>-->
|
||||
<PublishDir>..\..\Distribution</PublishDir>
|
||||
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
|
||||
<WarningsAsErrors />
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
|
||||
<Configurations>Debug;Release;Analyze</Configurations>
|
||||
<Platforms>x64</Platforms>
|
||||
<DefineConstants Condition="$(RuntimeIdentifier.StartsWith('win'))">WINDOWS</DefineConstants>
|
||||
<DefineConstants Condition="$(RuntimeIdentifier.StartsWith(`win`)) != true">UNIX</DefineConstants>
|
||||
</PropertyGroup>
|
||||
<Target Name="CleanPub" AfterTargets="Clean">
|
||||
<Message Text="Removing distribution files..." />
|
||||
<Delete Files="$(SolutionDir)\Distribution\libuv.dylib" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\libuv.so" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\libuv.dll" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\zlib.dll" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\libz.dylib" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\libz.so" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\Microsoft.AspNetCore.Connections.Abstractions.dll" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\Microsoft.AspNetCore.Http.Features.dll" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.dll" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\Microsoft.Extensions.Configuration.Abstractions.dll" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\Microsoft.Extensions.DependencyInjection.Abstractions.dll" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\Microsoft.Extensions.FileProviders.Abstractions.dll" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\Microsoft.Extensions.Hosting.Abstractions.dll" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\Microsoft.Extensions.Logging.Abstractions.dll" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\Microsoft.Extensions.Options.dll" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\Microsoft.Extensions.Primitives.dll" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\$(AssemblyName)" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\$(AssemblyName).dll" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\$(AssemblyName).dll.config" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\$(AssemblyName).exe" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\$(AssemblyName).deps.json" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\$(AssemblyName).pdb" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\$(AssemblyName).runtimeconfig.dev.json" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\$(AssemblyName).runtimeconfig.json" ContinueOnError="true" />
|
||||
<Delete Files="$(SolutionDir)\Distribution\System.IO.Pipelines.dll" ContinueOnError="true" />
|
||||
<Delete Files="..\..\Distribution\libuv.dylib" ContinueOnError="true" />
|
||||
<Delete Files="..\..\Distribution\libuv.so" ContinueOnError="true" />
|
||||
<Delete Files="..\..\Distribution\libuv.dll" ContinueOnError="true" />
|
||||
<Delete Files="..\..\Distribution\zlib.dll" ContinueOnError="true" />
|
||||
<Delete Files="..\..\Distribution\libz.dylib" ContinueOnError="true" />
|
||||
<Delete Files="..\..\Distribution\libz.so" ContinueOnError="true" />
|
||||
<Delete Files="..\..\Distribution\libdrng.dll" ContinueOnError="true" />
|
||||
<Delete Files="..\..\Distribution\Microsoft.AspNetCore.Connections.Abstractions.dll" ContinueOnError="true" />
|
||||
<Delete Files="..\..\Distribution\Microsoft.AspNetCore.Http.Features.dll" ContinueOnError="true" />
|
||||
<Delete Files="..\..\Distribution\Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.dll" ContinueOnError="true" />
|
||||
<Delete Files="..\..\Distribution\Microsoft.Extensions.Configuration.Abstractions.dll" ContinueOnError="true" />
|
||||
<Delete Files="..\..\Distribution\Microsoft.Extensions.DependencyInjection.Abstractions.dll" ContinueOnError="true" />
|
||||
<Delete Files="..\..\Distribution\Microsoft.Extensions.FileProviders.Abstractions.dll" ContinueOnError="true" />
|
||||
<Delete Files="..\..\Distribution\Microsoft.Extensions.Hosting.Abstractions.dll" ContinueOnError="true" />
|
||||
<Delete Files="..\..\Distribution\Microsoft.Extensions.Logging.Abstractions.dll" ContinueOnError="true" />
|
||||
<Delete Files="..\..\Distribution\Microsoft.Extensions.Options.dll" ContinueOnError="true" />
|
||||
<Delete Files="..\..\Distribution\Microsoft.Extensions.Primitives.dll" ContinueOnError="true" />
|
||||
<Delete Files="..\..\Distribution\$(AssemblyName)" ContinueOnError="true" />
|
||||
<Delete Files="..\..\Distribution\$(AssemblyName).dll" ContinueOnError="true" />
|
||||
<Delete Files="..\..\Distribution\$(AssemblyName).dll.config" ContinueOnError="true" />
|
||||
<Delete Files="..\..\Distribution\$(AssemblyName).exe" ContinueOnError="true" />
|
||||
<Delete Files="..\..\Distribution\$(AssemblyName).deps.json" ContinueOnError="true" />
|
||||
<Delete Files="..\..\Distribution\$(AssemblyName).pdb" ContinueOnError="true" />
|
||||
<Delete Files="..\..\Distribution\$(AssemblyName).runtimeconfig.dev.json" ContinueOnError="true" />
|
||||
<Delete Files="..\..\Distribution\$(AssemblyName).runtimeconfig.json" ContinueOnError="true" />
|
||||
<Delete Files="..\..\Distribution\System.IO.Pipelines.dll" ContinueOnError="true" />
|
||||
</Target>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ItemGroup>
|
||||
<AdditionalFiles Include="..\..\Rules.ruleset">
|
||||
<Link>Rules.rulest</Link>
|
||||
</AdditionalFiles>
|
||||
<AdditionalFiles Include="..\..\stylecop.json">
|
||||
<Link>stylecop.json</Link>
|
||||
</AdditionalFiles>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)'=='Debug'">
|
||||
<DefineConstants>TRACE;DEBUG</DefineConstants>
|
||||
<Optimize>false</Optimize>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<PropertyGroup Condition="'$(Configuration)'=='Release'">
|
||||
<Optimize>true</Optimize>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Analyze|x64'">
|
||||
<Optimize>true</Optimize>
|
||||
<PropertyGroup Condition="'$(Configuration)'=='Analyze'">
|
||||
<RunCodeAnalysis>true</RunCodeAnalysis>
|
||||
<RunAnalyzersDuringBuild>true</RunAnalyzersDuringBuild>
|
||||
<CodeAnalysisRuleSet>$(SolutionDir)\Rules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSet>..\..\Rules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Assemblies\libdrng.dll" Condition="'$(RuntimeIdentifier)' == 'win-x64'">
|
||||
<Content Include="Assemblies\libdrng.dll" Condition="$(DefineConstants.Contains('WINDOWS'))">
|
||||
<Link>libdrng.dll</Link>
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<!-- <Content Include="Assemblies\zlib.dll" Condition="'$(RuntimeIdentifier)' == 'win-x64'">
|
||||
<Link>zlib.dll</Link>
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content> -->
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="3.1.3" />
|
||||
|
|
@ -93,21 +97,15 @@
|
|||
<ItemGroup>
|
||||
<None Remove="Kestrel\Transport.Libuv\**" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="'$(Configuration)|$(Platform)'=='Analyze|x64'">
|
||||
<ItemGroup Condition="'$(Configuration)'=='Analyze'">
|
||||
<PackageReference Include="StyleCop.Analyzers">
|
||||
<Version>1.1.118</Version>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
<AdditionalFiles Include="$(SolutionDir)\stylecop.json">
|
||||
<Link>stylecop.json</Link>
|
||||
</AdditionalFiles>
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers">
|
||||
<Version>2.9.8</Version>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<AdditionalFiles Include="$(SolutionDir)\Rules.ruleset">
|
||||
<Link>Rules.rulest</Link>
|
||||
</AdditionalFiles>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||
<Platforms>x64</Platforms>
|
||||
<DefineConstants Condition="'$(RuntimeIdentifier)' == 'win-x64'">WINDOWS</DefineConstants>
|
||||
<RootNamespace>Scripts.Tests</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.6.1" />
|
||||
|
|
@ -12,6 +13,6 @@
|
|||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Server\Server.csproj" />
|
||||
<ProjectReference Include="..\Scripts\Scripts.csproj" />
|
||||
<ProjectReference Include="..\UOContent\UOContent.csproj" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
@ -39,10 +39,9 @@ namespace Server.Accounting.Security
|
|||
|
||||
public static class AccountSecurity
|
||||
{
|
||||
// TODO: Put it in a configuration
|
||||
public static PasswordProtectionAlgorithm CurrentAlgorithm { get; set; }
|
||||
|
||||
public static readonly IPasswordProtection CurrentPasswordProtection = GetPasswordProtection(CurrentAlgorithm);
|
||||
public static IPasswordProtection CurrentPasswordProtection => GetPasswordProtection(CurrentAlgorithm);
|
||||
|
||||
public static void Configure()
|
||||
{
|
||||
|
|
@ -50,7 +49,7 @@ namespace Server.Accounting.Security
|
|||
ServerConfiguration.GetOrUpdateSetting("accountSecurity.encryptionAlgorithm", PasswordProtectionAlgorithm.Argon2);
|
||||
|
||||
if (CurrentAlgorithm < PasswordProtectionAlgorithm.SHA2)
|
||||
throw new Exception($"Security: {CurrentAlgorithm} is obselete and not secure. Do not use it.");
|
||||
throw new Exception($"Security: {CurrentAlgorithm} is obsolete and not secure. Do not use it.");
|
||||
}
|
||||
|
||||
public static IPasswordProtection GetPasswordProtection(PasswordProtectionAlgorithm algorithm)
|
||||
|
|
@ -62,7 +61,8 @@ namespace Server.Accounting.Security
|
|||
PasswordProtectionAlgorithm.SHA2 => SHA2PasswordProtection.Instance,
|
||||
PasswordProtectionAlgorithm.PBKDF2 => PBKDF2PasswordProtection.Instance,
|
||||
PasswordProtectionAlgorithm.Argon2 => Argon2PasswordProtection.Instance,
|
||||
_ => null
|
||||
PasswordProtectionAlgorithm.None => throw new Exception("Do not use PasswordProtectionAlgorithm.None"),
|
||||
_ => throw new Exception("No algorithm")
|
||||
};
|
||||
|
||||
return passwordProtection;
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue