|
|
@ -418,10 +418,10 @@ void CConnman::DumpBanlist() |
|
|
|
|
|
|
|
|
|
|
|
CBanDB bandb; |
|
|
|
CBanDB bandb; |
|
|
|
banmap_t banmap; |
|
|
|
banmap_t banmap; |
|
|
|
SetBannedSetDirty(false); |
|
|
|
|
|
|
|
GetBanned(banmap); |
|
|
|
GetBanned(banmap); |
|
|
|
if (!bandb.Write(banmap)) |
|
|
|
if (bandb.Write(banmap)) { |
|
|
|
SetBannedSetDirty(true); |
|
|
|
SetBannedSetDirty(false); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
LogPrint(BCLog::NET, "Flushed %d banned node ips/subnets to banlist.dat %dms\n", |
|
|
|
LogPrint(BCLog::NET, "Flushed %d banned node ips/subnets to banlist.dat %dms\n", |
|
|
|
banmap.size(), GetTimeMillis() - nStart); |
|
|
|
banmap.size(), GetTimeMillis() - nStart); |
|
|
@ -541,6 +541,8 @@ bool CConnman::Unban(const CSubNet &subNet) { |
|
|
|
void CConnman::GetBanned(banmap_t &banMap) |
|
|
|
void CConnman::GetBanned(banmap_t &banMap) |
|
|
|
{ |
|
|
|
{ |
|
|
|
LOCK(cs_setBanned); |
|
|
|
LOCK(cs_setBanned); |
|
|
|
|
|
|
|
// Sweep the banlist so expired bans are not returned
|
|
|
|
|
|
|
|
SweepBanned(); |
|
|
|
banMap = setBanned; //create a thread safe copy
|
|
|
|
banMap = setBanned; //create a thread safe copy
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|