diff options
Diffstat (limited to 'libs/VNLib.Plugins.Sessions.VNCache/src')
-rw-r--r-- | libs/VNLib.Plugins.Sessions.VNCache/src/WebSessionProvider.cs | 4 | ||||
-rw-r--r-- | libs/VNLib.Plugins.Sessions.VNCache/src/WebSessionProviderEntry.cs | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/libs/VNLib.Plugins.Sessions.VNCache/src/WebSessionProvider.cs b/libs/VNLib.Plugins.Sessions.VNCache/src/WebSessionProvider.cs index 705661c..0fd981b 100644 --- a/libs/VNLib.Plugins.Sessions.VNCache/src/WebSessionProvider.cs +++ b/libs/VNLib.Plugins.Sessions.VNCache/src/WebSessionProvider.cs @@ -94,8 +94,8 @@ namespace VNLib.Plugins.Sessions.VNCache return SessionHandle.Empty; } - //Limit max number of waiting clients - if (WaitingConnections > MaxConnections) + //Limit max number of waiting clients and make sure were connected + if (!IsConnected || WaitingConnections > MaxConnections) { //Set 503 for temporary unavail entity.CloseResponse(System.Net.HttpStatusCode.ServiceUnavailable); diff --git a/libs/VNLib.Plugins.Sessions.VNCache/src/WebSessionProviderEntry.cs b/libs/VNLib.Plugins.Sessions.VNCache/src/WebSessionProviderEntry.cs index 1aa92a7..f0a7caa 100644 --- a/libs/VNLib.Plugins.Sessions.VNCache/src/WebSessionProviderEntry.cs +++ b/libs/VNLib.Plugins.Sessions.VNCache/src/WebSessionProviderEntry.cs @@ -46,7 +46,7 @@ namespace VNLib.Plugins.Sessions.VNCache private WebSessionProvider? _sessions; //Web sessions can always be provided so long as cache is loaded - public bool CanProcess(IHttpEvent entity) => _sessions != null; + public bool CanProcess(IHttpEvent entity) => _sessions != null && _sessions.IsConnected; ValueTask<SessionHandle> ISessionProvider.GetSessionAsync(IHttpEvent entity, CancellationToken cancellationToken) { |