Browse Source

Call BannedListChanged outside of cs_setBanned lock

0.16
Jonas Schnelli 7 years ago
parent
commit
57ac471a29
No known key found for this signature in database
GPG Key ID: 1EB776BB03C7922D
  1. 8
      src/net.cpp

8
src/net.cpp

@ -596,7 +596,8 @@ 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); LOCK(cs_setBanned);
banmap_t::iterator it = setBanned.begin(); banmap_t::iterator it = setBanned.begin();
while(it != setBanned.end()) while(it != setBanned.end())
@ -607,14 +608,15 @@ void CConnman::SweepBanned()
{ {
setBanned.erase(it++); setBanned.erase(it++);
setBannedIsDirty = true; setBannedIsDirty = true;
notifyUI = true;
LogPrint(BCLog::NET, "%s: Removed banned node ip/subnet from banlist.dat: %s\n", __func__, subNet.ToString()); LogPrint(BCLog::NET, "%s: Removed banned node ip/subnet from banlist.dat: %s\n", __func__, subNet.ToString());
} }
else else
++it; ++it;
} }
}
// update UI // update UI
if(setBannedIsDirty && clientInterface) { if(notifyUI && clientInterface) {
clientInterface->BannedListChanged(); clientInterface->BannedListChanged();
} }
} }

Loading…
Cancel
Save