aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJohn Newbery <john@johnnewbery.com>2020-08-24 15:56:14 +0100
committerJohn Newbery <john@johnnewbery.com>2020-09-07 11:16:12 +0100
commitb70cd890e375e904b7f36b3d959e5656f5a5cbcd (patch)
tree3d8f0f93e37e9545da428157862bd878120d2808 /src
parentd7778351bf60a21925a97b7fc4e9df5541b6d995 (diff)
downloadbitcoin-b70cd890e375e904b7f36b3d959e5656f5a5cbcd.tar.xz
[net processing] Move MaybePunishNodeForBlock into PeerManager
Diffstat (limited to 'src')
-rw-r--r--src/net_processing.cpp14
-rw-r--r--src/net_processing.h14
2 files changed, 17 insertions, 11 deletions
diff --git a/src/net_processing.cpp b/src/net_processing.cpp
index fac0f100d4..79d1ebe3ab 100644
--- a/src/net_processing.cpp
+++ b/src/net_processing.cpp
@@ -1132,17 +1132,9 @@ void Misbehaving(const NodeId pnode, const int howmuch, const std::string& messa
}
}
-/**
- * Potentially mark a node discouraged based on the contents of a BlockValidationState object
- *
- * @param[in] via_compact_block this bool is passed in because net_processing should
- * punish peers differently depending on whether the data was provided in a compact
- * block message or not. If the compact block had a valid header, but contained invalid
- * txs, the peer should not be punished. See BIP 152.
- *
- * @return Returns true if the peer was punished (probably disconnected)
- */
-static bool MaybePunishNodeForBlock(NodeId nodeid, const BlockValidationState& state, bool via_compact_block, const std::string& message = "") {
+bool PeerManager::MaybePunishNodeForBlock(NodeId nodeid, const BlockValidationState& state,
+ bool via_compact_block, const std::string& message)
+{
switch (state.GetResult()) {
case BlockValidationResult::BLOCK_RESULT_UNSET:
break;
diff --git a/src/net_processing.h b/src/net_processing.h
index d4793ce303..c0a19f7bd2 100644
--- a/src/net_processing.h
+++ b/src/net_processing.h
@@ -11,6 +11,7 @@
#include <sync.h>
#include <validationinterface.h>
+class BlockValidationState;
class CBlockHeader;
class CChainParams;
class CTxMemPool;
@@ -84,6 +85,19 @@ public:
const std::chrono::microseconds time_received, const std::atomic<bool>& interruptMsgProc);
private:
+ /**
+ * Potentially mark a node discouraged based on the contents of a BlockValidationState object
+ *
+ * @param[in] via_compact_block this bool is passed in because net_processing should
+ * punish peers differently depending on whether the data was provided in a compact
+ * block message or not. If the compact block had a valid header, but contained invalid
+ * txs, the peer should not be punished. See BIP 152.
+ *
+ * @return Returns true if the peer was punished (probably disconnected)
+ */
+ bool MaybePunishNodeForBlock(NodeId nodeid, const BlockValidationState& state,
+ bool via_compact_block, const std::string& message = "");
+
/** Maybe disconnect a peer and discourage future connections from its address.
*
* @param[in] pnode The node to check.