From 4d4b0576ee02d220b4ef50ee187f2ce209480756 Mon Sep 17 00:00:00 2001 From: Jkorf Date: Fri, 10 Apr 2026 10:01:13 +0200 Subject: [PATCH] Fix for rate limiter resetting --- CryptoExchange.Net/RateLimiting/Guards/RateLimitGuard.cs | 6 ++++++ .../Sockets/Default/CryptoExchangeWebSocketClient.cs | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) 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();