diff options
author | Suhas Daftuar <sdaftuar@gmail.com> | 2020-06-29 14:59:55 -0400 |
---|---|---|
committer | John Newbery <john@johnnewbery.com> | 2020-09-24 13:24:10 +0100 |
commit | f082a13ab756a378b260711a30d363f833a2306a (patch) | |
tree | a1119cebc4f42e5afbca7b89e499704b1a51a77a /src | |
parent | 22effa51a77a8b8c72ba3525cb08dd0cf8464715 (diff) |
Disconnect peers sending wtxidrelay message after VERACK
Diffstat (limited to 'src')
-rw-r--r-- | src/net_processing.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/net_processing.cpp b/src/net_processing.cpp index 853c488bed..43447a2c34 100644 --- a/src/net_processing.cpp +++ b/src/net_processing.cpp @@ -2213,6 +2213,12 @@ bool ProcessMessage(CNode* pfrom, const std::string& msg_type, CDataStream& vRec // Feature negotiation of wtxidrelay should happen between VERSION and // VERACK, to avoid relay problems from switching after a connection is up if (msg_type == NetMsgType::WTXIDRELAY) { + if (pfrom->fSuccessfullyConnected) { + // Disconnect peers that send wtxidrelay message after VERACK; this + // must be negotiated between VERSION and VERACK. + pfrom->fDisconnect = true; + return false; + } if (pfrom->nVersion >= WTXID_RELAY_VERSION) { LOCK(cs_main); if (!State(pfrom->GetId())->m_wtxid_relay) { |