Skip to content

Commit d0469b2

Browse files
theunidongcarl
authored andcommitted
banman: pass in default ban time as a parameter
Removes the dependency on arg parsing.
1 parent 2e56702 commit d0469b2

File tree

5 files changed

+9
-8
lines changed

5 files changed

+9
-8
lines changed

src/init.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1296,7 +1296,7 @@ bool AppInitMain(InitInterfaces& interfaces)
12961296
// need to reindex later.
12971297

12981298
assert(!g_banman);
1299-
g_banman = MakeUnique<BanMan>(GetDataDir() / "banlist.dat", &uiInterface);
1299+
g_banman = MakeUnique<BanMan>(GetDataDir() / "banlist.dat", &uiInterface, gArgs.GetArg("-bantime", DEFAULT_MISBEHAVING_BANTIME));
13001300
assert(!g_connman);
13011301
g_connman = std::unique_ptr<CConnman>(new CConnman(GetRand(std::numeric_limits<uint64_t>::max()), GetRand(std::numeric_limits<uint64_t>::max())));
13021302

src/net.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -537,7 +537,7 @@ void BanMan::Ban(const CSubNet& subNet, const BanReason &banReason, int64_t bant
537537
banEntry.banReason = banReason;
538538
if (bantimeoffset <= 0)
539539
{
540-
bantimeoffset = gArgs.GetArg("-bantime", DEFAULT_MISBEHAVING_BANTIME);
540+
bantimeoffset = m_default_ban_time;
541541
sinceUnixEpoch = false;
542542
}
543543
banEntry.nBanUntil = (sinceUnixEpoch ? 0 : GetTime() )+bantimeoffset;
@@ -2430,7 +2430,7 @@ bool CConnman::Start(CScheduler& scheduler, const Options& connOptions)
24302430
return true;
24312431
}
24322432

2433-
BanMan::BanMan(fs::path ban_file, CClientUIInterface* client_interface) : clientInterface(client_interface), m_ban_db(std::move(ban_file))
2433+
BanMan::BanMan(fs::path ban_file, CClientUIInterface* client_interface, int64_t default_ban_time) : clientInterface(client_interface), m_ban_db(std::move(ban_file)), m_default_ban_time(default_ban_time)
24342434
{
24352435
if (clientInterface) clientInterface->InitMessage(_("Loading banlist..."));
24362436

src/net.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ class BanMan
133133
// between nodes running old code and nodes running
134134
// new code.
135135
~BanMan();
136-
BanMan(fs::path ban_file, CClientUIInterface* client_interface);
136+
BanMan(fs::path ban_file, CClientUIInterface* client_interface, int64_t default_ban_time);
137137
void Ban(const CNetAddr& netAddr, const BanReason& reason, int64_t bantimeoffset = 0, bool sinceUnixEpoch = false);
138138
void Ban(const CSubNet& subNet, const BanReason& reason, int64_t bantimeoffset = 0, bool sinceUnixEpoch = false);
139139
void ClearBanned(); // needed for unit testing
@@ -157,6 +157,7 @@ class BanMan
157157
bool setBannedIsDirty;
158158
CClientUIInterface* clientInterface = nullptr;
159159
CBanDB m_ban_db;
160+
int64_t m_default_ban_time;
160161
};
161162

162163
class NetEventsInterface;

src/test/denialofservice_tests.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ BOOST_AUTO_TEST_CASE(stale_tip_peer_management)
216216

217217
BOOST_AUTO_TEST_CASE(DoS_banning)
218218
{
219-
auto banman = MakeUnique<BanMan>(GetDataDir() / "banlist.dat", nullptr);
219+
auto banman = MakeUnique<BanMan>(GetDataDir() / "banlist.dat", nullptr, DEFAULT_MISBEHAVING_BANTIME);
220220
auto connman = MakeUnique<CConnman>(0x1337, 0x1337);
221221
auto peerLogic = MakeUnique<PeerLogicValidation>(connman.get(), banman.get(), scheduler, false);
222222

@@ -271,7 +271,7 @@ BOOST_AUTO_TEST_CASE(DoS_banning)
271271

272272
BOOST_AUTO_TEST_CASE(DoS_banscore)
273273
{
274-
auto banman = MakeUnique<BanMan>(GetDataDir() / "banlist.dat", nullptr);
274+
auto banman = MakeUnique<BanMan>(GetDataDir() / "banlist.dat", nullptr, DEFAULT_MISBEHAVING_BANTIME);
275275
auto connman = MakeUnique<CConnman>(0x1337, 0x1337);
276276
auto peerLogic = MakeUnique<PeerLogicValidation>(connman.get(), banman.get(), scheduler, false);
277277

@@ -318,7 +318,7 @@ BOOST_AUTO_TEST_CASE(DoS_banscore)
318318

319319
BOOST_AUTO_TEST_CASE(DoS_bantime)
320320
{
321-
auto banman = MakeUnique<BanMan>(GetDataDir() / "banlist.dat", nullptr);
321+
auto banman = MakeUnique<BanMan>(GetDataDir() / "banlist.dat", nullptr, DEFAULT_MISBEHAVING_BANTIME);
322322
auto connman = MakeUnique<CConnman>(0x1337, 0x1337);
323323
auto peerLogic = MakeUnique<PeerLogicValidation>(connman.get(), banman.get(), scheduler, false);
324324

src/test/test_bitcoin.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ TestingSetup::TestingSetup(const std::string& chainName) : BasicTestingSetup(cha
9494
for (int i=0; i < nScriptCheckThreads-1; i++)
9595
threadGroup.create_thread(&ThreadScriptCheck);
9696

97-
g_banman = MakeUnique<BanMan>(GetDataDir() / "banlist.dat", nullptr);
97+
g_banman = MakeUnique<BanMan>(GetDataDir() / "banlist.dat", nullptr, DEFAULT_MISBEHAVING_BANTIME);
9898
g_connman = MakeUnique<CConnman>(0x1337, 0x1337); // Deterministic randomness for tests.
9999
}
100100

0 commit comments

Comments
 (0)