diff options
author | Jon Atack <jon@atack.com> | 2020-12-25 23:56:17 +0100 |
---|---|---|
committer | Jon Atack <jon@atack.com> | 2021-03-19 20:11:45 +0100 |
commit | 8b1e156143740a5548dc7b601d40fb141e6aae1c (patch) | |
tree | 190c7430ca8c2cdf81ead7b20f718cae19ba1348 /src | |
parent | 72e30e8e03f880eba4bd1c3fc18b5558d8cef680 (diff) | |
download | bitcoin-8b1e156143740a5548dc7b601d40fb141e6aae1c.tar.xz |
Add m_inbound_onion to AttemptToEvictConnection()
and an `m_is_onion` struct member to NodeEvictionCandidate and tests.
We'll use these in the peer eviction logic to protect inbound onion peers
in addition to the existing protection of localhost peers.
Diffstat (limited to 'src')
-rw-r--r-- | src/net.cpp | 3 | ||||
-rw-r--r-- | src/net.h | 2 | ||||
-rw-r--r-- | src/test/fuzz/node_eviction.cpp | 1 | ||||
-rw-r--r-- | src/test/net_peer_eviction_tests.cpp | 1 |
4 files changed, 6 insertions, 1 deletions
diff --git a/src/net.cpp b/src/net.cpp index b51d03de7b..a3f3377df9 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -992,7 +992,8 @@ bool CConnman::AttemptToEvictConnection() node->nLastBlockTime, node->nLastTXTime, HasAllDesirableServiceFlags(node->nServices), peer_relay_txes, peer_filter_not_null, node->nKeyedNetGroup, - node->m_prefer_evict, node->addr.IsLocal()}; + node->m_prefer_evict, node->addr.IsLocal(), + node->m_inbound_onion}; vEvictionCandidates.push_back(candidate); } } @@ -425,6 +425,7 @@ public: std::atomic<int64_t> nLastSend{0}; std::atomic<int64_t> nLastRecv{0}; + //! Unix epoch time at peer connection, in seconds. const int64_t nTimeConnected; std::atomic<int64_t> nTimeOffset{0}; // Address of this peer @@ -1281,6 +1282,7 @@ struct NodeEvictionCandidate uint64_t nKeyedNetGroup; bool prefer_evict; bool m_is_local; + bool m_is_onion; }; /** diff --git a/src/test/fuzz/node_eviction.cpp b/src/test/fuzz/node_eviction.cpp index 603d520cf5..70ffc6bf37 100644 --- a/src/test/fuzz/node_eviction.cpp +++ b/src/test/fuzz/node_eviction.cpp @@ -31,6 +31,7 @@ FUZZ_TARGET(node_eviction) /* nKeyedNetGroup */ fuzzed_data_provider.ConsumeIntegral<uint64_t>(), /* prefer_evict */ fuzzed_data_provider.ConsumeBool(), /* m_is_local */ fuzzed_data_provider.ConsumeBool(), + /* m_is_onion */ fuzzed_data_provider.ConsumeBool(), }); } // Make a copy since eviction_candidates may be in some valid but otherwise diff --git a/src/test/net_peer_eviction_tests.cpp b/src/test/net_peer_eviction_tests.cpp index 418f5a4f71..517474bad4 100644 --- a/src/test/net_peer_eviction_tests.cpp +++ b/src/test/net_peer_eviction_tests.cpp @@ -36,6 +36,7 @@ std::vector<NodeEvictionCandidate> GetRandomNodeEvictionCandidates(const int n_c /* nKeyedNetGroup */ random_context.randrange(100), /* prefer_evict */ random_context.randbool(), /* m_is_local */ random_context.randbool(), + /* m_is_onion */ random_context.randbool(), }); } return candidates; |