diff --git a/CryptoExchange.Net/RateLimiting/Guards/RateLimitGuard.cs b/CryptoExchange.Net/RateLimiting/Guards/RateLimitGuard.cs index dabd62e..206de60 100644 --- a/CryptoExchange.Net/RateLimiting/Guards/RateLimitGuard.cs +++ b/CryptoExchange.Net/RateLimiting/Guards/RateLimitGuard.cs @@ -175,6 +175,12 @@ namespace CryptoExchange.Net.RateLimiting.Guards /// public void Reset(RateLimitItemType type, RequestDefinition definition, string host, string? apiKey, string? keySuffix) { + foreach (var filter in _filters) + { + if (!filter.Passes(type, definition, host, apiKey)) + return; + } + if (SharedGuard) _sharedGuardSemaphore!.Wait(); diff --git a/CryptoExchange.Net/Sockets/Default/CryptoExchangeWebSocketClient.cs b/CryptoExchange.Net/Sockets/Default/CryptoExchangeWebSocketClient.cs index 31ac86a..b0303a8 100644 --- a/CryptoExchange.Net/Sockets/Default/CryptoExchangeWebSocketClient.cs +++ b/CryptoExchange.Net/Sockets/Default/CryptoExchangeWebSocketClient.cs @@ -298,7 +298,7 @@ namespace CryptoExchange.Net.Sockets.Default } if (Parameters.RateLimiter != null) - await Parameters.RateLimiter.ResetAsync(RateLimitItemType.Connection, _requestDefinition, _baseAddress, null, null, _ctsSource.Token).ConfigureAwait(false); + await Parameters.RateLimiter.ResetAsync(RateLimitItemType.Request, _requestDefinition, _baseAddress, null, null, default).ConfigureAwait(false); // Delay here to prevent very rapid looping when a connection to the server is accepted and immediately disconnected var initialDelay = GetReconnectDelay();