mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-03 09:56:38 -05:00
Merge #11616: Update ban-state in case of dirty-state during periodic sweep
57ac471
Call BannedListChanged outside of cs_setBanned lock (Jonas Schnelli)c853812
Update ban-state in case of dirty-state during periodic sweep (Jonas Schnelli) Pull request description: We do currently not update the UI during periodic ban list sweeps (via dump banlist). Fixes #11612 Tree-SHA512: bffbdcc03c63042177bdd511b0a9187c211c2b5011178481e8ee3e43a71eef1e4cd6b72f73672babab142b644f62f8b56f0aac1d26d3f19372b1f8644fec9395
This commit is contained in:
commit
8585bb8f05
1 changed files with 19 additions and 12 deletions
31
src/net.cpp
31
src/net.cpp
|
@ -603,21 +603,28 @@ void CConnman::SetBanned(const banmap_t &banMap)
|
||||||
void CConnman::SweepBanned()
|
void CConnman::SweepBanned()
|
||||||
{
|
{
|
||||||
int64_t now = GetTime();
|
int64_t now = GetTime();
|
||||||
|
bool notifyUI = false;
|
||||||
LOCK(cs_setBanned);
|
|
||||||
banmap_t::iterator it = setBanned.begin();
|
|
||||||
while(it != setBanned.end())
|
|
||||||
{
|
{
|
||||||
CSubNet subNet = (*it).first;
|
LOCK(cs_setBanned);
|
||||||
CBanEntry banEntry = (*it).second;
|
banmap_t::iterator it = setBanned.begin();
|
||||||
if(now > banEntry.nBanUntil)
|
while(it != setBanned.end())
|
||||||
{
|
{
|
||||||
setBanned.erase(it++);
|
CSubNet subNet = (*it).first;
|
||||||
setBannedIsDirty = true;
|
CBanEntry banEntry = (*it).second;
|
||||||
LogPrint(BCLog::NET, "%s: Removed banned node ip/subnet from banlist.dat: %s\n", __func__, subNet.ToString());
|
if(now > banEntry.nBanUntil)
|
||||||
|
{
|
||||||
|
setBanned.erase(it++);
|
||||||
|
setBannedIsDirty = true;
|
||||||
|
notifyUI = true;
|
||||||
|
LogPrint(BCLog::NET, "%s: Removed banned node ip/subnet from banlist.dat: %s\n", __func__, subNet.ToString());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
++it;
|
||||||
}
|
}
|
||||||
else
|
}
|
||||||
++it;
|
// update UI
|
||||||
|
if(notifyUI && clientInterface) {
|
||||||
|
clientInterface->BannedListChanged();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue