mirror of
https://github.com/BeamMP/BeamMP-Server.git
synced 2026-07-12 17:54:04 +00:00
add connection limiter stats to status command
This commit is contained in:
@@ -8,6 +8,15 @@
|
||||
|
||||
class TConnectionLimiter {
|
||||
public:
|
||||
struct TStats {
|
||||
size_t CurrentGlobal = 0;
|
||||
size_t MaxGlobal = 0;
|
||||
size_t ActiveIpBuckets = 0;
|
||||
size_t CurrentMaxPerIp = 0;
|
||||
size_t MaxPerIp = 0;
|
||||
size_t SaturatedIpBuckets = 0;
|
||||
};
|
||||
|
||||
class TGuard {
|
||||
public:
|
||||
TGuard() = default;
|
||||
@@ -36,6 +45,7 @@ public:
|
||||
TConnectionLimiter(size_t maxPerIp, size_t maxGlobal);
|
||||
|
||||
[[nodiscard]] std::optional<TGuard> TryAcquire(const std::string& ip);
|
||||
[[nodiscard]] TStats GetStats();
|
||||
|
||||
private:
|
||||
void Release(const std::string& ip) {
|
||||
|
||||
@@ -48,6 +48,7 @@ public:
|
||||
void SendToAll(TClient* c, const std::vector<uint8_t>& Data, bool Self, bool Rel);
|
||||
void UpdatePlayer(TClient& Client);
|
||||
boost::system::error_code ReadWithTimeout(TConnection& Connection, void* Buf, size_t Len, std::chrono::steady_clock::duration Timeout);
|
||||
[[nodiscard]] TConnectionLimiter::TStats GetConnectionLimiterStats() { return mConnectionLimiter.GetStats(); }
|
||||
|
||||
TResourceManager& ResourceManager() const { return mResourceManager; }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user