Browse Source

banlist: update set dirty to be more fine grained

- move the SetBannedSetDirty(false) call from DumpData() into DumpBanlist()
- ensure we only set false, if the write succeeded
0.13
Philip Kaufmann 9 years ago
parent
commit
57c77fe4d3
  1. 11
      src/net.cpp

11
src/net.cpp

@ -1455,10 +1455,7 @@ void DumpData() @@ -1455,10 +1455,7 @@ void DumpData()
DumpAddresses();
if (CNode::BannedSetIsDirty())
{
DumpBanlist();
CNode::SetBannedSetDirty(false);
}
}
void static ProcessOneShot()
@ -2484,14 +2481,14 @@ bool CBanDB::Read(banmap_t& banSet) @@ -2484,14 +2481,14 @@ bool CBanDB::Read(banmap_t& banSet)
void DumpBanlist()
{
int64_t nStart = GetTimeMillis();
CNode::SweepBanned(); //clean unused entries (if bantime has expired)
CNode::SweepBanned(); // clean unused entries (if bantime has expired)
CBanDB bandb;
banmap_t banmap;
CNode::GetBanned(banmap);
bandb.Write(banmap);
if (bandb.Write(banmap))
CNode::SetBannedSetDirty(false);
LogPrint("net", "Flushed %d banned node ips/subnets to banlist.dat %dms\n",
banmap.size(), GetTimeMillis() - nStart);
banmap.size(), GetTimeMillis() - nStart);
}

Loading…
Cancel
Save