aboutsummaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorLibravatar vnugent <public@vaughnnugent.com>2023-01-28 13:41:09 -0500
committerLibravatar vnugent <public@vaughnnugent.com>2023-01-28 13:41:09 -0500
commit99952991919076bfe247d5e1a7677e414755cd56 (patch)
tree90c542ed7e65e13692d1510f340bde358abb9326 /libs
parentb8522ccf6c33f5605dbe6b491efae04c478d8d65 (diff)
Fix FBMMessageHeader default and session connection status
Diffstat (limited to 'libs')
-rw-r--r--libs/VNLib.Plugins.Sessions.Cache.Client/src/GlobalCacheStore.cs3
-rw-r--r--libs/VNLib.Plugins.Sessions.Cache.Client/src/IRemoteCacheStore.cs5
-rw-r--r--libs/VNLib.Plugins.Sessions.Cache.Client/src/SessionCacheClient.cs6
-rw-r--r--libs/VNLib.Plugins.Sessions.OAuth/src/O2SessionProviderEntry.cs2
-rw-r--r--libs/VNLib.Plugins.Sessions.OAuth/src/OAuth2SessionProvider.cs5
-rw-r--r--libs/VNLib.Plugins.Sessions.VNCache/src/WebSessionProvider.cs4
-rw-r--r--libs/VNLib.Plugins.Sessions.VNCache/src/WebSessionProviderEntry.cs2
7 files changed, 21 insertions, 6 deletions
diff --git a/libs/VNLib.Plugins.Sessions.Cache.Client/src/GlobalCacheStore.cs b/libs/VNLib.Plugins.Sessions.Cache.Client/src/GlobalCacheStore.cs
index df3c564..55f5016 100644
--- a/libs/VNLib.Plugins.Sessions.Cache.Client/src/GlobalCacheStore.cs
+++ b/libs/VNLib.Plugins.Sessions.Cache.Client/src/GlobalCacheStore.cs
@@ -44,6 +44,9 @@ namespace VNLib.Plugins.Sessions.Cache.Client
}
///<inheritdoc/>
+ public bool IsConnected => _cache.IsConnected;
+
+ ///<inheritdoc/>
public Task AddOrUpdateObjectAsync<T>(string objectId, string? newId, T obj, CancellationToken cancellationToken = default)
{
return _cache.AddOrUpdateAsync(objectId, newId, obj, cancellationToken);
diff --git a/libs/VNLib.Plugins.Sessions.Cache.Client/src/IRemoteCacheStore.cs b/libs/VNLib.Plugins.Sessions.Cache.Client/src/IRemoteCacheStore.cs
index 2a8bd49..ce95a6b 100644
--- a/libs/VNLib.Plugins.Sessions.Cache.Client/src/IRemoteCacheStore.cs
+++ b/libs/VNLib.Plugins.Sessions.Cache.Client/src/IRemoteCacheStore.cs
@@ -44,5 +44,10 @@ namespace VNLib.Plugins.Sessions.Cache.Client
Task AddOrUpdateObjectAsync<T>(string objectId, string? newId, T obj, CancellationToken cancellationToken = default);
Task DeleteObjectAsync(string objectId, CancellationToken cancellationToken = default);
+
+ /// <summary>
+ /// Gets a value that determines if the remote cache store is available
+ /// </summary>
+ bool IsConnected { get; }
}
}
diff --git a/libs/VNLib.Plugins.Sessions.Cache.Client/src/SessionCacheClient.cs b/libs/VNLib.Plugins.Sessions.Cache.Client/src/SessionCacheClient.cs
index b729803..20ea947 100644
--- a/libs/VNLib.Plugins.Sessions.Cache.Client/src/SessionCacheClient.cs
+++ b/libs/VNLib.Plugins.Sessions.Cache.Client/src/SessionCacheClient.cs
@@ -102,6 +102,12 @@ namespace VNLib.Plugins.Sessions.Cache.Client
protected IRemoteCacheStore Store { get; }
/// <summary>
+ /// Gets a value that determines if the backing <see cref="IRemoteCacheStore"/> is connected
+ /// to a server
+ /// </summary>
+ public bool IsConnected => Store.IsConnected;
+
+ /// <summary>
/// Initializes a new <see cref="SessionCacheClient"/>
/// </summary>
/// <param name="client"></param>
diff --git a/libs/VNLib.Plugins.Sessions.OAuth/src/O2SessionProviderEntry.cs b/libs/VNLib.Plugins.Sessions.OAuth/src/O2SessionProviderEntry.cs
index 68a715e..92ea020 100644
--- a/libs/VNLib.Plugins.Sessions.OAuth/src/O2SessionProviderEntry.cs
+++ b/libs/VNLib.Plugins.Sessions.OAuth/src/O2SessionProviderEntry.cs
@@ -57,7 +57,7 @@ namespace VNLib.Plugins.Sessions.OAuth
public bool CanProcess(IHttpEvent entity)
{
//If authorization header is set try to process as oauth2 session
- return _sessions != null && entity.Server.Headers.HeaderSet(System.Net.HttpRequestHeader.Authorization);
+ return _sessions != null && _sessions.IsConnected && entity.Server.Headers.HeaderSet(System.Net.HttpRequestHeader.Authorization);
}
ValueTask<SessionHandle> ISessionProvider.GetSessionAsync(IHttpEvent entity, CancellationToken cancellationToken)
diff --git a/libs/VNLib.Plugins.Sessions.OAuth/src/OAuth2SessionProvider.cs b/libs/VNLib.Plugins.Sessions.OAuth/src/OAuth2SessionProvider.cs
index 2e41a5f..7047e6e 100644
--- a/libs/VNLib.Plugins.Sessions.OAuth/src/OAuth2SessionProvider.cs
+++ b/libs/VNLib.Plugins.Sessions.OAuth/src/OAuth2SessionProvider.cs
@@ -40,8 +40,8 @@ using VNLib.Plugins.Essentials.Oauth;
using VNLib.Plugins.Essentials.Sessions;
using VNLib.Plugins.Essentials.Oauth.Tokens;
using VNLib.Plugins.Essentials.Oauth.Applications;
-using VNLib.Plugins.Extensions.Loading.Events;
using VNLib.Plugins.Extensions.Loading;
+using VNLib.Plugins.Extensions.Loading.Events;
namespace VNLib.Plugins.Sessions.OAuth
{
@@ -80,6 +80,7 @@ namespace VNLib.Plugins.Sessions.OAuth
_ = CacheTable.Remove(session.SessionID);
}
}
+
///<inheritdoc/>
public async ValueTask<SessionHandle> GetSessionAsync(IHttpEvent entity, CancellationToken cancellationToken)
@@ -99,7 +100,7 @@ namespace VNLib.Plugins.Sessions.OAuth
}
//Limit max number of waiting clients
- if (WaitingConnections > MaxConnections)
+ if (!IsConnected || WaitingConnections > MaxConnections)
{
//Set 503 for temporary unavail
entity.CloseResponse(HttpStatusCode.ServiceUnavailable);
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)
{