From: js6pak Date: Sun, 18 Dec 2022 21:44:25 +0000 (+0100) Subject: Remove redirector (#502) X-Git-Tag: v1.8.0~3 X-Git-Url: https://git.deb.at/?a=commitdiff_plain;h=d667f99c9f02e289b5f056e6ef2bee1e59c23259;p=rhonda%2Fimpostor.git Remove redirector (#502) --- diff --git a/docs/Running-the-server.md b/docs/Running-the-server.md index 56e5497..4dc4a5f 100644 --- a/docs/Running-the-server.md +++ b/docs/Running-the-server.md @@ -44,63 +44,3 @@ services: - /path/to/local/plugins:/app/plugins # Only needed if using plugins - /path/to/local/libraries:/app/libraries # Only needed if using external libraries ``` - -## Multiple servers - -Follow the steps from the single server on two or more servers. You should only need to set this up if you have a very large server and can no longer fit everyone on one server: if this is your first time installing Impostor, use a single server. - -### Master server - -The master server will accept client connections and redirect them to the other servers listed in the configuration. It will not host any games itself. - -Example configuration: - -```json -{ - "Server": { - "PublicIp": "127.0.0.1", - "PublicPort": 22023, - "ListenIp": "0.0.0.0", - "ListenPort": 22023 - }, - "ServerRedirector": { - "Enabled": true, - "Master": true, - "Locator": { - "Redis": "", - "UdpMasterEndpoint": "127.0.0.1:22024" - }, - "Nodes": [ - { - "Ip": "127.0.0.1", - "Port": 22025 - } - ] - } -} -``` - -### Node servers - -The node server should have `ServerRedirector` enabled too, but `Master` **must be disabled**. Nodes do not need to be aware of each other. - -Example configuration: - -```json -{ - "Server": { - "PublicIp": "127.0.0.1", - "PublicPort": 22025, - "ListenIp": "0.0.0.0", - "ListenPort": 22025 - }, - "ServerRedirector": { - "Enabled": true, - "Master": false, - "Locator": { - "Redis": "", - "UdpMasterEndpoint": "127.0.0.1:22024" - } - } -} -``` diff --git a/docs/Server-configuration.md b/docs/Server-configuration.md index 5acc343..65b2992 100644 --- a/docs/Server-configuration.md +++ b/docs/Server-configuration.md @@ -40,19 +40,6 @@ The Debug configuration is used to enable the game recorder. This is mostly usef | **GameRecorderEnabled** | `false` | Enables the Game Recorder. | | **GameRecorderPath** | _empty_ | Path where the recorded games will be saved. | -### ServerRedirector - -In a multi-node setup these values need to be specified. Note that most people do not need to run a Multi-node setup. - -| Key | Default | Value | -| ---------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Enabled** | `false` | Whether the server runs in multi-node setup. If this is `false`, all other options in this section do not have any effect. | -| **Master** | `false` | Whether the current server is a master. A master is responsible for redirecting clients to nodes | -| **Locator** | | Fill in either `Redis` or `UdpMasterEndpoint` to choose which method to use for locating other nodes. This must be the same across all servers. | -| **>Redis** | | Format `127.0.0.1.6379`, you can also use a password like so: `127.0.0.1.6379,password=value`. | -| **>UdpMasterEndpoint** | | On the master, this value acts as a listen ip and port. On a node, this should be the public ip and port of the master. Format `127.0.0.1:32320`. | -| **Nodes** | | An array containing public ips and ports of nodes. Only needs to be set on the master. See above for an example. | - ### Serilog (Logging) Impostor's log framework, Serilog, can be configured in the config file. You can change its default log level and you can add additional sinks. @@ -105,12 +92,4 @@ IMPOSTOR_Server__ListenIp=0.0.0.0 IMPOSTOR_Server__ListenPort=22023 IMPOSTOR_AntiCheat__Enabled=true IMPOSTOR_AntiCheat__BanIpFromGame=true -IMPOSTOR_ServerRedirector__Enabled=false -IMPOSTOR_ServerRedirector__Master=true -IMPOSTOR_ServerRedirector__Locator__Redis=127.0.0.1.6379 -IMPOSTOR_ServerRedirector__Locator__UdpMasterEndpoint=127.0.0.1:32320 -IMPOSTOR_ServerRedirector__Nodes__0__Ip=127.0.0.1 -IMPOSTOR_ServerRedirector__Nodes__0__Port=22024 -IMPOSTOR_ServerRedirector__Nodes__1__Ip=127.0.0.1 -IMPOSTOR_ServerRedirector__Nodes__1__Port=22025 ``` diff --git a/docs/Writing-a-plugin.md b/docs/Writing-a-plugin.md index e931709..4668c81 100644 --- a/docs/Writing-a-plugin.md +++ b/docs/Writing-a-plugin.md @@ -293,7 +293,6 @@ Some extra information that might be useful for those developing plugins. - `IEventManager` - `IClientManager` - `IOptions` - - `IOptions` - You can add your own classes and `EventListener` implementation to the `IServiceProvider` by creating a new class and implementing `IPluginStartup`. Make sure to register them as a singleton `services.AddSingleton();`. ### Server configuration diff --git a/src/Impostor.Api/Config/DisconnectMessages.cs b/src/Impostor.Api/Config/DisconnectMessages.cs index 353b79b..5a40559 100644 --- a/src/Impostor.Api/Config/DisconnectMessages.cs +++ b/src/Impostor.Api/Config/DisconnectMessages.cs @@ -14,9 +14,6 @@ public const string Destroyed = "The game you tried to join is being destroyed. " + "Please create a new game."; - public const string NotImplemented = "Game listing has not been implemented in Impostor yet for servers " + - "running in server redirection mode."; - public const string UsernameLength = "Your username is too long, please make it shorter."; public const string UsernameIllegalCharacters = "Your username contains illegal characters, please remove them."; diff --git a/src/Impostor.Api/Config/ServerRedirectorConfig.cs b/src/Impostor.Api/Config/ServerRedirectorConfig.cs deleted file mode 100644 index 0d11ab1..0000000 --- a/src/Impostor.Api/Config/ServerRedirectorConfig.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; - -namespace Impostor.Api.Config -{ - public class ServerRedirectorConfig - { - public const string Section = "ServerRedirector"; - - public bool Enabled { get; set; } - - public bool Master { get; set; } - - public NodeLocator? Locator { get; set; } - - public List? Nodes { get; set; } - - public class NodeLocator - { - [AllowNull] - public string Redis { get; set; } - - [AllowNull] - public string UdpMasterEndpoint { get; set; } - } - } -} diff --git a/src/Impostor.Api/Config/ServerRedirectorNode.cs b/src/Impostor.Api/Config/ServerRedirectorNode.cs deleted file mode 100644 index 9980bd4..0000000 --- a/src/Impostor.Api/Config/ServerRedirectorNode.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System.Diagnostics.CodeAnalysis; - -namespace Impostor.Api.Config -{ - public class ServerRedirectorNode - { - [AllowNull] - public string Ip { get; set; } - - [AllowNull] - public ushort Port { get; set; } - } -} diff --git a/src/Impostor.Benchmarks/packages.lock.json b/src/Impostor.Benchmarks/packages.lock.json index f5c00f7..2a0b829 100644 --- a/src/Impostor.Benchmarks/packages.lock.json +++ b/src/Impostor.Benchmarks/packages.lock.json @@ -117,25 +117,6 @@ "resolved": "3.1.6", "contentHash": "jek4XYaQ/PGUwDKKhwR8K47Uh1189PFzMeLqO83mXrXQVIpARZCcfuDedH50YDTepBkfijCZN5U/vZi++erxtg==" }, - "Microsoft.Extensions.Caching.Abstractions": { - "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "IeimUd0TNbhB4ded3AbgBLQv2SnsiVugDyGV1MvspQFVlA07nDC7Zul7kcwH5jWN3JiTcp/ySE83AIJo8yfKjg==", - "dependencies": { - "Microsoft.Extensions.Primitives": "7.0.0" - } - }, - "Microsoft.Extensions.Caching.StackExchangeRedis": { - "type": "Transitive", - "resolved": "7.0.1", - "contentHash": "YtwtXPy5sBBkfj7kZkDEHwiMxgUZC0Coqq0x9ViL2zvj2nHBesNvJz/gFCLsFzEvw8UFfzHT1KGKG/QGI2cLVg==", - "dependencies": { - "Microsoft.Extensions.Caching.Abstractions": "7.0.0", - "Microsoft.Extensions.Logging.Abstractions": "7.0.0", - "Microsoft.Extensions.Options": "7.0.0", - "StackExchange.Redis": "2.2.4" - } - }, "Microsoft.Extensions.Configuration": { "type": "Transitive", "resolved": "7.0.0", @@ -408,25 +389,8 @@ }, "Microsoft.NETCore.Platforms": { "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==" - }, - "Microsoft.Win32.Registry": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", - "dependencies": { - "System.Security.AccessControl": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "Microsoft.Win32.SystemEvents": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "Bh6blKG8VAKvXiLe2L+sEsn62nc1Ij34MrNxepD2OCrS5cpCwQa9MeLyhVQPQ/R4Wlzwuy6wMK8hLb11QPDRsQ==", - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0" - } + "resolved": "2.0.0", + "contentHash": "VdLJOCXhZaEMY7Hm2GKiULmn7IEPFE4XC5LPSfBVCUIA8YLZVh846gtfBJalsPQF2PlzdD7ecX7DZEulJ402ZQ==" }, "Perfolizer": { "type": "Transitive", @@ -436,14 +400,6 @@ "System.Memory": "4.5.3" } }, - "Pipelines.Sockets.Unofficial": { - "type": "Transitive", - "resolved": "2.2.0", - "contentHash": "7hzHplEIVOGBl5zOQZGX/DiJDHjq+RVRVrYgDiqXb6RriqWAdacXxp+XO9WSrATCEXyNOUOQg9aqQArsjase/A==", - "dependencies": { - "System.IO.Pipelines": "5.0.0" - } - }, "Serilog": { "type": "Transitive", "resolved": "2.12.0", @@ -488,15 +444,6 @@ "Serilog": "2.10.0" } }, - "StackExchange.Redis": { - "type": "Transitive", - "resolved": "2.2.4", - "contentHash": "wM0OuRyRaZTFndFRjIOvas4jjkeclRJsmNm0eAx5tOju3SQisrLubNaSFT/dBypi4Vh1n7nYc1gWpw9L7ernOg==", - "dependencies": { - "Pipelines.Sockets.Unofficial": "2.2.0", - "System.Diagnostics.PerformanceCounter": "5.0.0" - } - }, "System.CodeDom": { "type": "Transitive", "resolved": "6.0.0", @@ -507,44 +454,11 @@ "resolved": "5.0.0", "contentHash": "FXkLXiK0sVVewcso0imKQoOxjoPAj42R8HtjjbSjVPAzwDfzoyoznWxgA3c38LDbN9SJux1xXoXYAhz98j7r2g==" }, - "System.Configuration.ConfigurationManager": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "aM7cbfEfVNlEEOj3DsZP+2g9NRwbkyiAv2isQEzw7pnkDg9ekCU2m1cdJLM02Uq691OaCS91tooaxcEn8d0q5w==", - "dependencies": { - "System.Security.Cryptography.ProtectedData": "5.0.0", - "System.Security.Permissions": "5.0.0" - } - }, "System.Diagnostics.EventLog": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "eUDP47obqQm3SFJfP6z+Fx2nJ4KKTQbXB4Q9Uesnzw9SbYdhjyoGXuvDn/gEmFY6N5Z3bFFbpAQGA7m6hrYJCw==" }, - "System.Diagnostics.PerformanceCounter": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "kcQWWtGVC3MWMNXdMDWfrmIlFZZ2OdoeT6pSNVRtk9+Sa7jwdPiMlNwb0ZQcS7NRlT92pCfmjRtkSWUW3RAKwg==", - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.Win32.Registry": "5.0.0", - "System.Configuration.ConfigurationManager": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Drawing.Common": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "SztFwAnpfKC8+sEKXAFxCBWhKQaEd97EiOL7oZJZP56zbqnLpmxACWA8aGseaUExciuEAUuR9dY8f7HkTRAdnw==", - "dependencies": { - "Microsoft.Win32.SystemEvents": "5.0.0" - } - }, - "System.IO.Pipelines": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "irMYm3vhVgRsYvHTU5b2gsT2CwT/SMM6LZFzuJjpIvT5Z4CshxNsaoBC1X/LltwuR3Opp8d6jOS/60WwOb7Q2Q==" - }, "System.Management": { "type": "Transitive", "resolved": "6.0.0", @@ -578,34 +492,6 @@ "resolved": "5.0.0", "contentHash": "ZD9TMpsmYJLrxbbmdvhwt9YEgG5WntEnZ/d1eH8JBX9LBp+Ju8BSBhUGbZMNVHHomWo2KVImJhTDl2hIgw/6MA==" }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Cryptography.ProtectedData": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "HGxMSAFAPLNoxBvSfW08vHde0F9uh7BjASwu6JF9JnXuEPhCY3YUqURn0+bQV/4UWeaqymmrHWV+Aw9riQCtCA==" - }, - "System.Security.Permissions": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "uE8juAhEkp7KDBCdjDIE3H9R1HJuEHqeqX8nLX9gmYKWwsqk3T5qZlPx8qle5DPKimC/Fy3AFTdV7HamgCh9qQ==", - "dependencies": { - "System.Security.AccessControl": "5.0.0", - "System.Windows.Extensions": "5.0.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "4.5.0", @@ -633,14 +519,6 @@ "resolved": "4.5.4", "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==" }, - "System.Windows.Extensions": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "c1ho9WU9ZxMZawML+ssPKZfdnrg/OjR3pe0m9v8230z3acqphwvPJqzAkH54xRYm5ntZHGG1EPP3sux9H3qSPg==", - "dependencies": { - "System.Drawing.Common": "5.0.0" - } - }, "impostor.api": { "type": "Project", "dependencies": { @@ -654,7 +532,6 @@ "dependencies": { "Impostor.Api": "[1.7.3-dev, )", "Impostor.Hazel": "[1.0.0, )", - "Microsoft.Extensions.Caching.StackExchangeRedis": "[7.0.1, )", "Microsoft.Extensions.FileSystemGlobbing": "[7.0.0, )", "Microsoft.Extensions.Hosting": "[7.0.0, )", "Microsoft.Extensions.ObjectPool": "[7.0.1, )", diff --git a/src/Impostor.Server/Extensions/NodeLocatorExtensions.cs b/src/Impostor.Server/Extensions/NodeLocatorExtensions.cs deleted file mode 100644 index 96ceb4d..0000000 --- a/src/Impostor.Server/Extensions/NodeLocatorExtensions.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System.Threading.Tasks; -using Impostor.Server.Net.Redirector; - -namespace Impostor.Server -{ - public static class NodeLocatorExtensions - { - public static async ValueTask ExistsAsync(this INodeLocator nodeLocator, string gameCode) - { - return await nodeLocator.FindAsync(gameCode) != null; - } - } -} diff --git a/src/Impostor.Server/Impostor.Server.csproj b/src/Impostor.Server/Impostor.Server.csproj index 2c5a87c..6e708b0 100644 --- a/src/Impostor.Server/Impostor.Server.csproj +++ b/src/Impostor.Server/Impostor.Server.csproj @@ -24,7 +24,6 @@ - diff --git a/src/Impostor.Server/Net/Manager/GameManager.cs b/src/Impostor.Server/Net/Manager/GameManager.cs index f4c6b1d..ec87434 100644 --- a/src/Impostor.Server/Net/Manager/GameManager.cs +++ b/src/Impostor.Server/Net/Manager/GameManager.cs @@ -12,7 +12,6 @@ using Impostor.Api.Games.Managers; using Impostor.Api.Innersloth; using Impostor.Api.Net; using Impostor.Server.Events; -using Impostor.Server.Net.Redirector; using Impostor.Server.Net.State; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; @@ -23,7 +22,6 @@ namespace Impostor.Server.Net.Manager internal class GameManager : IGameManager { private readonly ILogger _logger; - private readonly INodeLocator _nodeLocator; private readonly IPEndPoint _publicIp; private readonly ConcurrentDictionary _games; private readonly CompatibilityConfig _compatibilityConfig; @@ -31,10 +29,9 @@ namespace Impostor.Server.Net.Manager private readonly IEventManager _eventManager; private readonly IGameCodeFactory _gameCodeFactory; - public GameManager(ILogger logger, IOptions config, INodeLocator nodeLocator, IServiceProvider serviceProvider, IEventManager eventManager, IGameCodeFactory gameCodeFactory, IOptions compatibilityConfig) + public GameManager(ILogger logger, IOptions config, IServiceProvider serviceProvider, IEventManager eventManager, IGameCodeFactory gameCodeFactory, IOptions compatibilityConfig) { _logger = logger; - _nodeLocator = nodeLocator; _serviceProvider = serviceProvider; _eventManager = eventManager; _gameCodeFactory = gameCodeFactory; @@ -109,7 +106,6 @@ namespace Impostor.Server.Net.Manager } _logger.LogDebug("Remove game with code {0} ({1}).", GameCodeParser.IntToGameName(gameCode), gameCode); - await _nodeLocator.RemoveAsync(GameCodeParser.IntToGameName(gameCode)); await _eventManager.CallAsync(new GameDestroyedEvent(game)); } @@ -124,7 +120,6 @@ namespace Impostor.Server.Net.Manager return null; } - // TODO: Prevent duplicates when using server redirector using INodeProvider. var (success, game) = await TryCreateAsync(options, @event.GameCode); for (var i = 0; i < 10 && !success; i++) @@ -148,15 +143,13 @@ namespace Impostor.Server.Net.Manager private async ValueTask<(bool Success, Game? Game)> TryCreateAsync(GameOptionsData options, GameCode? desiredGameCode = null) { var gameCode = desiredGameCode ?? _gameCodeFactory.Create(); - var gameCodeStr = gameCode.Code; var game = ActivatorUtilities.CreateInstance(_serviceProvider, _publicIp, gameCode, options); - if (await _nodeLocator.ExistsAsync(gameCodeStr) || !_games.TryAdd(gameCode, game)) + if (!_games.TryAdd(gameCode, game)) { return (false, null); } - await _nodeLocator.SaveAsync(gameCodeStr, _publicIp); _logger.LogDebug("Created game with code {0}.", game.Code); await _eventManager.CallAsync(new GameCreatedEvent(game)); diff --git a/src/Impostor.Server/Net/MatchmakerService.cs b/src/Impostor.Server/Net/MatchmakerService.cs index 35ff6df..6973ba3 100644 --- a/src/Impostor.Server/Net/MatchmakerService.cs +++ b/src/Impostor.Server/Net/MatchmakerService.cs @@ -12,18 +12,15 @@ namespace Impostor.Server.Net { private readonly ILogger _logger; private readonly ServerConfig _serverConfig; - private readonly ServerRedirectorConfig _redirectorConfig; private readonly Matchmaker _matchmaker; public MatchmakerService( ILogger logger, IOptions serverConfig, - IOptions redirectorConfig, Matchmaker matchmaker) { _logger = logger; _serverConfig = serverConfig.Value; - _redirectorConfig = redirectorConfig.Value; _matchmaker = matchmaker; } @@ -39,13 +36,6 @@ namespace Impostor.Server.Net endpoint.Port, _serverConfig.ResolvePublicIp(), _serverConfig.PublicPort); - - if (_redirectorConfig.Enabled) - { - _logger.LogWarning(_redirectorConfig.Master - ? "Server redirection is enabled as master, this instance will redirect clients to other nodes." - : "Server redirection is enabled as node, this instance will accept clients."); - } } public async Task StopAsync(CancellationToken cancellationToken) diff --git a/src/Impostor.Server/Net/Redirector/ClientRedirector.cs b/src/Impostor.Server/Net/Redirector/ClientRedirector.cs deleted file mode 100644 index 67ad048..0000000 --- a/src/Impostor.Server/Net/Redirector/ClientRedirector.cs +++ /dev/null @@ -1,95 +0,0 @@ -using System.Threading.Tasks; -using Impostor.Api.Config; -using Impostor.Api.Innersloth; -using Impostor.Api.Net.Messages; -using Impostor.Api.Net.Messages.C2S; -using Impostor.Api.Net.Messages.S2C; -using Impostor.Hazel; -using Impostor.Server.Net.Hazel; -using Impostor.Server.Net.Manager; -using Serilog; - -namespace Impostor.Server.Net.Redirector -{ - internal class ClientRedirector : ClientBase - { - private static readonly ILogger Logger = Log.ForContext(); - - private readonly ClientManager _clientManager; - private readonly INodeProvider _nodeProvider; - private readonly INodeLocator _nodeLocator; - - public ClientRedirector( - string name, - int gameVersion, - Language language, - QuickChatModes chatMode, - PlatformSpecificData platformSpecificData, - HazelConnection connection, - ClientManager clientManager, - INodeProvider nodeProvider, - INodeLocator nodeLocator) - : base(name, gameVersion, language, chatMode, platformSpecificData, connection) - { - _clientManager = clientManager; - _nodeProvider = nodeProvider; - _nodeLocator = nodeLocator; - } - - public override async ValueTask HandleMessageAsync(IMessageReader reader, MessageType messageType) - { - var flag = reader.Tag; - - Logger.Verbose("Server got {0}.", flag); - - switch (flag) - { - case MessageFlags.HostGame: - { - using var packet = MessageWriter.Get(MessageType.Reliable); - Message13RedirectS2C.Serialize(packet, false, _nodeProvider.Get()); - await Connection.SendAsync(packet); - break; - } - - case MessageFlags.JoinGame: - { - Message01JoinGameC2S.Deserialize(reader, out var gameCode); - - var endpoint = await _nodeLocator.FindAsync(gameCode); - if (endpoint == null) - { - await DisconnectAsync(DisconnectReason.GameMissing); - } - else - { - using var packet = MessageWriter.Get(MessageType.Reliable); - Message13RedirectS2C.Serialize(packet, false, endpoint); - await Connection.SendAsync(packet); - } - - break; - } - - case MessageFlags.GetGameListV2: - { - // TODO: Implement. - await DisconnectAsync(DisconnectReason.Custom, DisconnectMessages.NotImplemented); - break; - } - - default: - { - Logger.Warning("Received unsupported message flag on the redirector ({0}).", flag); - break; - } - } - } - - public override ValueTask HandleDisconnectAsync(string reason) - { - _clientManager.Remove(this); - return default; - } - } -} diff --git a/src/Impostor.Server/Net/Redirector/INodeLocator.cs b/src/Impostor.Server/Net/Redirector/INodeLocator.cs deleted file mode 100644 index 1c3391a..0000000 --- a/src/Impostor.Server/Net/Redirector/INodeLocator.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System.Net; -using System.Threading.Tasks; - -namespace Impostor.Server.Net.Redirector -{ - public interface INodeLocator - { - ValueTask FindAsync(string gameCode); - - ValueTask SaveAsync(string gameCode, IPEndPoint endPoint); - - ValueTask RemoveAsync(string gameCode); - } -} diff --git a/src/Impostor.Server/Net/Redirector/INodeProvider.cs b/src/Impostor.Server/Net/Redirector/INodeProvider.cs deleted file mode 100644 index fb7240c..0000000 --- a/src/Impostor.Server/Net/Redirector/INodeProvider.cs +++ /dev/null @@ -1,9 +0,0 @@ -using System.Net; - -namespace Impostor.Server.Net.Redirector -{ - internal interface INodeProvider - { - IPEndPoint Get(); - } -} diff --git a/src/Impostor.Server/Net/Redirector/NodeLocatorNoOp.cs b/src/Impostor.Server/Net/Redirector/NodeLocatorNoOp.cs deleted file mode 100644 index baef6db..0000000 --- a/src/Impostor.Server/Net/Redirector/NodeLocatorNoOp.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System.Net; -using System.Threading.Tasks; - -namespace Impostor.Server.Net.Redirector -{ - public class NodeLocatorNoOp : INodeLocator - { - public ValueTask FindAsync(string gameCode) => ValueTask.FromResult(default(IPEndPoint)); - - public ValueTask SaveAsync(string gameCode, IPEndPoint endPoint) => ValueTask.CompletedTask; - - public ValueTask RemoveAsync(string gameCode) => ValueTask.CompletedTask; - } -} diff --git a/src/Impostor.Server/Net/Redirector/NodeLocatorRedis.cs b/src/Impostor.Server/Net/Redirector/NodeLocatorRedis.cs deleted file mode 100644 index f4595e3..0000000 --- a/src/Impostor.Server/Net/Redirector/NodeLocatorRedis.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System; -using System.Net; -using System.Threading.Tasks; -using Microsoft.Extensions.Caching.Distributed; -using Microsoft.Extensions.Logging; - -namespace Impostor.Server.Net.Redirector -{ - public class NodeLocatorRedis : INodeLocator - { - private readonly IDistributedCache _cache; - - public NodeLocatorRedis(ILogger logger, IDistributedCache cache) - { - logger.LogWarning("Using the redis NodeLocator."); - _cache = cache; - } - - public async ValueTask FindAsync(string gameCode) - { - var entry = await _cache.GetStringAsync(gameCode); - if (entry == null) - { - return null; - } - - return IPEndPoint.Parse(entry); - } - - public async ValueTask SaveAsync(string gameCode, IPEndPoint endPoint) - { - await _cache.SetStringAsync(gameCode, endPoint.ToString(), new DistributedCacheEntryOptions - { - SlidingExpiration = TimeSpan.FromHours(1), - }); - } - - public async ValueTask RemoveAsync(string gameCode) - { - await _cache.RemoveAsync(gameCode); - } - } -} diff --git a/src/Impostor.Server/Net/Redirector/NodeLocatorUDP.cs b/src/Impostor.Server/Net/Redirector/NodeLocatorUDP.cs deleted file mode 100644 index 4b640a9..0000000 --- a/src/Impostor.Server/Net/Redirector/NodeLocatorUDP.cs +++ /dev/null @@ -1,136 +0,0 @@ -using System; -using System.Collections.Concurrent; -using System.Net; -using System.Net.Sockets; -using System.Text; -using System.Threading.Tasks; -using Impostor.Api.Config; -using Microsoft.Extensions.Logging; -using Microsoft.Extensions.Options; - -namespace Impostor.Server.Net.Redirector -{ - public class NodeLocatorUdp : INodeLocator, IDisposable - { - private readonly ILogger _logger; - private readonly bool _isMaster; - private readonly IPEndPoint? _server; - private readonly UdpClient? _client; - private readonly ConcurrentDictionary? _availableNodes; - - public NodeLocatorUdp(ILogger logger, IOptions config) - { - _logger = logger; - - if (config.Value.Master) - { - _isMaster = true; - _availableNodes = new ConcurrentDictionary(); - } - else - { - _isMaster = false; - - if (!IPEndPoint.TryParse(config.Value.Locator!.UdpMasterEndpoint, out var endpoint)) - { - throw new ArgumentException("UdpMasterEndpoint should be in the ip:port format."); - } - - _logger.LogWarning("Node server will send updates to {0}.", endpoint); - _server = endpoint; - _client = new UdpClient(); - - try - { - _client.DontFragment = true; - } - catch (SocketException) - { - } - } - } - - public void Update(IPEndPoint ip, string gameCode) - { - _logger.LogDebug("Received update {0} -> {1}", gameCode, ip); - - _availableNodes!.AddOrUpdate( - gameCode, - s => new AvailableNode(ip, DateTimeOffset.UtcNow), - (s, node) => - { - node.Endpoint = ip; - node.LastUpdated = DateTimeOffset.UtcNow; - - return node; - }); - - foreach (var (key, value) in _availableNodes) - { - if (value.Expired) - { - _availableNodes.TryRemove(key, out _); - } - } - } - - public ValueTask FindAsync(string gameCode) - { - if (!_isMaster) - { - return ValueTask.FromResult(default(IPEndPoint)); - } - - if (_availableNodes!.TryGetValue(gameCode, out var node)) - { - if (node.Expired) - { - _availableNodes.TryRemove(gameCode, out _); - return ValueTask.FromResult(default(IPEndPoint)); - } - - return ValueTask.FromResult(node.Endpoint)!; - } - - return ValueTask.FromResult(default(IPEndPoint)); - } - - public ValueTask RemoveAsync(string gameCode) - { - if (!_isMaster) - { - return ValueTask.CompletedTask; - } - - _availableNodes!.TryRemove(gameCode, out _); - return ValueTask.CompletedTask; - } - - public ValueTask SaveAsync(string gameCode, IPEndPoint endPoint) - { - var data = Encoding.UTF8.GetBytes($"{gameCode},{endPoint}"); - _client!.Send(data, data.Length, _server); - return ValueTask.CompletedTask; - } - - public void Dispose() - { - _client?.Dispose(); - } - - private class AvailableNode - { - public AvailableNode(IPEndPoint endpoint, DateTimeOffset lastUpdated) - { - Endpoint = endpoint; - LastUpdated = lastUpdated; - } - - public IPEndPoint Endpoint { get; set; } - - public DateTimeOffset LastUpdated { get; set; } - - public bool Expired => LastUpdated < DateTimeOffset.UtcNow.AddHours(-1); - } - } -} diff --git a/src/Impostor.Server/Net/Redirector/NodeLocatorUDPService.cs b/src/Impostor.Server/Net/Redirector/NodeLocatorUDPService.cs deleted file mode 100644 index fba9ac1..0000000 --- a/src/Impostor.Server/Net/Redirector/NodeLocatorUDPService.cs +++ /dev/null @@ -1,101 +0,0 @@ -using System; -using System.Net; -using System.Net.Sockets; -using System.Text; -using System.Threading; -using System.Threading.Tasks; -using Impostor.Api.Config; -using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Logging; -using Microsoft.Extensions.Options; - -namespace Impostor.Server.Net.Redirector -{ - public class NodeLocatorUdpService : BackgroundService - { - private readonly NodeLocatorUdp _nodeLocator; - private readonly ILogger _logger; - private readonly UdpClient _client; - - public NodeLocatorUdpService( - INodeLocator nodeLocator, - ILogger logger, - IOptions options) - { - _nodeLocator = (NodeLocatorUdp)nodeLocator; - _logger = logger; - - if (!IPEndPoint.TryParse(options.Value.Locator!.UdpMasterEndpoint, out var endpoint)) - { - throw new ArgumentException("UdpMasterEndpoint should be in the ip:port format."); - } - - _client = new UdpClient(endpoint); - - try - { - _client.DontFragment = true; - } - catch (SocketException) - { - } - } - - protected override async Task ExecuteAsync(CancellationToken stoppingToken) - { - _logger.LogWarning("Master server is listening for node updates on {0}.", _client.Client.LocalEndPoint); - - stoppingToken.Register(() => - { - _client.Close(); - _client.Dispose(); - }); - - try - { - while (!stoppingToken.IsCancellationRequested) - { - // Receive data from a node. - UdpReceiveResult data; - - try - { - data = await _client.ReceiveAsync(); - } - catch (ObjectDisposedException) - { - break; - } - - // Check if data is valid. - if (data.Buffer.Length == 0) - { - break; - } - - // Parse the data. - var message = Encoding.UTF8.GetString(data.Buffer); - var parts = message.Split(',', 2); - if (parts.Length != 2) - { - continue; - } - - if (!IPEndPoint.TryParse(parts[1], out var ipEndPoint)) - { - continue; - } - - // Update the NodeLocator. - _nodeLocator.Update(ipEndPoint, parts[0]); - } - } - catch (Exception e) - { - _logger.LogError(e, "Error in NodeLocatorUDPService."); - } - - _logger.LogWarning("Master server node update listener is stopping."); - } - } -} diff --git a/src/Impostor.Server/Net/Redirector/NodeProviderConfig.cs b/src/Impostor.Server/Net/Redirector/NodeProviderConfig.cs deleted file mode 100644 index 7111bd0..0000000 --- a/src/Impostor.Server/Net/Redirector/NodeProviderConfig.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System.Collections.Generic; -using System.Net; -using Impostor.Api.Config; -using Microsoft.Extensions.Options; - -namespace Impostor.Server.Net.Redirector -{ - internal class NodeProviderConfig : INodeProvider - { - private readonly List _nodes; - private readonly object _lock; - private int _currentIndex; - - public NodeProviderConfig(IOptions redirectorConfig) - { - _nodes = new List(); - _lock = new object(); - - if (redirectorConfig.Value.Nodes != null) - { - foreach (var node in redirectorConfig.Value.Nodes) - { - _nodes.Add(new IPEndPoint(IPAddress.Parse(node.Ip), node.Port)); - } - } - } - - public IPEndPoint Get() - { - lock (_lock) - { - var node = _nodes[_currentIndex++]; - - if (_currentIndex == _nodes.Count) - { - _currentIndex = 0; - } - - return node; - } - } - } -} diff --git a/src/Impostor.Server/Program.cs b/src/Impostor.Server/Program.cs index 0ab343f..128ba5a 100644 --- a/src/Impostor.Server/Program.cs +++ b/src/Impostor.Server/Program.cs @@ -17,7 +17,6 @@ using Impostor.Server.Net.Custom; using Impostor.Server.Net.Factories; using Impostor.Server.Net.Manager; using Impostor.Server.Net.Messages; -using Impostor.Server.Net.Redirector; using Impostor.Server.Plugins; using Impostor.Server.Recorder; using Impostor.Server.Utils; @@ -92,10 +91,6 @@ namespace Impostor.Server .GetSection(DebugConfig.Section) .Get() ?? new DebugConfig(); - var redirector = host.Configuration - .GetSection(ServerRedirectorConfig.Section) - .Get() ?? new ServerRedirectorConfig(); - services.AddSingleton(); services.AddSingleton(p => p.GetRequiredService()); services.AddSingleton(); @@ -104,82 +99,32 @@ namespace Impostor.Server services.Configure(host.Configuration.GetSection(AntiCheatConfig.Section)); services.Configure(host.Configuration.GetSection(CompatibilityConfig.Section)); services.Configure(host.Configuration.GetSection(ServerConfig.Section)); - services.Configure(host.Configuration.GetSection(ServerRedirectorConfig.Section)); - - if (redirector.Enabled) - { - if (!string.IsNullOrEmpty(redirector.Locator?.Redis)) - { - // When joining a game, it retrieves the game server ip from redis. - // When a game has been created on this node, it stores the game code with its ip in redis. - services.AddSingleton(); - - // Dependency for the NodeLocatorRedis. - services.AddStackExchangeRedisCache(options => - { - options.Configuration = redirector.Locator.Redis; - options.InstanceName = "ImpostorRedis"; - }); - } - else if (!string.IsNullOrEmpty(redirector.Locator?.UdpMasterEndpoint)) - { - services.AddSingleton(); - - if (redirector.Master) - { - services.AddHostedService(); - } - } - else - { - throw new Exception("Missing a valid NodeLocator config."); - } - - // Use the configuration as source for the list of nodes to provide - // when creating a game. - services.AddSingleton(); - } - else - { - // Redirector is not enabled but the dependency is still required. - // So we provide one that ignores all calls. - services.AddSingleton(); - } services.AddSingleton(); services.AddSingleton(p => p.GetRequiredService()); - if (redirector.Enabled && redirector.Master) + if (debug.GameRecorderEnabled) { - services.AddSingleton>(); - - // For a master server, we don't need a GameManager. + services.AddSingleton(new DefaultObjectPoolProvider()); + services.AddSingleton>(serviceProvider => + { + var provider = serviceProvider.GetRequiredService(); + var policy = new PacketSerializationContextPooledObjectPolicy(); + return provider.Create(policy); + }); + + services.AddSingleton(); + services.AddHostedService(sp => sp.GetRequiredService()); + services.AddSingleton>(); } else { - if (debug.GameRecorderEnabled) - { - services.AddSingleton(new DefaultObjectPoolProvider()); - services.AddSingleton>(serviceProvider => - { - var provider = serviceProvider.GetRequiredService(); - var policy = new PacketSerializationContextPooledObjectPolicy(); - return provider.Create(policy); - }); - - services.AddSingleton(); - services.AddHostedService(sp => sp.GetRequiredService()); - services.AddSingleton>(); - } - else - { - services.AddSingleton>(); - } - - services.AddSingleton(); - services.AddSingleton(p => p.GetRequiredService()); + services.AddSingleton>(); } + services.AddSingleton(); + services.AddSingleton(p => p.GetRequiredService()); + services.AddEventPools(); services.AddHazel(); services.AddSingleton, CustomMessageManager>(); diff --git a/src/Impostor.Server/config-full.json b/src/Impostor.Server/config-full.json index 5e583fb..97f62a0 100644 --- a/src/Impostor.Server/config-full.json +++ b/src/Impostor.Server/config-full.json @@ -9,20 +9,6 @@ "Enabled": true, "BanIpFromGame": true }, - "ServerRedirector": { - "Enabled": false, - "Master": true, - "Locator": { - "Redis": "127.0.0.1.6379", - "UdpMasterEndpoint": "127.0.0.1:32320" - }, - "Nodes": [ - { - "Ip": "127.0.0.1", - "Port": 22024 - } - ] - }, "Compatibility": { "AllowFutureGameVersions": false, "AllowVersionMixing": false diff --git a/src/Impostor.Server/packages.lock.json b/src/Impostor.Server/packages.lock.json index 72f9504..b28bd0f 100644 --- a/src/Impostor.Server/packages.lock.json +++ b/src/Impostor.Server/packages.lock.json @@ -14,18 +14,6 @@ "Serilog": "2.12.0" } }, - "Microsoft.Extensions.Caching.StackExchangeRedis": { - "type": "Direct", - "requested": "[7.0.1, )", - "resolved": "7.0.1", - "contentHash": "YtwtXPy5sBBkfj7kZkDEHwiMxgUZC0Coqq0x9ViL2zvj2nHBesNvJz/gFCLsFzEvw8UFfzHT1KGKG/QGI2cLVg==", - "dependencies": { - "Microsoft.Extensions.Caching.Abstractions": "7.0.0", - "Microsoft.Extensions.Logging.Abstractions": "7.0.0", - "Microsoft.Extensions.Options": "7.0.0", - "StackExchange.Redis": "2.2.4" - } - }, "Microsoft.Extensions.FileSystemGlobbing": { "type": "Direct", "requested": "[7.0.0, )", @@ -111,14 +99,6 @@ "resolved": "1.0.0", "contentHash": "x56AEsY5fKU2Z5O7ZrzEqKfr62kq/C05Aevcciwz5yMfOQlpwuFI1awgNGJsoe+bcx+XnFc3+l+eadtY72aZsg==" }, - "Microsoft.Extensions.Caching.Abstractions": { - "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "IeimUd0TNbhB4ded3AbgBLQv2SnsiVugDyGV1MvspQFVlA07nDC7Zul7kcwH5jWN3JiTcp/ySE83AIJo8yfKjg==", - "dependencies": { - "Microsoft.Extensions.Primitives": "7.0.0" - } - }, "Microsoft.Extensions.Configuration": { "type": "Transitive", "resolved": "7.0.0", @@ -351,36 +331,6 @@ "resolved": "7.0.0", "contentHash": "um1KU5kxcRp3CNuI8o/GrZtD4AIOXDk+RLsytjZ9QPok3ttLUelLKpilVPuaFT3TFjOhSibUAso0odbOaCDj3Q==" }, - "Microsoft.NETCore.Platforms": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==" - }, - "Microsoft.Win32.Registry": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", - "dependencies": { - "System.Security.AccessControl": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "Microsoft.Win32.SystemEvents": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "Bh6blKG8VAKvXiLe2L+sEsn62nc1Ij34MrNxepD2OCrS5cpCwQa9MeLyhVQPQ/R4Wlzwuy6wMK8hLb11QPDRsQ==", - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0" - } - }, - "Pipelines.Sockets.Unofficial": { - "type": "Transitive", - "resolved": "2.2.0", - "contentHash": "7hzHplEIVOGBl5zOQZGX/DiJDHjq+RVRVrYgDiqXb6RriqWAdacXxp+XO9WSrATCEXyNOUOQg9aqQArsjase/A==", - "dependencies": { - "System.IO.Pipelines": "5.0.0" - } - }, "Serilog": { "type": "Transitive", "resolved": "2.12.0", @@ -395,81 +345,11 @@ "Serilog": "2.9.0" } }, - "StackExchange.Redis": { - "type": "Transitive", - "resolved": "2.2.4", - "contentHash": "wM0OuRyRaZTFndFRjIOvas4jjkeclRJsmNm0eAx5tOju3SQisrLubNaSFT/dBypi4Vh1n7nYc1gWpw9L7ernOg==", - "dependencies": { - "Pipelines.Sockets.Unofficial": "2.2.0", - "System.Diagnostics.PerformanceCounter": "5.0.0" - } - }, - "System.Configuration.ConfigurationManager": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "aM7cbfEfVNlEEOj3DsZP+2g9NRwbkyiAv2isQEzw7pnkDg9ekCU2m1cdJLM02Uq691OaCS91tooaxcEn8d0q5w==", - "dependencies": { - "System.Security.Cryptography.ProtectedData": "5.0.0", - "System.Security.Permissions": "5.0.0" - } - }, "System.Diagnostics.EventLog": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "eUDP47obqQm3SFJfP6z+Fx2nJ4KKTQbXB4Q9Uesnzw9SbYdhjyoGXuvDn/gEmFY6N5Z3bFFbpAQGA7m6hrYJCw==" }, - "System.Diagnostics.PerformanceCounter": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "kcQWWtGVC3MWMNXdMDWfrmIlFZZ2OdoeT6pSNVRtk9+Sa7jwdPiMlNwb0ZQcS7NRlT92pCfmjRtkSWUW3RAKwg==", - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.Win32.Registry": "5.0.0", - "System.Configuration.ConfigurationManager": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Drawing.Common": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "SztFwAnpfKC8+sEKXAFxCBWhKQaEd97EiOL7oZJZP56zbqnLpmxACWA8aGseaUExciuEAUuR9dY8f7HkTRAdnw==", - "dependencies": { - "Microsoft.Win32.SystemEvents": "5.0.0" - } - }, - "System.IO.Pipelines": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "irMYm3vhVgRsYvHTU5b2gsT2CwT/SMM6LZFzuJjpIvT5Z4CshxNsaoBC1X/LltwuR3Opp8d6jOS/60WwOb7Q2Q==" - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Cryptography.ProtectedData": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "HGxMSAFAPLNoxBvSfW08vHde0F9uh7BjASwu6JF9JnXuEPhCY3YUqURn0+bQV/4UWeaqymmrHWV+Aw9riQCtCA==" - }, - "System.Security.Permissions": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "uE8juAhEkp7KDBCdjDIE3H9R1HJuEHqeqX8nLX9gmYKWwsqk3T5qZlPx8qle5DPKimC/Fy3AFTdV7HamgCh9qQ==", - "dependencies": { - "System.Security.AccessControl": "5.0.0", - "System.Windows.Extensions": "5.0.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - }, "System.Text.Encodings.Web": { "type": "Transitive", "resolved": "7.0.0", @@ -483,14 +363,6 @@ "System.Text.Encodings.Web": "7.0.0" } }, - "System.Windows.Extensions": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "c1ho9WU9ZxMZawML+ssPKZfdnrg/OjR3pe0m9v8230z3acqphwvPJqzAkH54xRYm5ntZHGG1EPP3sux9H3qSPg==", - "dependencies": { - "System.Drawing.Common": "5.0.0" - } - }, "impostor.api": { "type": "Project", "dependencies": { @@ -501,378 +373,63 @@ } }, "net7.0/linux-arm": { - "Microsoft.Win32.Registry": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", - "dependencies": { - "System.Security.AccessControl": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "Microsoft.Win32.SystemEvents": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "Bh6blKG8VAKvXiLe2L+sEsn62nc1Ij34MrNxepD2OCrS5cpCwQa9MeLyhVQPQ/R4Wlzwuy6wMK8hLb11QPDRsQ==", - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0" - } - }, "System.Diagnostics.EventLog": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "eUDP47obqQm3SFJfP6z+Fx2nJ4KKTQbXB4Q9Uesnzw9SbYdhjyoGXuvDn/gEmFY6N5Z3bFFbpAQGA7m6hrYJCw==" }, - "System.Diagnostics.PerformanceCounter": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "kcQWWtGVC3MWMNXdMDWfrmIlFZZ2OdoeT6pSNVRtk9+Sa7jwdPiMlNwb0ZQcS7NRlT92pCfmjRtkSWUW3RAKwg==", - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.Win32.Registry": "5.0.0", - "System.Configuration.ConfigurationManager": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Drawing.Common": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "SztFwAnpfKC8+sEKXAFxCBWhKQaEd97EiOL7oZJZP56zbqnLpmxACWA8aGseaUExciuEAUuR9dY8f7HkTRAdnw==", - "dependencies": { - "Microsoft.Win32.SystemEvents": "5.0.0" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Cryptography.ProtectedData": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "HGxMSAFAPLNoxBvSfW08vHde0F9uh7BjASwu6JF9JnXuEPhCY3YUqURn0+bQV/4UWeaqymmrHWV+Aw9riQCtCA==" - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - }, "System.Text.Encodings.Web": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "OP6umVGxc0Z0MvZQBVigj4/U31Pw72ITihDWP9WiWDm+q5aoe0GaJivsfYGq53o6dxH7DcXWiCTl7+0o2CGdmg==" - }, - "System.Windows.Extensions": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "c1ho9WU9ZxMZawML+ssPKZfdnrg/OjR3pe0m9v8230z3acqphwvPJqzAkH54xRYm5ntZHGG1EPP3sux9H3qSPg==", - "dependencies": { - "System.Drawing.Common": "5.0.0" - } } }, "net7.0/linux-arm64": { - "Microsoft.Win32.Registry": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", - "dependencies": { - "System.Security.AccessControl": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "Microsoft.Win32.SystemEvents": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "Bh6blKG8VAKvXiLe2L+sEsn62nc1Ij34MrNxepD2OCrS5cpCwQa9MeLyhVQPQ/R4Wlzwuy6wMK8hLb11QPDRsQ==", - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0" - } - }, "System.Diagnostics.EventLog": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "eUDP47obqQm3SFJfP6z+Fx2nJ4KKTQbXB4Q9Uesnzw9SbYdhjyoGXuvDn/gEmFY6N5Z3bFFbpAQGA7m6hrYJCw==" }, - "System.Diagnostics.PerformanceCounter": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "kcQWWtGVC3MWMNXdMDWfrmIlFZZ2OdoeT6pSNVRtk9+Sa7jwdPiMlNwb0ZQcS7NRlT92pCfmjRtkSWUW3RAKwg==", - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.Win32.Registry": "5.0.0", - "System.Configuration.ConfigurationManager": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Drawing.Common": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "SztFwAnpfKC8+sEKXAFxCBWhKQaEd97EiOL7oZJZP56zbqnLpmxACWA8aGseaUExciuEAUuR9dY8f7HkTRAdnw==", - "dependencies": { - "Microsoft.Win32.SystemEvents": "5.0.0" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Cryptography.ProtectedData": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "HGxMSAFAPLNoxBvSfW08vHde0F9uh7BjASwu6JF9JnXuEPhCY3YUqURn0+bQV/4UWeaqymmrHWV+Aw9riQCtCA==" - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - }, "System.Text.Encodings.Web": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "OP6umVGxc0Z0MvZQBVigj4/U31Pw72ITihDWP9WiWDm+q5aoe0GaJivsfYGq53o6dxH7DcXWiCTl7+0o2CGdmg==" - }, - "System.Windows.Extensions": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "c1ho9WU9ZxMZawML+ssPKZfdnrg/OjR3pe0m9v8230z3acqphwvPJqzAkH54xRYm5ntZHGG1EPP3sux9H3qSPg==", - "dependencies": { - "System.Drawing.Common": "5.0.0" - } } }, "net7.0/linux-x64": { - "Microsoft.Win32.Registry": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", - "dependencies": { - "System.Security.AccessControl": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "Microsoft.Win32.SystemEvents": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "Bh6blKG8VAKvXiLe2L+sEsn62nc1Ij34MrNxepD2OCrS5cpCwQa9MeLyhVQPQ/R4Wlzwuy6wMK8hLb11QPDRsQ==", - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0" - } - }, "System.Diagnostics.EventLog": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "eUDP47obqQm3SFJfP6z+Fx2nJ4KKTQbXB4Q9Uesnzw9SbYdhjyoGXuvDn/gEmFY6N5Z3bFFbpAQGA7m6hrYJCw==" }, - "System.Diagnostics.PerformanceCounter": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "kcQWWtGVC3MWMNXdMDWfrmIlFZZ2OdoeT6pSNVRtk9+Sa7jwdPiMlNwb0ZQcS7NRlT92pCfmjRtkSWUW3RAKwg==", - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.Win32.Registry": "5.0.0", - "System.Configuration.ConfigurationManager": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Drawing.Common": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "SztFwAnpfKC8+sEKXAFxCBWhKQaEd97EiOL7oZJZP56zbqnLpmxACWA8aGseaUExciuEAUuR9dY8f7HkTRAdnw==", - "dependencies": { - "Microsoft.Win32.SystemEvents": "5.0.0" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Cryptography.ProtectedData": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "HGxMSAFAPLNoxBvSfW08vHde0F9uh7BjASwu6JF9JnXuEPhCY3YUqURn0+bQV/4UWeaqymmrHWV+Aw9riQCtCA==" - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - }, "System.Text.Encodings.Web": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "OP6umVGxc0Z0MvZQBVigj4/U31Pw72ITihDWP9WiWDm+q5aoe0GaJivsfYGq53o6dxH7DcXWiCTl7+0o2CGdmg==" - }, - "System.Windows.Extensions": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "c1ho9WU9ZxMZawML+ssPKZfdnrg/OjR3pe0m9v8230z3acqphwvPJqzAkH54xRYm5ntZHGG1EPP3sux9H3qSPg==", - "dependencies": { - "System.Drawing.Common": "5.0.0" - } } }, "net7.0/osx-x64": { - "Microsoft.Win32.Registry": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", - "dependencies": { - "System.Security.AccessControl": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "Microsoft.Win32.SystemEvents": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "Bh6blKG8VAKvXiLe2L+sEsn62nc1Ij34MrNxepD2OCrS5cpCwQa9MeLyhVQPQ/R4Wlzwuy6wMK8hLb11QPDRsQ==", - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0" - } - }, "System.Diagnostics.EventLog": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "eUDP47obqQm3SFJfP6z+Fx2nJ4KKTQbXB4Q9Uesnzw9SbYdhjyoGXuvDn/gEmFY6N5Z3bFFbpAQGA7m6hrYJCw==" }, - "System.Diagnostics.PerformanceCounter": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "kcQWWtGVC3MWMNXdMDWfrmIlFZZ2OdoeT6pSNVRtk9+Sa7jwdPiMlNwb0ZQcS7NRlT92pCfmjRtkSWUW3RAKwg==", - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.Win32.Registry": "5.0.0", - "System.Configuration.ConfigurationManager": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Drawing.Common": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "SztFwAnpfKC8+sEKXAFxCBWhKQaEd97EiOL7oZJZP56zbqnLpmxACWA8aGseaUExciuEAUuR9dY8f7HkTRAdnw==", - "dependencies": { - "Microsoft.Win32.SystemEvents": "5.0.0" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Cryptography.ProtectedData": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "HGxMSAFAPLNoxBvSfW08vHde0F9uh7BjASwu6JF9JnXuEPhCY3YUqURn0+bQV/4UWeaqymmrHWV+Aw9riQCtCA==" - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - }, "System.Text.Encodings.Web": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "OP6umVGxc0Z0MvZQBVigj4/U31Pw72ITihDWP9WiWDm+q5aoe0GaJivsfYGq53o6dxH7DcXWiCTl7+0o2CGdmg==" - }, - "System.Windows.Extensions": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "c1ho9WU9ZxMZawML+ssPKZfdnrg/OjR3pe0m9v8230z3acqphwvPJqzAkH54xRYm5ntZHGG1EPP3sux9H3qSPg==", - "dependencies": { - "System.Drawing.Common": "5.0.0" - } } }, "net7.0/win-x64": { - "Microsoft.Win32.Registry": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", - "dependencies": { - "System.Security.AccessControl": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "Microsoft.Win32.SystemEvents": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "Bh6blKG8VAKvXiLe2L+sEsn62nc1Ij34MrNxepD2OCrS5cpCwQa9MeLyhVQPQ/R4Wlzwuy6wMK8hLb11QPDRsQ==", - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0" - } - }, "System.Diagnostics.EventLog": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "eUDP47obqQm3SFJfP6z+Fx2nJ4KKTQbXB4Q9Uesnzw9SbYdhjyoGXuvDn/gEmFY6N5Z3bFFbpAQGA7m6hrYJCw==" }, - "System.Diagnostics.PerformanceCounter": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "kcQWWtGVC3MWMNXdMDWfrmIlFZZ2OdoeT6pSNVRtk9+Sa7jwdPiMlNwb0ZQcS7NRlT92pCfmjRtkSWUW3RAKwg==", - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.Win32.Registry": "5.0.0", - "System.Configuration.ConfigurationManager": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Drawing.Common": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "SztFwAnpfKC8+sEKXAFxCBWhKQaEd97EiOL7oZJZP56zbqnLpmxACWA8aGseaUExciuEAUuR9dY8f7HkTRAdnw==", - "dependencies": { - "Microsoft.Win32.SystemEvents": "5.0.0" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Cryptography.ProtectedData": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "HGxMSAFAPLNoxBvSfW08vHde0F9uh7BjASwu6JF9JnXuEPhCY3YUqURn0+bQV/4UWeaqymmrHWV+Aw9riQCtCA==" - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - }, "System.Text.Encodings.Web": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "OP6umVGxc0Z0MvZQBVigj4/U31Pw72ITihDWP9WiWDm+q5aoe0GaJivsfYGq53o6dxH7DcXWiCTl7+0o2CGdmg==" - }, - "System.Windows.Extensions": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "c1ho9WU9ZxMZawML+ssPKZfdnrg/OjR3pe0m9v8230z3acqphwvPJqzAkH54xRYm5ntZHGG1EPP3sux9H3qSPg==", - "dependencies": { - "System.Drawing.Common": "5.0.0" - } } } } diff --git a/src/Impostor.Tests/packages.lock.json b/src/Impostor.Tests/packages.lock.json index 185fb1f..fcf2b2f 100644 --- a/src/Impostor.Tests/packages.lock.json +++ b/src/Impostor.Tests/packages.lock.json @@ -66,25 +66,6 @@ "resolved": "17.4.1", "contentHash": "T21KxaiFawbrrjm0uXjxAStXaBm5P9H6Nnf8BUtBTvIpd8q57lrChVBCY2dnazmSu9/kuX4z5+kAOT78Dod7vA==" }, - "Microsoft.Extensions.Caching.Abstractions": { - "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "IeimUd0TNbhB4ded3AbgBLQv2SnsiVugDyGV1MvspQFVlA07nDC7Zul7kcwH5jWN3JiTcp/ySE83AIJo8yfKjg==", - "dependencies": { - "Microsoft.Extensions.Primitives": "7.0.0" - } - }, - "Microsoft.Extensions.Caching.StackExchangeRedis": { - "type": "Transitive", - "resolved": "7.0.1", - "contentHash": "YtwtXPy5sBBkfj7kZkDEHwiMxgUZC0Coqq0x9ViL2zvj2nHBesNvJz/gFCLsFzEvw8UFfzHT1KGKG/QGI2cLVg==", - "dependencies": { - "Microsoft.Extensions.Caching.Abstractions": "7.0.0", - "Microsoft.Extensions.Logging.Abstractions": "7.0.0", - "Microsoft.Extensions.Options": "7.0.0", - "StackExchange.Redis": "2.2.4" - } - }, "Microsoft.Extensions.Configuration": { "type": "Transitive", "resolved": "7.0.0", @@ -357,8 +338,8 @@ }, "Microsoft.NETCore.Platforms": { "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==" + "resolved": "1.1.0", + "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" }, "Microsoft.NETCore.Targets": { "type": "Transitive", @@ -393,23 +374,6 @@ "System.Runtime": "4.3.0" } }, - "Microsoft.Win32.Registry": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", - "dependencies": { - "System.Security.AccessControl": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "Microsoft.Win32.SystemEvents": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "Bh6blKG8VAKvXiLe2L+sEsn62nc1Ij34MrNxepD2OCrS5cpCwQa9MeLyhVQPQ/R4Wlzwuy6wMK8hLb11QPDRsQ==", - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0" - } - }, "NETStandard.Library": { "type": "Transitive", "resolved": "1.6.1", @@ -471,14 +435,6 @@ "resolved": "5.11.0", "contentHash": "eaiXkUjC4NPcquGWzAGMXjuxvLwc6XGKMptSyOGQeT0X70BUZObuybJFZLA0OfTdueLd3US23NBPTBb6iF3V1Q==" }, - "Pipelines.Sockets.Unofficial": { - "type": "Transitive", - "resolved": "2.2.0", - "contentHash": "7hzHplEIVOGBl5zOQZGX/DiJDHjq+RVRVrYgDiqXb6RriqWAdacXxp+XO9WSrATCEXyNOUOQg9aqQArsjase/A==", - "dependencies": { - "System.IO.Pipelines": "5.0.0" - } - }, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.0", @@ -630,15 +586,6 @@ "Serilog": "2.10.0" } }, - "StackExchange.Redis": { - "type": "Transitive", - "resolved": "2.2.4", - "contentHash": "wM0OuRyRaZTFndFRjIOvas4jjkeclRJsmNm0eAx5tOju3SQisrLubNaSFT/dBypi4Vh1n7nYc1gWpw9L7ernOg==", - "dependencies": { - "Pipelines.Sockets.Unofficial": "2.2.0", - "System.Diagnostics.PerformanceCounter": "5.0.0" - } - }, "System.AppContext": { "type": "Transitive", "resolved": "4.3.0", @@ -686,15 +633,6 @@ "System.Threading.Tasks": "4.3.0" } }, - "System.Configuration.ConfigurationManager": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "aM7cbfEfVNlEEOj3DsZP+2g9NRwbkyiAv2isQEzw7pnkDg9ekCU2m1cdJLM02Uq691OaCS91tooaxcEn8d0q5w==", - "dependencies": { - "System.Security.Cryptography.ProtectedData": "5.0.0", - "System.Security.Permissions": "5.0.0" - } - }, "System.Console": { "type": "Transitive", "resolved": "4.3.0", @@ -734,17 +672,6 @@ "resolved": "7.0.0", "contentHash": "eUDP47obqQm3SFJfP6z+Fx2nJ4KKTQbXB4Q9Uesnzw9SbYdhjyoGXuvDn/gEmFY6N5Z3bFFbpAQGA7m6hrYJCw==" }, - "System.Diagnostics.PerformanceCounter": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "kcQWWtGVC3MWMNXdMDWfrmIlFZZ2OdoeT6pSNVRtk9+Sa7jwdPiMlNwb0ZQcS7NRlT92pCfmjRtkSWUW3RAKwg==", - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.Win32.Registry": "5.0.0", - "System.Configuration.ConfigurationManager": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, "System.Diagnostics.Tools": { "type": "Transitive", "resolved": "4.3.0", @@ -765,14 +692,6 @@ "System.Runtime": "4.3.0" } }, - "System.Drawing.Common": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "SztFwAnpfKC8+sEKXAFxCBWhKQaEd97EiOL7oZJZP56zbqnLpmxACWA8aGseaUExciuEAUuR9dY8f7HkTRAdnw==", - "dependencies": { - "Microsoft.Win32.SystemEvents": "5.0.0" - } - }, "System.Globalization": { "type": "Transitive", "resolved": "4.3.0", @@ -880,11 +799,6 @@ "System.Runtime": "4.3.0" } }, - "System.IO.Pipelines": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "irMYm3vhVgRsYvHTU5b2gsT2CwT/SMM6LZFzuJjpIvT5Z4CshxNsaoBC1X/LltwuR3Opp8d6jOS/60WwOb7Q2Q==" - }, "System.Linq": { "type": "Transitive", "resolved": "4.3.0", @@ -1159,15 +1073,6 @@ "System.Runtime.Extensions": "4.3.0" } }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, "System.Security.Cryptography.Algorithms": { "type": "Transitive", "resolved": "4.3.0", @@ -1280,11 +1185,6 @@ "System.Threading.Tasks": "4.3.0" } }, - "System.Security.Cryptography.ProtectedData": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "HGxMSAFAPLNoxBvSfW08vHde0F9uh7BjASwu6JF9JnXuEPhCY3YUqURn0+bQV/4UWeaqymmrHWV+Aw9riQCtCA==" - }, "System.Security.Cryptography.X509Certificates": { "type": "Transitive", "resolved": "4.3.0", @@ -1317,20 +1217,6 @@ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, - "System.Security.Permissions": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "uE8juAhEkp7KDBCdjDIE3H9R1HJuEHqeqX8nLX9gmYKWwsqk3T5qZlPx8qle5DPKimC/Fy3AFTdV7HamgCh9qQ==", - "dependencies": { - "System.Security.AccessControl": "5.0.0", - "System.Windows.Extensions": "5.0.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - }, "System.Text.Encoding": { "type": "Transitive", "resolved": "4.3.0", @@ -1412,14 +1298,6 @@ "System.Runtime": "4.3.0" } }, - "System.Windows.Extensions": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "c1ho9WU9ZxMZawML+ssPKZfdnrg/OjR3pe0m9v8230z3acqphwvPJqzAkH54xRYm5ntZHGG1EPP3sux9H3qSPg==", - "dependencies": { - "System.Drawing.Common": "5.0.0" - } - }, "System.Xml.ReaderWriter": { "type": "Transitive", "resolved": "4.3.0", @@ -1529,7 +1407,6 @@ "dependencies": { "Impostor.Api": "[1.7.3-dev, )", "Impostor.Hazel": "[1.0.0, )", - "Microsoft.Extensions.Caching.StackExchangeRedis": "[7.0.1, )", "Microsoft.Extensions.FileSystemGlobbing": "[7.0.0, )", "Microsoft.Extensions.Hosting": "[7.0.0, )", "Microsoft.Extensions.ObjectPool": "[7.0.1, )", diff --git a/src/Impostor.Tools.ServerReplay/Program.cs b/src/Impostor.Tools.ServerReplay/Program.cs index 6b80c08..dff5615 100644 --- a/src/Impostor.Tools.ServerReplay/Program.cs +++ b/src/Impostor.Tools.ServerReplay/Program.cs @@ -22,7 +22,6 @@ using Impostor.Server.Net; using Impostor.Server.Net.Custom; using Impostor.Server.Net.Factories; using Impostor.Server.Net.Manager; -using Impostor.Server.Net.Redirector; using Impostor.Server.Recorder; using Impostor.Server.Utils; using Impostor.Tools.ServerReplay.Mocks; @@ -112,7 +111,6 @@ namespace Impostor.Tools.ServerReplay services.AddSingleton(); services.AddSingleton>(); - services.AddSingleton(); services.AddSingleton(); services.AddEventPools(); diff --git a/src/Impostor.Tools.ServerReplay/packages.lock.json b/src/Impostor.Tools.ServerReplay/packages.lock.json index e94b6b2..7e02969 100644 --- a/src/Impostor.Tools.ServerReplay/packages.lock.json +++ b/src/Impostor.Tools.ServerReplay/packages.lock.json @@ -27,25 +27,6 @@ "resolved": "1.0.0", "contentHash": "x56AEsY5fKU2Z5O7ZrzEqKfr62kq/C05Aevcciwz5yMfOQlpwuFI1awgNGJsoe+bcx+XnFc3+l+eadtY72aZsg==" }, - "Microsoft.Extensions.Caching.Abstractions": { - "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "IeimUd0TNbhB4ded3AbgBLQv2SnsiVugDyGV1MvspQFVlA07nDC7Zul7kcwH5jWN3JiTcp/ySE83AIJo8yfKjg==", - "dependencies": { - "Microsoft.Extensions.Primitives": "7.0.0" - } - }, - "Microsoft.Extensions.Caching.StackExchangeRedis": { - "type": "Transitive", - "resolved": "7.0.1", - "contentHash": "YtwtXPy5sBBkfj7kZkDEHwiMxgUZC0Coqq0x9ViL2zvj2nHBesNvJz/gFCLsFzEvw8UFfzHT1KGKG/QGI2cLVg==", - "dependencies": { - "Microsoft.Extensions.Caching.Abstractions": "7.0.0", - "Microsoft.Extensions.Logging.Abstractions": "7.0.0", - "Microsoft.Extensions.Options": "7.0.0", - "StackExchange.Redis": "2.2.4" - } - }, "Microsoft.Extensions.Configuration": { "type": "Transitive", "resolved": "7.0.0", @@ -316,36 +297,6 @@ "resolved": "7.0.0", "contentHash": "um1KU5kxcRp3CNuI8o/GrZtD4AIOXDk+RLsytjZ9QPok3ttLUelLKpilVPuaFT3TFjOhSibUAso0odbOaCDj3Q==" }, - "Microsoft.NETCore.Platforms": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==" - }, - "Microsoft.Win32.Registry": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", - "dependencies": { - "System.Security.AccessControl": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "Microsoft.Win32.SystemEvents": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "Bh6blKG8VAKvXiLe2L+sEsn62nc1Ij34MrNxepD2OCrS5cpCwQa9MeLyhVQPQ/R4Wlzwuy6wMK8hLb11QPDRsQ==", - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0" - } - }, - "Pipelines.Sockets.Unofficial": { - "type": "Transitive", - "resolved": "2.2.0", - "contentHash": "7hzHplEIVOGBl5zOQZGX/DiJDHjq+RVRVrYgDiqXb6RriqWAdacXxp+XO9WSrATCEXyNOUOQg9aqQArsjase/A==", - "dependencies": { - "System.IO.Pipelines": "5.0.0" - } - }, "Serilog": { "type": "Transitive", "resolved": "2.12.0", @@ -382,81 +333,11 @@ "Serilog": "2.10.0" } }, - "StackExchange.Redis": { - "type": "Transitive", - "resolved": "2.2.4", - "contentHash": "wM0OuRyRaZTFndFRjIOvas4jjkeclRJsmNm0eAx5tOju3SQisrLubNaSFT/dBypi4Vh1n7nYc1gWpw9L7ernOg==", - "dependencies": { - "Pipelines.Sockets.Unofficial": "2.2.0", - "System.Diagnostics.PerformanceCounter": "5.0.0" - } - }, - "System.Configuration.ConfigurationManager": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "aM7cbfEfVNlEEOj3DsZP+2g9NRwbkyiAv2isQEzw7pnkDg9ekCU2m1cdJLM02Uq691OaCS91tooaxcEn8d0q5w==", - "dependencies": { - "System.Security.Cryptography.ProtectedData": "5.0.0", - "System.Security.Permissions": "5.0.0" - } - }, "System.Diagnostics.EventLog": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "eUDP47obqQm3SFJfP6z+Fx2nJ4KKTQbXB4Q9Uesnzw9SbYdhjyoGXuvDn/gEmFY6N5Z3bFFbpAQGA7m6hrYJCw==" }, - "System.Diagnostics.PerformanceCounter": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "kcQWWtGVC3MWMNXdMDWfrmIlFZZ2OdoeT6pSNVRtk9+Sa7jwdPiMlNwb0ZQcS7NRlT92pCfmjRtkSWUW3RAKwg==", - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.Win32.Registry": "5.0.0", - "System.Configuration.ConfigurationManager": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Drawing.Common": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "SztFwAnpfKC8+sEKXAFxCBWhKQaEd97EiOL7oZJZP56zbqnLpmxACWA8aGseaUExciuEAUuR9dY8f7HkTRAdnw==", - "dependencies": { - "Microsoft.Win32.SystemEvents": "5.0.0" - } - }, - "System.IO.Pipelines": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "irMYm3vhVgRsYvHTU5b2gsT2CwT/SMM6LZFzuJjpIvT5Z4CshxNsaoBC1X/LltwuR3Opp8d6jOS/60WwOb7Q2Q==" - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Cryptography.ProtectedData": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "HGxMSAFAPLNoxBvSfW08vHde0F9uh7BjASwu6JF9JnXuEPhCY3YUqURn0+bQV/4UWeaqymmrHWV+Aw9riQCtCA==" - }, - "System.Security.Permissions": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "uE8juAhEkp7KDBCdjDIE3H9R1HJuEHqeqX8nLX9gmYKWwsqk3T5qZlPx8qle5DPKimC/Fy3AFTdV7HamgCh9qQ==", - "dependencies": { - "System.Security.AccessControl": "5.0.0", - "System.Windows.Extensions": "5.0.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - }, "System.Text.Encodings.Web": { "type": "Transitive", "resolved": "7.0.0", @@ -470,14 +351,6 @@ "System.Text.Encodings.Web": "7.0.0" } }, - "System.Windows.Extensions": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "c1ho9WU9ZxMZawML+ssPKZfdnrg/OjR3pe0m9v8230z3acqphwvPJqzAkH54xRYm5ntZHGG1EPP3sux9H3qSPg==", - "dependencies": { - "System.Drawing.Common": "5.0.0" - } - }, "impostor.api": { "type": "Project", "dependencies": { @@ -491,7 +364,6 @@ "dependencies": { "Impostor.Api": "[1.7.3-dev, )", "Impostor.Hazel": "[1.0.0, )", - "Microsoft.Extensions.Caching.StackExchangeRedis": "[7.0.1, )", "Microsoft.Extensions.FileSystemGlobbing": "[7.0.0, )", "Microsoft.Extensions.Hosting": "[7.0.0, )", "Microsoft.Extensions.ObjectPool": "[7.0.1, )",