diff options
author | Gleb Naumenko <naumenko.gs@gmail.com> | 2022-11-14 11:37:28 +0200 |
---|---|---|
committer | Gleb Naumenko <naumenko.gs@gmail.com> | 2022-11-14 11:37:28 +0200 |
commit | bc84e24a4f0736919ea4a76f7d45085587625aba (patch) | |
tree | 6c76f7863275491bf8ab758222df8f194b1838d2 /src/net_processing.cpp | |
parent | a60f729e293dcd11ca077b7c1c72b06119437faa (diff) | |
download | bitcoin-bc84e24a4f0736919ea4a76f7d45085587625aba.tar.xz |
p2p, refactor: Switch to enum class for ReconciliationRegisterResult
While doing this, add a new value: ALREADY_REGISTERED.
Diffstat (limited to 'src/net_processing.cpp')
-rw-r--r-- | src/net_processing.cpp | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/src/net_processing.cpp b/src/net_processing.cpp index 71bf48798d..e90951ae1f 100644 --- a/src/net_processing.cpp +++ b/src/net_processing.cpp @@ -3510,24 +3510,21 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type, return; } - if (m_txreconciliation->IsPeerRegistered(pfrom.GetId())) { - // A peer is already registered, meaning we already received SENDTXRCNCL from them. - LogPrintLevel(BCLog::NET, BCLog::Level::Debug, "txreconciliation protocol violation from peer=%d (sendtxrcncl received from already registered peer); disconnecting\n", pfrom.GetId()); - pfrom.fDisconnect = true; - return; - } - uint32_t peer_txreconcl_version; uint64_t remote_salt; vRecv >> peer_txreconcl_version >> remote_salt; const ReconciliationRegisterResult result = m_txreconciliation->RegisterPeer(pfrom.GetId(), pfrom.IsInboundConn(), peer_txreconcl_version, remote_salt); - - // If it's a protocol violation, disconnect. - // If the peer was not found (but something unexpected happened) or it was registered, - // nothing to be done. - if (result == ReconciliationRegisterResult::PROTOCOL_VIOLATION) { + switch (result) { + case ReconciliationRegisterResult::NOT_FOUND: + case ReconciliationRegisterResult::SUCCESS: + break; + case ReconciliationRegisterResult::ALREADY_REGISTERED: + LogPrintLevel(BCLog::NET, BCLog::Level::Debug, "txreconciliation protocol violation from peer=%d (sendtxrcncl received from already registered peer); disconnecting\n", pfrom.GetId()); + pfrom.fDisconnect = true; + return; + case ReconciliationRegisterResult::PROTOCOL_VIOLATION: LogPrintLevel(BCLog::NET, BCLog::Level::Debug, "txreconciliation protocol violation from peer=%d; disconnecting\n", pfrom.GetId()); pfrom.fDisconnect = true; return; |