aboutsummaryrefslogtreecommitdiff
path: root/libs/VNLib.Plugins.Sessions.VNCache
diff options
context:
space:
mode:
Diffstat (limited to 'libs/VNLib.Plugins.Sessions.VNCache')
-rw-r--r--libs/VNLib.Plugins.Sessions.VNCache/src/WebSessionProvider.cs4
-rw-r--r--libs/VNLib.Plugins.Sessions.VNCache/src/WebSessionProviderEntry.cs2
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)
{