diff options
| author | Suhas Daftuar <[email protected]> | 2019-04-22 12:10:16 -0400 |
|---|---|---|
| committer | Suhas Daftuar <[email protected]> | 2019-04-26 09:31:29 -0400 |
| commit | 23163b759354b84c5a076e3e2ae6ae6338106035 (patch) | |
| tree | 44da565b74c90b224afac37d70c35ade4a69fb78 /src | |
| parent | Improve NOTFOUND comment (diff) | |
| download | discoin-23163b759354b84c5a076e3e2ae6ae6338106035.tar.xz discoin-23163b759354b84c5a076e3e2ae6ae6338106035.zip | |
Add an explicit memory bound to m_tx_process_time
Previously there was an implicit bound based on the handling of m_tx_announced,
but that approach is error-prone (particularly if we start automatically
removing things from that set).
Diffstat (limited to 'src')
| -rw-r--r-- | src/net_processing.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/net_processing.cpp b/src/net_processing.cpp index f76e5d64a..f114981cc 100644 --- a/src/net_processing.cpp +++ b/src/net_processing.cpp @@ -699,7 +699,9 @@ void UpdateTxRequestTime(const uint256& txid, int64_t request_time) EXCLUSIVE_LO void RequestTx(CNodeState* state, const uint256& txid, int64_t nNow) EXCLUSIVE_LOCKS_REQUIRED(cs_main) { CNodeState::TxDownloadState& peer_download_state = state->m_tx_download; - if (peer_download_state.m_tx_announced.size() >= MAX_PEER_TX_ANNOUNCEMENTS || peer_download_state.m_tx_announced.count(txid)) { + if (peer_download_state.m_tx_announced.size() >= MAX_PEER_TX_ANNOUNCEMENTS || + peer_download_state.m_tx_process_time.size() >= MAX_PEER_TX_ANNOUNCEMENTS || + peer_download_state.m_tx_announced.count(txid)) { // Too many queued announcements from this peer, or we already have // this announcement return; |