aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPieter Wuille <[email protected]>2020-10-11 00:13:10 -0700
committerPieter Wuille <[email protected]>2020-10-11 11:29:11 -0700
commit56f9dba015c592b8925795012e3061a710070a27 (patch)
tree008f2313c14b9a87d9a82ef3bc4df45e593faf0c /src
parentMention BIP155 in doc/bips.md (diff)
downloaddiscoin-56f9dba015c592b8925795012e3061a710070a27.tar.xz
discoin-56f9dba015c592b8925795012e3061a710070a27.zip
Only relay IPv4, IPv6, Tor addresses
Diffstat (limited to 'src')
-rw-r--r--src/net_processing.cpp1
-rw-r--r--src/netaddress.h8
2 files changed, 9 insertions, 0 deletions
diff --git a/src/net_processing.cpp b/src/net_processing.cpp
index 951b8a181..9ad3f5d6f 100644
--- a/src/net_processing.cpp
+++ b/src/net_processing.cpp
@@ -1528,6 +1528,7 @@ void RelayTransaction(const uint256& txid, const uint256& wtxid, const CConnman&
static void RelayAddress(const CAddress& addr, bool fReachable, const CConnman& connman)
{
+ if (!fReachable && !addr.IsRelayable()) return;
// Relay to a limited number of other nodes
// Use deterministic randomness to send to the same nodes for 24 hours
diff --git a/src/netaddress.h b/src/netaddress.h
index 3bcf6d35c..023e83e73 100644
--- a/src/netaddress.h
+++ b/src/netaddress.h
@@ -212,6 +212,14 @@ class CNetAddr
friend bool operator<(const CNetAddr& a, const CNetAddr& b);
/**
+ * Whether this address should be relayed to other peers even if we can't reach it ourselves.
+ */
+ bool IsRelayable() const
+ {
+ return IsIPv4() || IsIPv6() || IsTor();
+ }
+
+ /**
* Serialize to a stream.
*/
template <typename Stream>