net: Break disconnecting out of Ban()

These are separate events which need to be carried out by separate subsystems.

This also cleans up some whitespace and tabs in qt to avoid getting flagged by
the linter.

Current behavior is preserved.
This commit is contained in:
Cory Fields
2017-10-04 18:25:34 -04:00
committed by Carl Dong
parent f71c2ea662
commit 7cc2b9f678
7 changed files with 54 additions and 24 deletions

View File

@@ -2961,14 +2961,14 @@ static bool SendRejectsAndCheckIfBanned(CNode* pnode, CConnman* connman, bool en
LogPrintf("Warning: not punishing whitelisted peer %s!\n", pnode->addr.ToString());
else if (pnode->m_manual_connection)
LogPrintf("Warning: not punishing manually-connected peer %s!\n", pnode->addr.ToString());
else {
else if (pnode->addr.IsLocal()) {
// Disconnect but don't ban _this_ local node
LogPrintf("Warning: disconnecting but not banning local peer %s!\n", pnode->addr.ToString());
pnode->fDisconnect = true;
if (pnode->addr.IsLocal())
LogPrintf("Warning: not banning local peer %s!\n", pnode->addr.ToString());
else
{
connman->Ban(pnode->addr, BanReasonNodeMisbehaving);
}
} else {
// Disconnect and ban all nodes sharing the address
connman->Ban(pnode->addr, BanReasonNodeMisbehaving);
connman->DisconnectNode(pnode->addr);
}
return true;
}