mirror of
https://github.com/XRPLF/clio.git
synced 2025-12-06 17:27:58 +00:00
@@ -37,6 +37,7 @@ constexpr static auto JSONData = R"JSON(
|
||||
"max_fetches": 100,
|
||||
"sweep_interval": 1,
|
||||
"max_connections": 2,
|
||||
"max_requests": 3,
|
||||
"whitelist": ["127.0.0.1"]
|
||||
}
|
||||
}
|
||||
@@ -126,6 +127,30 @@ TEST_F(DOSGuardTest, ClearFetchCountOnTimer)
|
||||
EXPECT_TRUE(guard.isOk(IP)); // can fetch again
|
||||
}
|
||||
|
||||
TEST_F(DOSGuardTest, RequestLimit)
|
||||
{
|
||||
EXPECT_TRUE(guard.request(IP));
|
||||
EXPECT_TRUE(guard.request(IP));
|
||||
EXPECT_TRUE(guard.request(IP));
|
||||
EXPECT_TRUE(guard.isOk(IP));
|
||||
EXPECT_FALSE(guard.request(IP));
|
||||
EXPECT_FALSE(guard.isOk(IP));
|
||||
guard.clear();
|
||||
EXPECT_TRUE(guard.isOk(IP)); // can request again
|
||||
}
|
||||
|
||||
TEST_F(DOSGuardTest, RequestLimitOnTimer)
|
||||
{
|
||||
EXPECT_TRUE(guard.request(IP));
|
||||
EXPECT_TRUE(guard.request(IP));
|
||||
EXPECT_TRUE(guard.request(IP));
|
||||
EXPECT_TRUE(guard.isOk(IP));
|
||||
EXPECT_FALSE(guard.request(IP));
|
||||
EXPECT_FALSE(guard.isOk(IP));
|
||||
sweepHandler.sweep();
|
||||
EXPECT_TRUE(guard.isOk(IP)); // can request again
|
||||
}
|
||||
|
||||
template <typename SweepHandler>
|
||||
struct BasicDOSGuardMock : public BaseDOSGuard
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user