add RateLimiter class

This commit is contained in:
sla-ppy
2024-06-20 16:39:03 +02:00
committed by Lion Kortlepel
parent 93a477e9c3
commit 70967a81a3
2 changed files with 70 additions and 0 deletions

20
include/RateLimiter.h Normal file
View File

@@ -0,0 +1,20 @@
#include "Common.h"
#include <chrono>
#include <fstream>
#include <iostream>
#include <mutex>
#include <unordered_map>
#include <unordered_set>
class RateLimiter {
public:
RateLimiter();
bool isConnectionAllowed(const std::string& client_address);
private:
std::unordered_map<std::string, std::vector<std::chrono::time_point<std::chrono::high_resolution_clock>>> m_connection;
std::mutex m_connection_mutex;
void blockIP(const std::string& client_address);
bool isIPBlocked(const std::string& client_address);
};