diff options
author | Lee Clagett <code@leeclagett.com> | 2022-10-25 15:37:45 -0400 |
---|---|---|
committer | Lee Clagett <code@leeclagett.com> | 2022-10-25 16:09:55 -0400 |
commit | a7bf3aff2c7580fbb4c7960c51efb01abfec9ef2 (patch) | |
tree | 0e4db49fb55250633aa4b494a246b85cd97ed2f7 /src | |
parent | Merge pull request #8587 (diff) | |
download | monero-a7bf3aff2c7580fbb4c7960c51efb01abfec9ef2.tar.xz |
Fix dandelion++ fluff/stem bug with local txes
Diffstat (limited to 'src')
-rw-r--r-- | src/cryptonote_protocol/levin_notify.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/cryptonote_protocol/levin_notify.cpp b/src/cryptonote_protocol/levin_notify.cpp index 83f37015f..27c6d0278 100644 --- a/src/cryptonote_protocol/levin_notify.cpp +++ b/src/cryptonote_protocol/levin_notify.cpp @@ -542,6 +542,7 @@ namespace levin i_core_events* core_; std::vector<blobdata> txs_; boost::uuids::uuid source_; + relay_method tx_relay; //! \pre Called in `zone_->strand` void operator()() @@ -549,7 +550,7 @@ namespace levin if (!zone_ || !core_ || txs_.empty()) return; - if (!zone_->fluffing) + if (!zone_->fluffing || tx_relay == relay_method::local) { core_->on_transactions_relayed(epee::to_span(txs_), relay_method::stem); for (int tries = 2; 0 < tries; tries--) @@ -589,7 +590,7 @@ namespace levin change_channels(change_channels&&) = default; change_channels(const change_channels& source) - : zone_(source.zone_), map_(source.map_.clone()) + : zone_(source.zone_), map_(source.map_.clone()), fluffing_(source.fluffing_) {} //! \pre Called within `zone_->strand`. @@ -871,7 +872,7 @@ namespace levin { // this will change a local/forward tx to stem or fluff ... zone_->strand.dispatch( - dandelionpp_notify{zone_, core_, std::move(txs), source} + dandelionpp_notify{zone_, core_, std::move(txs), source, tx_relay} ); break; } |