aboutsummaryrefslogtreecommitdiff
path: root/src/cryptonote_protocol
diff options
context:
space:
mode:
authorluigi1111 <luigi1111w@gmail.com>2024-05-20 23:34:39 -0500
committerluigi1111 <luigi1111w@gmail.com>2024-05-20 23:34:39 -0500
commit58b1e931f7f5397faaf1a6a448bef40683744949 (patch)
treeedac044c2e37470d3b51287ccf88e60671c6689c /src/cryptonote_protocol
parentMerge pull request #9259 (diff)
parentSkip privacy networks (on tx sends) that don't have outgoing connections (diff)
downloadmonero-58b1e931f7f5397faaf1a6a448bef40683744949.tar.xz
Merge pull request #9268
463228b Skip privacy networks (on tx sends) that don't have outgoing connections (Lee *!* Clagett)
Diffstat (limited to 'src/cryptonote_protocol')
-rw-r--r--src/cryptonote_protocol/levin_notify.cpp11
-rw-r--r--src/cryptonote_protocol/levin_notify.h3
2 files changed, 10 insertions, 4 deletions
diff --git a/src/cryptonote_protocol/levin_notify.cpp b/src/cryptonote_protocol/levin_notify.cpp
index 5b420ec3f..1c3a2901c 100644
--- a/src/cryptonote_protocol/levin_notify.cpp
+++ b/src/cryptonote_protocol/levin_notify.cpp
@@ -741,9 +741,14 @@ namespace levin
notify::status notify::get_status() const noexcept
{
if (!zone_)
- return {false, false};
-
- return {!zone_->noise.empty(), CRYPTONOTE_NOISE_CHANNELS <= zone_->connection_count};
+ return {false, false, false};
+
+ // `connection_count` is only set when `!noise.empty()`.
+ const std::size_t connection_count = zone_->connection_count;
+ bool has_outgoing = connection_count;
+ if (zone_->noise.empty())
+ has_outgoing = zone_->p2p->get_out_connections_count();
+ return {!zone_->noise.empty(), CRYPTONOTE_NOISE_CHANNELS <= connection_count, has_outgoing};
}
void notify::new_out_connection()
diff --git a/src/cryptonote_protocol/levin_notify.h b/src/cryptonote_protocol/levin_notify.h
index 52d36efb0..816170841 100644
--- a/src/cryptonote_protocol/levin_notify.h
+++ b/src/cryptonote_protocol/levin_notify.h
@@ -75,7 +75,8 @@ namespace levin
struct status
{
bool has_noise;
- bool connections_filled;
+ bool connections_filled; //!< True when has zone has `CRYPTONOTE_NOISE_CHANNELS` outgoing noise channels
+ bool has_outgoing; //!< True when zone has outgoing connections
};
//! Construct an instance that cannot notify.