aboutsummaryrefslogtreecommitdiff
path: root/src/addrman.h
diff options
context:
space:
mode:
authorJohn Newbery <john@johnnewbery.com>2021-08-24 11:47:17 +0100
committerJohn Newbery <john@johnnewbery.com>2021-08-27 11:01:43 +0100
commit5840476714ffebb2599999c85a23b52ebcff6090 (patch)
tree9b3daa8e0ade595d00a092984ad09c422f5e0e85 /src/addrman.h
parentf9002cb5dbd573cd9ca200de21319fa296e26055 (diff)
downloadbitcoin-5840476714ffebb2599999c85a23b52ebcff6090.tar.xz
[addrman] Make m_asmap private
Add a GetAsmap() getter function that returns a reference to const.
Diffstat (limited to 'src/addrman.h')
-rw-r--r--src/addrman.h34
1 files changed, 18 insertions, 16 deletions
diff --git a/src/addrman.h b/src/addrman.h
index f9c12ba3f9..3776e478ce 100644
--- a/src/addrman.h
+++ b/src/addrman.h
@@ -181,22 +181,6 @@ static const int64_t ADDRMAN_TEST_WINDOW = 40*60; // 40 minutes
class CAddrMan
{
public:
- // Compressed IP->ASN mapping, loaded from a file when a node starts.
- // Should be always empty if no file was provided.
- // This mapping is then used for bucketing nodes in Addrman.
- //
- // If asmap is provided, nodes will be bucketed by
- // AS they belong to, in order to make impossible for a node
- // to connect to several nodes hosted in a single AS.
- // This is done in response to Erebus attack, but also to generally
- // diversify the connections every node creates,
- // especially useful when a large fraction of nodes
- // operate under a couple of cloud providers.
- //
- // If a new asmap was provided, the existing records
- // would be re-bucketed accordingly.
- const std::vector<bool> m_asmap;
-
// Read asmap from provided binary file
static std::vector<bool> DecodeAsmap(fs::path path);
@@ -593,6 +577,8 @@ public:
Check();
}
+ const std::vector<bool>& GetAsmap() const { return m_asmap; }
+
private:
//! A mutex to protect the inner data structures.
mutable Mutex cs;
@@ -660,6 +646,22 @@ private:
/** Perform consistency checks every m_consistency_check_ratio operations (if non-zero). */
const int32_t m_consistency_check_ratio;
+ // Compressed IP->ASN mapping, loaded from a file when a node starts.
+ // Should be always empty if no file was provided.
+ // This mapping is then used for bucketing nodes in Addrman.
+ //
+ // If asmap is provided, nodes will be bucketed by
+ // AS they belong to, in order to make impossible for a node
+ // to connect to several nodes hosted in a single AS.
+ // This is done in response to Erebus attack, but also to generally
+ // diversify the connections every node creates,
+ // especially useful when a large fraction of nodes
+ // operate under a couple of cloud providers.
+ //
+ // If a new asmap was provided, the existing records
+ // would be re-bucketed accordingly.
+ const std::vector<bool> m_asmap;
+
//! Find an entry.
CAddrInfo* Find(const CNetAddr& addr, int *pnId = nullptr) EXCLUSIVE_LOCKS_REQUIRED(cs);