Got at least one data fetching method working; turns out, we can't use a patched LogicStack to get the data
This commit is contained in:
31
Vendor/EmbedIO-3.5.2/Security/Internal/IPBanningExecutor.cs
vendored
Normal file
31
Vendor/EmbedIO-3.5.2/Security/Internal/IPBanningExecutor.cs
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Threading.Tasks;
|
||||
using Swan.Threading;
|
||||
|
||||
namespace EmbedIO.Security.Internal
|
||||
{
|
||||
internal static class IPBanningExecutor
|
||||
{
|
||||
private static readonly ConcurrentDictionary<string, IPBanningConfiguration> Configurations = new ConcurrentDictionary<string, IPBanningConfiguration>();
|
||||
|
||||
private static readonly PeriodicTask Purger = new PeriodicTask(TimeSpan.FromMinutes(1), ct => {
|
||||
foreach (var conf in Configurations.Keys)
|
||||
{
|
||||
if (Configurations.TryGetValue(conf, out var instance))
|
||||
instance.Purge();
|
||||
}
|
||||
|
||||
return Task.CompletedTask;
|
||||
});
|
||||
|
||||
public static IPBanningConfiguration RetrieveInstance(string baseRoute, int banMinutes) =>
|
||||
Configurations.GetOrAdd(baseRoute, x => new IPBanningConfiguration(banMinutes));
|
||||
|
||||
public static bool TryGetInstance(string baseRoute, out IPBanningConfiguration configuration) =>
|
||||
Configurations.TryGetValue(baseRoute, out configuration);
|
||||
|
||||
public static bool TryRemoveInstance(string baseRoute) =>
|
||||
Configurations.TryRemove(baseRoute, out _);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user