@@ -1046,7 +1046,7 @@ class CNode
1046
1046
1047
1047
// flood relay
1048
1048
std::vector<CAddress> vAddrToSend;
1049
- CRollingBloomFilter addrKnown ;
1049
+ const std::unique_ptr< CRollingBloomFilter> m_addr_known ;
1050
1050
bool fGetAddr {false };
1051
1051
int64_t nNextAddrSend GUARDED_BY (cs_sendProcessing){0 };
1052
1052
int64_t nNextLocalAddrSend GUARDED_BY (cs_sendProcessing){0 };
@@ -1056,7 +1056,7 @@ class CNode
1056
1056
// Don't relay addr messages to peers that we connect to as block-relay-only
1057
1057
// peers (to prevent adversaries from inferring these links from addr
1058
1058
// traffic).
1059
- bool IsAddrRelayPeer () const { return !m_block_relay_only_peer ; }
1059
+ bool IsAddrRelayPeer () const { return m_addr_known != nullptr ; }
1060
1060
1061
1061
bool IsBlockRelayOnly () const
1062
1062
{
@@ -1238,7 +1238,8 @@ class CNode
1238
1238
1239
1239
void AddAddressKnown (const CAddress& _addr)
1240
1240
{
1241
- addrKnown.insert (_addr.GetKey ());
1241
+ assert (m_addr_known);
1242
+ m_addr_known->insert (_addr.GetKey ());
1242
1243
}
1243
1244
1244
1245
/* *
@@ -1256,7 +1257,8 @@ class CNode
1256
1257
// Known checking here is only to save space from duplicates.
1257
1258
// SendMessages will filter it again for knowns that were added
1258
1259
// after addresses were pushed.
1259
- if (_addr.IsValid () && !addrKnown.contains (_addr.GetKey ()) && IsAddrCompatible (_addr)) {
1260
+ assert (m_addr_known);
1261
+ if (_addr.IsValid () && !m_addr_known->contains (_addr.GetKey ()) && IsAddrCompatible (_addr)) {
1260
1262
if (vAddrToSend.size () >= MAX_ADDR_TO_SEND) {
1261
1263
vAddrToSend[insecure_rand.randrange (vAddrToSend.size ())] = _addr;
1262
1264
} else {
0 commit comments