| 477 | } |
| 478 | |
| 479 | void Misbehaving(NodeId pNode, int32_t howmuch) { |
| 480 | if (howmuch == 0) |
| 481 | return; |
| 482 | |
| 483 | LOCK(cs_mapNodeState); |
| 484 | CNodeState *state = State(pNode); |
| 485 | if (state == nullptr) |
| 486 | return; |
| 487 | |
| 488 | state->nMisbehavior += howmuch; |
| 489 | if (state->nMisbehavior >= SysCfg().GetArg("-banscore", 100)) { |
| 490 | LogPrint(BCLog::INFO, "Misbehaving: %s (%d -> %d) BAN THRESHOLD EXCEEDED\n", state->name, |
| 491 | state->nMisbehavior - howmuch, state->nMisbehavior); |
| 492 | state->fShouldBan = true; |
| 493 | } else { |
| 494 | LogPrint(BCLog::INFO, "Misbehaving: %s (%d -> %d)\n", state->name, state->nMisbehavior - howmuch, |
| 495 | state->nMisbehavior); |
| 496 | } |
| 497 | } |
| 498 | |
| 499 | void static InvalidChainFound(CBlockIndex *pIndexNew) { |
| 500 | if (pIndexBestInvalid == nullptr || pIndexNew->height > pIndexBestInvalid->height) { |